30/03/2023, 15:51
Bonjour à tous,
voici un petit script qui vous permet de détecter une langue qui n'est pas autorisée dans votre channel, dans mon script on va prendre l'exemple de la langue arabe.
Mise en situation: Si votre channel est exclusivement francophone et que vous ne voulez pas d'utilisateur qui parle arabe, le script effectuera une sanction, et vous pourrez le rediriger sur les salons adaptés, dans votre motif du kick.
Pour activer le script: .chanset #channel +badlang
Vous pouvez adapter la langue de votre choix en l'ajoutant dans une nouvelle liste. Si vous avez besoin d'aide, n'hésitez pas.
voici un petit script qui vous permet de détecter une langue qui n'est pas autorisée dans votre channel, dans mon script on va prendre l'exemple de la langue arabe.
Mise en situation: Si votre channel est exclusivement francophone et que vous ne voulez pas d'utilisateur qui parle arabe, le script effectuera une sanction, et vous pourrez le rediriger sur les salons adaptés, dans votre motif du kick.
Pour activer le script: .chanset #channel +badlang
tcl
if {[::tcl::info::commands ::cmdstools::uninstall] eq "::cmdstools::uninstall"} { ::cmdstools::uninstall }
if { [package vcompare [regexp -inline {^[[:digit:]\.]+} $::version] 1.6.20] == -1 } {
putloglev o * "\00304\[Commande/Secu - erreur\]\003 La version de votre Eggdrop est\00304 ${::version}\003; Commande/Secu ne fonctionnera correctement que sur les Eggdrops version 1.6.20 ou supérieure." ; return }
if { [::tcl::info::tclversion] < 8.5 } {
putloglev o * "\00304\[Commande/Secu - erreur\]\003 Commande/Secu nécessite que Tcl 8.5 (ou plus) soit installé pour fonctionner. Votre version actuelle de Tcl est\00304 ${::tcl_version}\003." ; return }
package require Tcl 8.5
namespace eval ::cmdstools {
# Procédure de désinstallation : le script se désinstalle totalement avant
# chaque rehash ou à chaque relecture au moyen de la commande "source" ou
# autre.
proc ::cmdstools::uninstall {args} {
putlog "Désallocation des ressources de \002cmds/secu\002..."
# Suppression des binds.
foreach binding [lsearch -inline -all -regexp [binds *[set ns [::tcl::string::range [namespace current] 2 end]]*] " \{?(::)?$ns"] {
unbind [lindex $binding 0] [lindex $binding 1] [lindex $binding 2] [lindex $binding 4]
}
namespace delete ::cmdstools
}
}
# caractere spécifique a l'arabe
variable alphabet_arabe [list "ج" "ح" "ه" "ع" "غ" "ف" "ق" "ث" "ص" "ض" "ة" "ك" "م" "ن" "ت" "ا" "ل" "ب" "ي" "س" "ش" "ى" "*و*" "ر" "ز" "د" "ذ" "ط" "ظ" "ء" ];
variable motif "Les langues étrangères sont interdites."
setudef flag badlang
bind pubm - * ::cmdstools::detecte:langue
proc ::cmdstools::detecte:langue {nick uhost hand chan text} {
if {![channel get $chan badlang]} {
return
}
if {[::cmdstools::find:char $nick $chan $text $::alphabet_arabe]} {
putserv "PRIVMSG ChanServ :ban $chan $nick $::motif"
}
}
proc ::cmdstools::find:char {nick chan text caractere_list} {
foreach caractere ${caractere_list} {
if { [string match -nocase "*${caractere}*" ${text}] } {
return 1
}
}
return 0;
}
bind evnt - prerehash ::cmdstools::uninstall
Vous pouvez adapter la langue de votre choix en l'ajoutant dans une nouvelle liste. Si vous avez besoin d'aide, n'hésitez pas.