Messages : 2,337
Sujets : 191
Inscription : Apr 2004
C'est normal, ta variable $line contient en fait l'intégralité de ta source html, tu ne vois que la première ligne car le caractère de nouvelle ligne (
\n) est interprété.
Donc, il te faut transformer ta page html en un tableau de lignes pour pouvoir aller lire la bonne:
Code :
bind pub mn !test pub:test
proc pub:test { nick uhost handle chan arg } {
set lsl(avant) "l'url du site"
set key [http::geturl $lsl(avant)]
set arrlines [split [http::data $key] "\n"]
incr arg -1
putserv "PRIVMSG $chan : \00302,00$arrlines($arg)"
}
Je pars bien sur du principe que $arg est le N° de la ligne que tu veux lire.
Messages : 247
Sujets : 6
Inscription : Jun 2005
Niveau d’avertissement :
0%
Je test et je te dis si c'est mon bonheur ! Merci : )
(la classe ton nom de domaine ^^;)
Messages : 2,337
Sujets : 191
Inscription : Apr 2004
ah oui, le code html est mal foutu, difficile à parser...
Il faudrait que tu puisses modifier le générateur pour ajouter un caractère particulier devant chaque ligne intéressante.
Sinon, il faut aller récupérer une chaine particulière (<b>Song Title</b> par exemple), et faire une regexp qui permette de récupèrer les autres lignes, du genre "<td>(*)<\/td>"...
J'essayerais de voir ça demain :)
Messages : 247
Sujets : 6
Inscription : Jun 2005
Niveau d’avertissement :
0%
j'ai toujours pas reussi :(
Messages : 2,337
Sujets : 191
Inscription : Apr 2004
Le plus simple que je vois, c'est de traiter ta chaine ainsi ($webpage contient ta source)
Code :
# on récupère ce qui est entre "<b>Song Title</b></td></tr>" et le premier "</table>" situé après
regsub -all {.*<b>Song Title</b></td></tr>(.*)</table>} $webpage "\\1" webpage
# on sépare sur les "</tr>"
foreach line [split $webpage "</tr>"] {
# on supprime les balises HTML
regsub -all {<[^>]>} $line "" line
# on affiche
putserv "PRIVMSG $chan :$line"
}
Bon, c'est fait à l'arrache, je ne promet rien :)
Messages : 247
Sujets : 6
Inscription : Jun 2005
Niveau d’avertissement :
0%
j'vais m'en débrouiller, merci : )