Messages : 39
Sujets : 5
Inscription : Dec 2009
Niveau d’avertissement :
0%
Bonjour,
Le script marche très bien chez moi.
Quelle est l'erreur ?
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
ealexp a écrit : Bonjour,
Le script marche très bien chez moi.
Quelle est l'erreur ?
Bonjour
Heu c'est quelle version que tu as et ou le DL ?
merci
Mon ancienne version ne marche plus en !vdm
cdt
Messages : 39
Sujets : 5
Inscription : Dec 2009
Niveau d’avertissement :
0%
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
ealexp a écrit : Et l'erreur c'est quoi ?
Bah rien il affiche queud ou alors le message en PL :
Tcl error [::vdm::pub_disp_vdm]: can't read "res": no such variable
Voilou
Messages : 438
Sujets : 17
Inscription : Sep 2008
Niveau d’avertissement :
0%
En cherchant un peut sur le forum tu trouvera comment régler ton souci.
ton erreur a était poster et résolu
[font=Times New Roman]La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger. [/font]
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
Yes p'être mais tout ce que j'ai lu n'a pas résolu le pb
pas grave merci qd même
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
Reuu j'ai trouvé la version 2 de vdm
Mais comme j'avais pas le Http.tcl, un ami m'a envoyé le sien mais ça me bug en ssh :
[11:54] Tcl error in file 'bot.conf':
[11:54] conflicting versions provided for package "http": 2.7.2, then 2.3
while executing
"package provide http 2.3"
(file "scripts/Http.tcl" line 1)
invoked from within
"source scripts/Http.tcl"
(file "bot.conf" line 302)
[11:54] * FICHIER DE CONFIGURATION NON CHARGE (INTROUVABLE OU ERREUR)
(alors que le fichier est bien ds le .conf en source scripts/Http.tcl et également dans le dossier "scripts" )
je n'y connais pas trop, voire très peu ...
ké sé passa ?
Si quelqu'un peut m'éclairer merci bcp
Messages : 2,319
Sujets : 190
Inscription : Apr 2004
Je pense que tu as déjà le package http 2.7.2 (surement dans libtcl) et ça fait un conflit de fournir en plus le package du même nom à une version inférieure.
Essaye de ne pas mettre l'appel à scripts/Http.tcl
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
CrazyCat a écrit : Je pense que tu as déjà le package http 2.7.2 (surement dans libtcl) et ça fait un conflit de fournir en plus le package du même nom à une version inférieure.
Essaye de ne pas mettre l'appel à scripts/Http.tcl
merci de ta réponse, mais (non chui pas blond quoikeu ...) tu le trouve ou le http 2.7.2 ?? car j'ai pas vu le libtcl ....
j'ai viré de source scripts le Http.tcl mais !vdm fonctionne pas
marchi
Messages : 2,319
Sujets : 190
Inscription : Apr 2004
Quelle est l'erreur sans l'appel à Http.tcl ?
Comme je te l'ai dit juste au dessus, il y a un package http.tcl inclut dans tcllib, tu ne le trouveras pas en tant que fichier tcl, ne le cherche donc pas. Cherche plutôt la source du problème, si elle n'est pas sur le package http, kénenahafout' ?
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
11/09/2010, 10:21
(Modification du message : 16/09/2010, 08:56 par CrazyCat .)
En fait aucune erreur que ce soit en PL ou ailleurs, a part le fait qu'a la commande !vdm rien ne se passe :)
En y regardant mieux je n'ai pas vu non plus de spécification de salons ou le !vdm doit être actif .... Ou alors j'ai loupé quelque chose ..
je CC le TCL ici :
TCLcopier
###############################################
# #
# V i e D e M e r d e #
# v2.0 (04/08/2010) #
# par Galdinx, MenzAgitat et ealexp #
# #
# 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, soit prise au hasard, soit selon son numéro, soit la dernière parue,
# depuis le site http://www.viedemerde.fr/
# Changelog :
# 1.0 : 1ère version
# 1.1 : Correction suite à un changement de payload du site + simplification des regsub
# 2.0 : Modifications apportees par ealexp
# - Correction suite à un changement du payload du site.
# - Commandes !vdm last[- nombre] et !vdm <numéro>.
# - Paramètres suppélmentaires (urls du site, et couleurs de la VDM).
#
# 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 { [ catch { package require http } ] } {
putlog "\0 02$::vdm::scriptname\0 02 : Vous avez besoin du package http pour pouvoir utiliser ce script."
return
}
if { [ catch { package require Tcl 8.5 } ] } {
putlog "\0 02$::vdm::scriptname\0 02 : Vous avez besoin de Tcl en version 8.5 au moins pour pouvoir utiliser ce script."
}
if { [ info commands vdm::uninstall ] eq "::vdm::uninstall" } { vdm::uninstall }
namespace eval ::vdm {
#######################
# #
# CONFIGURATION #
# #
#######################
########################################
# COMMANDES PUBLIQUES ET AUTORISATIONS #
#######################################
# Nom de la commande publique
# Valeur par défaut : "!vdm"
variable vdm_command_name "!vdm"
# Autorisations pour la commande
# Valeur par défaut "-|-"
variable vdm_command_flags "-|-"
###################
# PARAMÈTRES HTTP #
###################
# UserAgent
# Valeur par défaut : "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
variable useragent "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"
# Url pour récupérer une VDM aléatoire
# Valeur par défaut : "http://www.viedemerde.fr/aleatoire"
variable url_aleatoire "http://www.viedemerde.fr/aleatoire"
# Url pour récupérer une seule VDM
# Valeur par défaut : "http://www.viedemerde.fr/inclassable/"
variable url_une "http://www.viedemerde.fr/inclassable/"
# Url pour récupérer la dernière VDM
# Valeur par défaut : "http://www.viedemerde.fr/"
variable url_dernieres "http://www.viedemerde.fr/"
#################
# MISE EN FORME #
#################
# Note : les couleurs sont à mettre sous la forme "<avant-plan>[,arrière-plan]".
# Si vous ne voulez pas de couleurs, mettez une chaîne vide ("")
# Couleur du texte des VDM
# Valeur par défaut : ""
variable couleur_texte_vdm "00,01"
# Couleur du texte des erreurs
# Valeur par défaut : "14"
variable couleur_texte_erreurs "14"
# Affichage de l'ID, de la date ou de l'auteur de la VDM (dans l'ordre).
# Valeur par défaut : "1 1 1"
# Exemples : "1 1 0" pour afficher l'id, la date mais pas l'auteur de la VDM.
variable affichage "1 1 1"
# Couleur de l'ID de la VDM
# Valeur par défaut : "01,15"
variable couleur_id_vdm "01,15"
# Couleur de la date de la VDM
# Valeur par défaut : ""
variable couleur_date_vdm ""
# Couleur de l'auteur de la VDM
# Valeur par défaut : ""
variable couleur_auteur_vdm ""
# Nombre de caractères maximum par ligne
# Valeur par défaut : 420
variable max_line_length 420
##############################
# 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 RIEN MODIFIER APRÈS CE CADRE SI VOUS NE CONNAISSEZ PAS TCL #
# #
#######################################################################
variable script_name "VDM"
variable script_version "2.0"
variable nb_vdm_page 13
# Flag udef
setudef flag vdm
variable current_flood ""
variable antiflood_msg ""
proc uninstall { args} {
putlog "Désallocation des ressources de \0 02$::vdm::script_name\0 02..."
foreach binding [ lsearch -inline -all -regexp [ binds * [ set ns [ string range [ namespace current] 2 end] ] * ] " \{ ?(::)?$ns" ] {
unbind [ lindex $binding 0 ] [ lindex $binding 1 ] [ lindex $binding 2 ] [ lindex $binding 4 ]
}
foreach running_timer [ timers] {
if { [ string match "*[namespace current]::*" [ lindex $running_timer 1 ] ] } { killtimer [ lindex $running_timer 2 ] }
}
foreach running_utimer [ utimers] {
if { [ string match "*[namespace current]::*" [ lindex $running_utimer 1 ] ] } { killutimer [ lindex $running_utimer 2 ] }
}
namespace delete [ namespace current]
}
}
# ::vdm::vdm_command
#
# Procédure principale
proc ::vdm ::vdm_command { nick host handle chan arg} {
if { ! [ channel get $chan vdm] } {
return
}
if { ( $ ::vdm ::antiflood == 1 ) && ( [ ::vdm ::antiflood $chan ] == "flood" ) } {
return
}
if { [ lindex [ set arg [ split $arg ] ] 0 ] eq "" } {
set vdm [ ::vdm ::fetch_vdm $ ::vdm ::url_aleatoire ]
} elseif { [ string is integer [ lindex $arg 0 ] ] } {
set vdm [ ::vdm ::fetch_vdm $ ::vdm ::url_une $arg ]
} elseif { $arg eq "last" } {
set vdm [ ::vdm ::fetch_vdm $ ::vdm ::url_dernieres ]
} elseif { [ regexp { last-( .* ) } $arg dummy nb] } {
if { $nb > $ ::vdm ::nb_vdm_page } {
puthelp "PRIVMSG $chan :[code $::vdm::couleur_texte_erreurs $chan]L'index doit être inférieur ou égal à $::vdm::nb_vdm_page.[code endcolor $chan]"
return
}
set vdm [ ::vdm ::fetch_vdm $ ::vdm ::url_dernieres $nb ]
} else {
puthelp "PRIVMSG $chan :[code $::vdm::couleur_texte_erreurs $chan]Usage : !vdm \[ numéro/last\[ - 1 à $::vdm::nb_vdm_page\] \] [code endcolor $chan]"
return
}
switch $vdm {
"http_error" {
puthelp "PRIVMSG $chan :[code $::vdm::couleur_texte_erreurs $chan]La connexion à VDM n'a pas pu être établie. Peut-être le site rencontre-t-il des difficultés techniques. Veuillez réessayer plus tard.[code endcolor $chan]"
return
}
"vdm_error" {
puthelp "PRIVMSG $chan :[code $::vdm::couleur_texte_erreurs $chan]La VDM n'a pas pu être récupérée.[code endcolor $chan]"
return
}
}
lassign $ ::vdm ::affichage afficher_id afficher_date afficher_auteur
lassign $vdm id message date auteur
# Affichage de l'ID
if { $afficher_id } {
append privmsg "[code $::vdm::couleur_id_vdm $chan]\[ $id\] [code endcolor $chan] "
}
# La VDM en elle-même
append privmsg "[code $::vdm::couleur_texte_vdm $chan][::vdm::string_filter $message $chan][code endcolor $chan]"
# Affichage de la date
if { $afficher_date } {
append privmsg " - [code $::vdm::couleur_date_vdm $chan]$date[code endcolor $chan]"
}
# Affichage de l'auteur
if { $afficher_auteur } {
append privmsg " - par [code $::vdm::couleur_auteur_vdm $chan]$auteur[code endcolor $chan]"
}
foreach ligne [ ::vdm ::split_line $privmsg ] {
puthelp "PRIVMSG $chan :$ligne"
}
return
}
# ::vdm::fetch_vdm
#
# Récupère la page donnée, et la parse pour récupérer la xième VDM présente.
# En cas de succès, elle retourne une liste contenant l'id et le contenu de la VDM.
# Si une erreur s'est produite, elle retourne "error"
# Note : la présentation des VDM est la même pour toutes les pages (VDM aléatoires, une seule VDM et dernière VDM postée), donc il n'y a pas besoin de plusieurs procédures.
proc ::vdm ::fetch_vdm { url { index 0 } args} {
set token [ ::vdm ::geturl $url { * } $args ]
if { [ ::http ::status $token ] ne "ok" } {
::http ::cleanup $token
return "http_error"
}
foreach { dummy id vdm date auteur} [ regexp -all -inline { < div class="post" id="(.+?)" > ( .+? ) < /p>< div class="date" > ( ? :.*? ) < p style="margin-top:(?:.*?)" > ( .*? ) - < a class="(?:.*?)" href="(?:.*?)" > ( ? :.*? ) < /a> - par ( .*? ) } [ ::http ::data $token ] ] {
lappend vdm_list [ list $id $vdm $date $auteur ]
}
::http ::cleanup $token
if { [ info exists vdm_list] eq "" } {
return "vdm_error"
}
return [ lindex $vdm_list $index ]
}
# ::vdm::string_filter
#
# Nettoie la VDM
proc ::vdm ::string_filter { str chan} {
set str [ string map -nocase {
"à" "à" "à" "à" "á" "á" "â" "â"
"ã" "ã" "ä" "ä" "å" "å" "æ" "æ"
"ç" "ç" "è" "è" "é" "é" "ê" "ê"
"ë" "ë" "ì" "ì" "í" "í" "î" "î"
"ï" "ï" "ð" "ð" "ñ" "ñ" "ò" "ò"
"ó" "ó" "ô" "ô" "õ" "õ" "ö" "ö"
"÷" "÷" "ø" "ø" "ù" "ù" "ú" "ú"
"û" "û" "ü" "ü" "ý" "ý" "þ" "þ"
"ÿ" "ÿ" """ "\" " "&" "&" "€" "€"
"œ" "Å“" "Ÿ" "Ÿ" " " " " "¡" "¡"
"¢" "¢" "£" "£" "¤" "¤" "¥" "Â¥"
"¦" "¦" "&brkbar;" "¦" "§" "§" "¨" "¨"
"¨" "¨" "©" "©" "ª" "ª" "«" "«"
"¬" "¬" "­" "Â-" "®" "®" "¯" "¯"
"&hibar;" "¯" "°" "°" "±" "±" "²" "²"
"³" "³" "´" "´" "µ" "µ" "¶" "¶"
"·" "·" "¸" "¸" "¹" "¹" "º" "º"
"»" "»" "¼" "¼" "½" "½" "¾" "¾"
"¿" "¿" "À" "À" "Á" "Ã" "Â" "Â"
"Ã" "Ã" "Ä" "Ä" "Å" "Å" "Æ" "Æ"
"Ç" "Ç" "È" "È" "É" "É" "Ê" "Ê"
"Ë" "Ë" "Ì" "í" "Í" "Ã" "Î" "Î"
"Ï" "Ã" "Ð" "Ã" "Đ" "Ã" "Ñ" "Ñ"
"Ò" "Ò" "Ó" "Ó" "Ô" "Ô" "Õ" "Õ"
"Ö" "Ö" "×" "×" "Ø" "Ø" "Ù" "Ù"
"Ú" "Ê" "Û" "Û" "Ü" "í" "Ý" "Ã"
"Þ" "Î" "ß" "ß" "\r " "" "\t " ""
"'" "\' " "'" "\' " ">" ">" "<" "<"
"" " " \'" " & " " & " " #91 ; " " \( " " \" " \/"
" ] " " ) " " { " " ( " " } " " ) " " £" " £"
" ¨" " ¨" " ©" " ©" " «" " «" " Â" " Â"
" ®" " ®" " ´" " ´" " ·" " ·" " ¹" " ¹"
" »" " »" " ¼" " ¼" " ½" " ½" " ¾" " ¾"
" À" " À" " Ã" " Ã" " Â" " Â" " Ã" " Ã"
" Ä" " Ä" " Å" " Å" " Æ" " Æ" " Ç" " Ç"
" È" " È" " É" " É" " Ê" " Ê" " Ë" " Ë"
" í" " í" " Ã" " Ã" " Î" " Î" " Ã" " Ã"
" Ã" " Ã" " Ñ" " Ñ" " Ò" " Ò" " Ó" " Ó"
" Ô" " Ô" " Õ" " Õ" " Ö" " Ö" " ×" " ×"
" Ø" " Ø" " Ù" " Ù" " Ê" " Ê" " Û" " Û"
" í" " í" " Ã" " Ã" " Î" " Î" " ß" " ß"
" à" " à" " á" " á" " â" " â" " ã" " ã"
" ä" " ä" " å" " å" " æ" " æ" " ç" " ç"
" è" " è" " é" " é" " ê" " ê" " ë" " ë"
" ì" " ì" " í" " í" " î" " î" " ï" " ï"
" ð" " ð" " ñ" " ñ" " ò" " ò" " ó" " ó"
" ô" " ô" " õ" " õ" " ö" " ö" " ÷" " ÷"
" ø" " ø" " ù" " ù" " ú" " ú" " û" " û"
" ü" " ü" " ý" " ý" " þ" " þ"
} $str]
regsub -all {<br />} $str " " str
regsub -all {<[^>]+>} $str " " str
regsub -all {\n } $str " " str
regsub {VDM$} $str " [ code bold $chan ] VDM[ code bold $chan ] " str
return $str
}
# ::vdm::geturl
#
# Appelle ::http::geturl et suit les redirections.
proc ::vdm::geturl {url args} {
::http::config -useragent $::vdm::useragent
set original_url_host [lindex [regexp -inline {http://(.*?)/} $url] 0]
while {1} {
set token [::http::geturl $url {*}$args]
if {![string match {30[1237]} [::http::ncode $token]]} {
return $token
}
set meta [set ${token}(meta)]
::http::cleanup $token
if {![dict exists $meta Location]} {
return $token
}
set url [dict get $meta Location]
unset meta
if {[regexp -inline {http://(.*?)/} $url] eq " "} {
set url $original_url_host$url
}
}
}
# ::vdm::antiflood
#
# Vérifie si l'antiflood n'est pas déclenché sur le chan.
proc ::vdm::antiflood {chan} {
if {![dict exists $::vdm::current_flood $chan]} {
dict set ::vdm::current_flood $chan 0
}
if {![dict exists $::vdm::antiflood_msg $chan]} {
dict set ::vdm::antiflood_msg $chan 0
}
set max_requests [lindex [split $::vdm::cmdflood_vdm " :"] 0]
set time [lindex [split $::vdm::cmdflood_vdm " :"] 1]
if {[dict get $::vdm::current_flood $chan] >= $max_requests} {
if {[dict get $::vdm::antiflood_msg $chan] == 0} {
dict set ::vdm::antiflood_msg $chan 1
putquick " PRIVMSG $chan :[ code 7 $chan ] :::[ code $ ::vdm ::couleur_texte_erreurs $chan ] Contrôle de flood activé pour la commande [ code bold $chan ] $ ::vdm ::vdm_command_name [ code bold $chan ] : pas plus de $max_requests requête( s) toutes les $time secondes.[ code endcolor $chan ] "
utimer $::vdm::antiflood_msg_interval [list ::vdm::antiflood_msg_reset $chan]
}
return " flood"
} else {
dict incr ::vdm::current_flood $chan
utimer $time [list ::vdm::antiflood_close_instance $chan]
return " no flood"
}
}
# ::vdm::antiflood_close_instance
proc ::vdm::antiflood_close_instance {chan} {
if {[dict get $::vdm::current_flood $chan] > 0} {
dict incr ::vdm::current_flood $chan -1
}
}
# ::vdm::antiflood_msg_reset
proc ::vdm::antiflood_msg_reset {chan} {
dict set ::vdm::antiflood_msg $chan 0
}
proc ::vdm::code {code chan} {
if {$code eq " bold"} {
if {![string match *c* [lindex [split [getchanmode $chan]] 0]]} { return " \002" } { return " " }
} elseif {$code eq " underline"} {
if {![string match *c* [lindex [split [getchanmode $chan]] 0]]} { return " \037" } { return " " }
} elseif {$code eq " endcolor"} {
if {![string match *c* [lindex [split [getchanmode $chan]] 0]]} { return " \003" } { return " " }
} elseif {$code ne " "} {
if {![string match *c* [lindex [split [getchanmode $chan]] 0]]} { return " \003$code " } { return " " }
} else {
return " "
}
}
proc ::vdm::split_line {texte} {
set output_length [string length $texte]
set letter_index 0
while {$letter_index < $output_length} {
if {$output_length - $letter_index > $::vdm::max_line_length} {
set cut_index [string last " " $texte [expr $letter_index + $::vdm::max_line_length ]]
} else {
set cut_index $output_length
}
lappend output [string range $texte $letter_index $cut_index]
set letter_index $cut_index
}
if { ![info exists output] } { lappend output {} }
return $output
}
bind evnt -|- prerehash ::vdm::uninstall
bind pub $::vdm::vdm_command_flags $::vdm::vdm_command_name ::vdm::vdm_command
Messages : 2,319
Sujets : 190
Inscription : Apr 2004
Il y a juste un "setudef flag vdm", ce qui indique que tu dois surement faire quelque chose comme:
Code :
.chanset #canal +vdm
pour activer le tcl sur #canal
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
reu et merci
mais je met ça ou ?
dslé de ne pas être fortiche en tcl :/
cDt
Messages : 39
Sujets : 5
Inscription : Dec 2009
Niveau d’avertissement :
0%
Bonjour
pheeric, tu dois taper ".chanset #<le nom de ton canal> +vdm" en partyline. Rassure-moi, tu sais comment accéder à la partyline de ton robot ?
Messages : 128
Sujets : 17
Inscription : May 2010
Niveau d’avertissement :
0%
Mdr oui qd même
même si je ne suis pas un as du tcl loin de la
merci je test