26/11/2010, 17:12
fedora a écrit :tien voila le tcl qui fonctionne avec l'auto message toutes les 10mn !
tcl
############################################### # # # V i e D e M e r d e # # v1.0 (01/01/2009) par Galdinx et MenzAgitat # # # # http://www.boulets-roxx.com # # IRC: irc.teepi.net #boulets # # irc.epiknet.org #boulets # # # # Les scripts de MenzAgitat sont # # téléchargeables sur http://www.egghelp.org # # ou http://www.eggdrop.fr # # # ############################################### # # Description # Script permettant d'afficher une citation au hasard pris sur le site # http://www.viedemerde.fr/ grâce a une commande publique, "!vdm" par exemple # # # Changelog # # 1.0 - 1ère version # # # LICENCE: # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # if { [lindex [split $version] 1] < 1061800 } { putloglev o * "\00304\002\[VDM - ERREUR\]\002\003 La version de votre eggdrop est \00304\002[lindex [split $version] 0]\002\003; vdm.tcl ne fonctionnera correctement que sur les eggdrops version 1.6.18 ou supérieure." ; return } if { $tcl_version < 8.4 } { putloglev o * "\00304\002\[VDM - ERREUR\]\002\003 vdm.tcl nécessite que Tcl 8.4 (ou plus) soit installé pour fonctionner. Votre version actuelle de Tcl est \00304\002$tcl_version\002\003." ; return } package require Tcl 8.4 if {[info commands vdm::uninstall] eq "::vdm::uninstall"} { vdm::uninstall } namespace eval vdm { ####################### # PARAMETRES # ####################### # Chans sur lesquels le script sera actif (séparés par un espace) # Remarque : attention aux majuscules, le nom du chan est sensible à la casse variable allowed_chans "#Salon" #### COMMANDES PUBLIQUES ET AUTORISATIONS # Commande utilisée pour afficher une citation # ex. : "!vdm" variable vdmcmd "!vdm" # autorisations pour la commande !vdm variable vdmauth "-|-" #### PARAMETRES DE L'ANTI-FLOOD # Anti-flood (0 = désactivé, 1 = activé) variable antiflood 1 # Combien de commandes sont autorisées en combien de temps ? # exemple : "4:45" = 4 commandes maximum en 45 secondes; # les suivantes seront ignorées. variable cmdflood_vdm "4:45" # Intervalle de temps minimum entre l'affichage de 2 messages # avertissant que l'anti-flood a été déclenché (ne réglez pas # cette valeur trop bas afin de ne pas être floodé par les messages # d'avertissement de l'anti-flood...) variable antiflood_msg_interval 20 #################################################################### # # # NE MODIFIEZ RIEN APRES CE CADRE SI VOUS NE CONNAISSEZ PAS LE TCL # # # # DO NOT MODIFY ANYTHING BELOW THIS BOX IF YOU DON'T KNOW TCL # # # #################################################################### variable scriptname "VieDeMerde" variable version "1.0.20090101" # inutilisé, conservé au cas où variable cmdflood_global "5:120" variable floodsettingsstring [split "global $cmdflood_global vdm $cmdflood_vdm"] variable floodsettings ; array set floodsettings $floodsettingsstring variable instance ; array set instance {} variable antiflood_msg ; array set antiflood_msg {} bind evnt - prerehash [namespace current]::uninstall bind time -|- {*0 * * * *} ::AutoMsgVdm bind pub $vdmauth $vdmcmd [namespace current]::pub_disp_vdm proc uninstall {args} { putlog "Désallocation des ressources de \002$vdm::scriptname...\002" unbind evnt - prerehash [namespace current]::uninstall catch { unbind pub $vdm::vdmauth $vdm::vdmcmd [namespace current]::pub_disp_vdm } namespace delete ::vdm } } # Envoie de la Citation sur le Salon # -> Tout les combiens de minutes voulez vous que la publicité soit envoyé ? proc ::AutoMsgVdm {min hour args} { global botnick foreach chan $vdm::allowed_chans { set useragent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" set url "http://www.viedemerde.fr/aleatoire" ::http::config -useragent $useragent set token [::http::geturl "$url" -timeout 6000] if {[::http::status $token] == "ok"} { regexp {<div class="post">(.+?)</p>} [::http::data $token] res regsub {<div class="post"><p>} $res "" res regsub "<img src=\"http://cdn.betacie.com/viedemerde/images/new.png\" align=\"absmiddle\" /> " $res "" res regsub {</p>} $res "" res regsub {\n} $res "" res regsub -all {<a href="[^\ ]+" class="lienvdm">} $res "" res regsub -all {</a>} $res "" res regsub {VDM$} $res "\002VDM\002" res set result [vdm::string_filter $res] puthelp "privmsg $chan :(\002Vie De Merde\002) $result" } else { puthelp "privmsg $chan :\00314La connexion à \002Vie de merde\002 n'a pu être établie. Peut-être le site rencontre-t-il des difficultés techniques. Veuillez réessayer plus tard.\003" } } } proc vdm::pub_disp_vdm {nick host handle chan args} { if {[lsearch -exact [split $vdm::allowed_chans] $chan] != -1} { if {($vdm::antiflood == 1) && ([vdm::antiflood $chan "vdm"] == "flood")} { return } set useragent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" set url "http://www.viedemerde.fr/aleatoire" ::http::config -useragent $useragent set token [::http::geturl "$url" -timeout 6000] if {[::http::status $token] == "ok"} { regexp {<div class="post">(.+?)</p>} [::http::data $token] res regsub {<div class="post"><p>} $res "" res regsub "<img src=\"http://cdn.betacie.com/viedemerde/images/new.png\" align=\"absmiddle\" /> " $res "" res regsub {</p>} $res "" res regsub {\n} $res "" res regsub -all {<a href="[^\ ]+" class="lienvdm">} $res "" res regsub -all {</a>} $res "" res regsub {VDM$} $res "\002VDM\002" res set result [vdm::string_filter $res] puthelp "privmsg $chan :(\002Vie De Merde\002) $result" } else { puthelp "privmsg $chan :\00314La connexion à \002Vie de merde\002 n'a pu être établie. Peut-être le site rencontre-t-il des difficultés techniques. Veuillez réessayer plus tard.\003" } } } ##### Conversion des caractères html spéciaux et filtrage des balises HTML proc vdm::string_filter { str } { set str [string map -nocase { "à" "à" "à" "à" "á" "á" "â" "â" "ã" "ã" "ä" "ä" "å" "å" "æ" "æ" "ç" "ç" "è" "è" "é" "é" "ê" "ê" "ë" "ë" "ì" "ì" "í" "í" "î" "î" "ï" "ï" "ð" "ð" "ñ" "ñ" "ò" "ò" "ó" "ó" "ô" "ô" "õ" "õ" "ö" "ö" "÷" "÷" "ø" "ø" "ù" "ù" "ú" "ú" "û" "û" "ü" "ü" "ý" "ý" "þ" "þ" "ÿ" "ÿ" """ "\"" "&" "&" "€" "€" "œ" "Å“" "Ÿ" "Ÿ" " " " " "¡" "¡" "¢" "¢" "£" "£" "¤" "¤" "¥" "Â¥" "¦" "¦" "&brkbar;" "¦" "§" "§" "¨" "¨" "¨" "¨" "©" "©" "ª" "ª" "«" "«" "¬" "¬" "­" "Â-" "®" "®" "¯" "¯" "&hibar;" "¯" "°" "°" "±" "±" "²" "²" "³" "³" "´" "´" "µ" "µ" "¶" "¶" "·" "·" "¸" "¸" "¹" "¹" "º" "º" "»" "»" "¼" "¼" "½" "½" "¾" "¾" "¿" "¿" "À" "À" "Á" "Ã" "Â" "Â" "Ã" "Ã" "Ä" "Ä" "Å" "Å" "Æ" "Æ" "Ç" "Ç" "È" "È" "É" "É" "Ê" "Ê" "Ë" "Ë" "Ì" "í" "Í" "Ã" "Î" "Î" "Ï" "Ã" "Ð" "Ã" "Đ" "Ã" "Ñ" "Ñ" "Ò" "Ò" "Ó" "Ó" "Ô" "Ô" "Õ" "Õ" "Ö" "Ö" "×" "×" "Ø" "Ø" "Ù" "Ù" "Ú" "Ê" "Û" "Û" "Ü" "í" "Ý" "Ã" "Þ" "Î" "ß" "ß" "\r" "" "\t" "" "'" "\'" "'" "\'" ">" ">" "<" "<" """ "\'" "&" "&" "#91;" "\(" "\" "\/" "]" ")" "{" "(" "}" ")" "£" "£" "¨" "¨" "©" "©" "«" "«" "Â" "Â" "®" "®" "´" "´" "·" "·" "¹" "¹" "»" "»" "¼" "¼" "½" "½" "¾" "¾" "À" "À" "Ã" "Ã" "Â" "Â" "Ã" "Ã" "Ä" "Ä" "Å" "Å" "Æ" "Æ" "Ç" "Ç" "È" "È" "É" "É" "Ê" "Ê" "Ë" "Ë" "í" "í" "Ã" "Ã" "Î" "Î" "Ã" "Ã" "Ã" "Ã" "Ñ" "Ñ" "Ò" "Ò" "Ó" "Ó" "Ô" "Ô" "Õ" "Õ" "Ö" "Ö" "×" "×" "Ø" "Ø" "Ù" "Ù" "Ê" "Ê" "Û" "Û" "í" "í" "Ã" "Ã" "Î" "Î" "ß" "ß" "à" "à" "á" "á" "â" "â" "ã" "ã" "ä" "ä" "å" "å" "æ" "æ" "ç" "ç" "è" "è" "é" "é" "ê" "ê" "ë" "ë" "ì" "ì" "í" "í" "î" "î" "ï" "ï" "ð" "ð" "ñ" "ñ" "ò" "ò" "ó" "ó" "ô" "ô" "õ" "õ" "ö" "ö" "÷" "÷" "ø" "ø" "ù" "ù" "ú" "ú" "û" "û" "ü" "ü" "ý" "ý" "þ" "þ" } $str] regsub -all "<br />" $str " " str set str [encoding convertfrom "utf-8" $str ] return "${str}" } proc vdm::antiflood {chan type} { variable antiflood_msg if {![info exists antiflood_msg($chan$type)]} { set antiflood_msg($chan$type) 0 } variable instance if {![info exists instance($chan$type)]} { set instance($chan$type) 0 } set max_instances [lindex [split $vdm::floodsettings($type) ":"] 0] set instance_length [lindex [split $vdm::floodsettings($type) ":"] 1] if { $instance($chan$type) >= $max_instances } { if { $antiflood_msg($chan$type) == 0 } { set antiflood_msg($chan$type) 1 if {$type != "global"} { putquick "privmsg $chan :\0037:::\00314 Contrôle de flood activé pour la commande \002!$type\002 : pas plus de $max_instances requête(s) toutes les $instance_length secondes.\003" } else { putquick "privmsg $chan :\0037:::\00314 Contrôle de flood sur les commandes de \002Vie De Merde\002 : pas plus de $max_instances commandes toutes les $instance_length secondes.\003" } utimer $vdm::antiflood_msg_interval "vdm::antiflood_msg_reset $chan $type" } return "flood" } else { incr instance($chan$type) utimer $instance_length "vdm::antiflood_close_instance $chan $type" return "no flood" } } proc vdm::antiflood_close_instance {chan type} { variable instance if { $instance($chan$type) > 0 } { incr instance($chan$type) -1 } } proc vdm::antiflood_msg_reset {chan type} { variable antiflood_msg set antiflood_msg($chan$type) 0 } putlog "\002*$vdm::scriptname v$vdm::version*\002 par Galdinx et MenzAgitat ( \037\00312http://www.boulets-roxx.com\003\037 ) a été chargé."
si tu veut changer le temps c'est ici
tcl
bind time -|- {*0 * * * *} ::AutoMsgVdm
tu change le 0 par ce que tu veut mais avant de faire quoi que ce soit je te conseil de lire ici
Bind time
Bjr aussi

remémore moi le "0" correspond a combien ds le bind time ?
bind time -|- {*0 * * * *} ::AutoMsgVdm
CdT
