bonjour,
ceci peut tu nous dire à quoi sert cela sert il ?
je vois nul part ta proc timerAnnounce mise à part ceci: proc ::vdm::timerAnnounce {} { mais que fait elle ? mystère ?
TCL VDM timer X 10mn
Avant de faire bêtement un copier coller modifie bien le tcl car dans le poste y a \ à remettre donc la je t'invite à corriger cela :)
Cordialement DnS
ceci peut tu nous dire à quoi sert cela sert il ?
tcl
utimer 10 vdm::timerAnnounce
proc ::vdm::timerAnnounce {} {
vdm::pub_disp_vdm 0 - - - <CHAN>
utimer 10 vdm::timerAnnounce
je vois nul part ta proc timerAnnounce mise à part ceci: proc ::vdm::timerAnnounce {} { mais que fait elle ? mystère ?
TCL VDM timer X 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é."
Avant de faire bêtement un copier coller modifie bien le tcl car dans le poste y a \ à remettre donc la je t'invite à corriger cela :)
Cordialement DnS