06/04/2010, 08:50
Merci de la réponse, alors voici la tcl modifiée :
Après le rehash, j'ai cette erreur :
Code PHP :
###############################################
# #
# V i e D e M e r d e #
# v1.1 (12/03/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
# 1.1 - Correction suite à un changement de payload du site + simplification des regsub
#
#
# 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 "#Accueil"
#### 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 #
# #
####################################################################
utimer 10 vdm::timerAnnounce
proc ::vdm::timerAnnounce {} {
vdm::pub_disp_vdm 0 - - - <CHAN>
utimer 10 vdm::timerAnnounce
variable scriptname "VieDeMerde"
variable version "1.1.20090312"
# 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 pub $vdmauth $vdmcmd {vdm::pub_disp_vdm 0}
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 {vdm::pub_disp_vdm 0}}
namespace delete ::vdm
}
}
proc vdm::pub_disp_vdm {pantiflood nick host handle chan args} {
if {[lsearch -exact [split $vdm::allowed_chans] $chan] != -1} {
if {!$pantiflood && ($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 {\n} $res "" res
regsub -all {<[^>]+>} $res "" res
regsub {VDM$} $res "\002VDM\002" res
set result [vdm::string_filter $res]
puthelp "privmsg $chan :$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é."
Après le rehash, j'ai cette erreur :
Code PHP :
[08:48:07] <athena> [08:48] missing close-brace
[08:48:07] <athena> while executing
[08:48:07] <athena> "namespace eval vdm {
[08:48:07] <athena>
[08:48:07] <athena>
[08:48:07] <athena>
[08:48:07] <athena> ###########################
[08:48:07] <athena> # PARAMETRES #
[08:48:07] <athena> ###########################
[08:48:07] <athena>
[08:48:07] <athena> # Chans sur lesquels le script sera actif (s..."
[08:48:07] <athena> (file "TCL/vdm.tcl" line 47)
[08:48:07] <athena> invoked from within
[08:48:07] <athena> "source TCL/vdm.tcl"
[08:48:07] <athena> (file "eggdrop.conf" line 118)
[08:48:07] <athena> [08:48] * FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)
-
Session DCC fermée