bind pub - !def dico bind pub - !dico dico #### !dico #### proc dico {nick host hand chan arg} { if {[lrange $arg 1 end] != ""} { putserv "PRIVMSG $chan Syntaxe : !dico " return } set mot [lindex $arg 0] if {$mot == ""} { set mot "boulet" } variable useragent variable paragraphs set URL_site "http://dictionnaire.tv5.org/dictionnaires.asp?Action=1¶m=$mot&che=1" set res "" ::http::config -useragent $useragent catch { set token [::http::geturl "$URL_site" -timeout 5000] } if {![info exists token]} { putlog "\00304\002\[Definition\]\002\003 La connexion à \00312\037$URL_site\037\003 n'a pas pu s'établir. Impossible d'afficher la définition du mot." return } if {[::http::status $token] == "ok"} { regexp "(.+?)" [::http::data $token] res if { $res != "" && [lsearch -exact [split $res] "color='#911409'>Lexique"] == -1 } { regsub -all "\n" $res "" res regsub -all ">" $res "" res regsub -all "
" $res "" res regsub -all "
" $res "" res regsub -all "
" $res " |" res regsub -all "" $res "" res regsub -all "
" $res "\n" res regsub -all " " $res "" res regsub -all "<\[^<\]*>" $res "" res regsub -all "•" $res "|" res regsub -all " " $res " " res regsub -all "le dictionnaire multifonctions vous propose..." $res "" res regsub -all " DÉFINITIONS," $res "" res set res [encoding convertfrom "utf-8" $res ] if {[string length $res] > 448} {set res "[string range $res 0 [string first . $res 300]] \n [string range $res [expr {[string first . $res 300] + 1 }] [string first . $res 600]] \n [string range $res [expr {[string first . $res 600] + 1 }] [string first . $res 900]] \n [string range $res [expr {[string first . $res 900] + 1 }] [string first . $res 1200]]"} if {$res == ""} { set res {"La définition n'a pas pu être récupérée, erreur d'analyse des données.\003"} } set res [split $res "\n"] set counter 0 set nores 0 putquick "privmsg $chan :2Définition du mot $mot :" foreach line $res { set line [string trim $line] if {$line != "" && $line != " "} { if {[string range $line 0 1] == "| "} { set line [string range $line 2 end] } incr counter set nores 1 putquick "privmsg $chan :2$line" # if {$counter >= $paragraphs} { # ::http::cleanup $token # return # } } } } } ::http::cleanup $token return }