mr_orus1
Messages postés89Date d'inscriptionsamedi 24 janvier 2004StatutMembreDernière intervention 9 avril 2008
-
19 mai 2006 à 00:40
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008
-
2 juin 2006 à 09:59
Hello,
voilà, j'essaie de recuperer des infos precise sur un site via socket.
J'ai réussi a bidouillé un code qui fonctionne aujourd'hui, en fait je "triche" en cherchant juste une ligne precise, mais il est posible que demain, l'info change de ligne.
Voici mon code
alias vire { var %i,%a $1-,%b $regsub(%a,/<[^>]+>/g,,%i) | return %i }
alias webo {
sockclose webo
sockopen webo vote.weborama.fr 80
}
on *:sockopen:webo:{
if ($sockerr) { echo -a Connexion Impossible. | halt }
echo -a Socket connecté.
sockwrite -nt $sockname GET http://www.weborama.fr/cgi-bin/resultat_vote.cgi?ID=205012 sockwrite -nt $sockname $crlf
sockwrite -nt $sockname $crlf
}
on *:sockread:webo:{
sockread $vire(%z)
write weborus.txt $vire(%z)
unset $vire(%z)
}
on *:sockclose:webo:{
echo -a Socket fermé.
set %vote. $+ $read(weborus.txt,80)
set %vote. $+ $read(weborus.txt,81)
var %vote = %vote. $+ $read(weborus.txt,80)
var %vote1 = %vote. $+ $read(weborus.txt,81)
msg $msn.get($cid,fullroom) Nombre de vote sur 90 jours : %vote , Nombre pour aujourd'hui %vote1 | unset %vote* | remove weborus.txt
}
on *:text:*webo:#:webo
AgoRa_ScripT
Messages postés136Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention20 octobre 2007 21 mai 2006 à 13:51
oui normalement il n'y pas de problemes. c'est la disposition du texte
sur cette page du site weborama ne change pas, il n'y pas de raisons
pour que ton cote ne marche plus.
par contre enleve les caractéres $chr(9) des variables %vote.
il existe différentes méthodes pour afficher les données d'un site sur
mIRC, personnellement je trouve que la tienne passe par une étape loin
d'être obligatoire: write weborus.txt $vire(%z) et mon mIRC freeze
environ 2 secondes le temps d'écrire dans weborus.txt.
mr_orus1
Messages postés89Date d'inscriptionsamedi 24 janvier 2004StatutMembreDernière intervention 9 avril 2008 21 mai 2006 à 21:12
Hello,
Tout 'abord merci de vos reponses .
Maintenant j'ai une question qui va vous sembler "idiote"
j'ai "fini" mon code, mais le truc, comme le dis agora, c'est que c'est assez long, je sais qu'il est possible d'optimiser des codes, mais je ne vois vraiment pas comment.
le voici :
#votealias vire { var %i,%a $1-,%b $regsub(%a,/<[^>]+>/g,,%i) | return %i }
alias webo.1 {
sockclose webo.1
sockopen webo.1 vote.weborama.fr 80
}
alias sock.ephe1 {
sockclose sock.ephe1
sockopen sock.ephe1 ephemeride.com 80
}
on *:sockopen:*: {
if ($sockname == webo.1) {
if ($sockerr) { echo -a Connexion Impossible. | halt }
echo -a Socket connecté.
sockwrite -nt $sockname GET http://www.weborama.fr/cgi-bin/resultat_vote.cgi?ID=205012 sockwrite -nt $sockname $crlf
sockwrite -nt $sockname $crlf
}
elseif ($sockname == sock.ephe1) {
if ($sockerr) { echo -a Connexion Impossible. | halt }
echo -a Socket connecté.
sockwrite -nt $sockname GET http://www.ephemeride.com sockwrite -nt $sockname $crlf
sockwrite -nt $sockname $crlf
}
}
mr_orus1
Messages postés89Date d'inscriptionsamedi 24 janvier 2004StatutMembreDernière intervention 9 avril 2008 26 mai 2006 à 13:20
Hello,
Tout d'abord, merci, ça m'a bien eclairé, donc je fais des test et des tests...
Voilà où j'en suis :
alias webo.o {
sockclose webo.o
sockopen webo.o vote.weborama.fr 80
}
on *:sockopen:webo.o:{
if ($sockerr) { echo -a Connexion Impossible. | halt }
echo -a Socket connecté.
sockwrite -nt $sockname GET http://www.weborama.fr/cgi-bin/resultat_vote.cgi?ID=238438 sockwrite -nt $sockname $str($crlf,2)
}
on *:sockread:webo.o:{
if (td colspan='2' style="width:290px; height:18px; padding-left:5px" bgcolor='#FFFFFF'><span class='BigRed' isin %q) { msg $msn.get($cid,fullroom) $remove($vire(%q),$chr(9)) }
sockread %q
}
on *:sockclose:webo.o:{
if ($sockname == webo.o) {
echo -a Socket fermé.
}
}
Ici le soucis, c'est que ça me retourne 3 ligne
en fait 3 classement different, et je voudrais juste prendre la premiere ligne, mais je n'arrive pas a trouver de repere supplementaire pour simplement isoler la premiere..
AgoRa_ScripT
Messages postés136Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention20 octobre 2007 26 mai 2006 à 15:02
si le chiffre 58 qui est en face de 58 Blog Orus guide pratique ne
change jamais, alors le problème est vite régler. tu met comme
condition dans ton if, que "58" doit être dans %q et ça retournera la
ligne que tu voulais.
si ce chiffre change souvent, ça se corse un peu plus. en plus les
lignes html de cette page web sont quasiment les mêmes, c'est pour ça
que le code te retourne 3 lignes au lieu d'une.
essaye de trouver ce qui est différent dans la ligne que tu veux, par rapport à toutes les autres.
n'hésite pas à mettre plusieurs conditions. ( if (blabla isin %q && blabla2 %q) { ... } )
cs_ISoKa
Messages postés435Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention17 octobre 2008 2 juin 2006 à 09:59
J'ai pas tout matté, mais si tu veux en faite récupéré la premiere ligne sur plusieures qui sont trés similaires quand meme tu pourais tout betement ( si la ligne est fixée ) te faire un declenchement sur la premiere de la facon suivante, au debut de ton alias de lancement de socket tu te set une variable genre set %1erelignerecu non ensuite tu te fais tes conditions pour choper cette ligne en ajoutant dedans (%1erlignerecu == non) et dans l'action associée tu unset ta var ou la met sur "oui" et comme ca t'auras la premiere.
Fin c'est une idée comme ca si jamais la position de la ligne est connue :)
ISoKa