tcyrill2
Messages postés20Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention26 octobre 2009
-
13 sept. 2008 à 22:17
tcyrill2
Messages postés20Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention26 octobre 2009
-
19 oct. 2008 à 11:39
Bonjour tout le monde,
Bon, je sens que je vais passé pour un noob .. et vous n'auriez pas tout à fait tord :x
Ceci étant, je vais être assez direct :x
Je souhaite développer un Bot IRC en PERL pour se connecter sur le nouveau t'chat Orange/Voilà.
Pourquoi le PERL me diriez-vous !? euh, bah c'est un langage que je connais pas trop mal ... enfin les bases quoi, mais pas l'utilisation de la librairie Net::IRC, qui est une librairie PERL reconnue mais dont j'ignore tout :x
Donc j'ai commencé par aller voir ce tuto : http://www.squalenet.net/fr/pc/articles/ecrire-un-bot-irc-en-perl-part1.php5 mais il ne traite pas de la connexion sur le serveur Orange/Voila :x
Voila, si quelqu'un a une solution, je suis tout ouïe
Par avance, merci beaucoup...
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 14 sept. 2008 à 16:35
Pour la connexion sur Orange/Voila, le problème qui va se poser c'est l'obtention d'une clé : soit le pseudo de ton bot est enregistré, et cette clé devrait être fixe (si ca n'a pas changé, je ne vais plus là bas), soit ce n'est pas le cas, et là je botte en touche (des générateurs existent, mais ils violent les CGU de ce serveur donc j'éviterai d'en parler). Si ton bot est enregistré, donc, il faut regarder du côté de Net::IRC comment envoyer un "PASS" au serveur à la connexion. D'après la doc, un simple "password" => "ta_clé" dans ton "newconn" devrait suffire, à tester...
J'avais fait un bot il y a quelques temps, très basique, avec Net::IRC, mais de mémoire j'avais laché ça au profit de POE::Component::IRC (trouvable facilement sur le CPAN), qui est tout objet et plutôt plus abouti. Je me souviens avoir eu des difficultés à créer une PL avec les deux, mais je suis assez mauvais en Perl j'avoue... Il y a un cookbook minimaliste ici : http://poe.perl.org/?POE_Cookbook/IRC_Bots si ça t'intéresse, ça te permettra d'appréhender la chose. De mémoire encore, il y avait un petit bug dans le .pm fourni, un mauvais handle des kicks qui se corrige très facilement pour peu que tu aies fais une fois du Perl dans ta vie.
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 9 oct. 2008 à 18:34
Dans un PRIVMSG ou une NOTICE, tu dois mettre un ":" pour préciser que tu vas commencer une phrase et que l'espace n'est plus le séparateur des arguments (sinon seul ton premier mot arrive). Je suppose que c'est ce ":" que tu vois arriver dans tes logs.
Pour écrire en couleur, il faut utiliser une syntaxe spécifique à l'IRC (je ne l'ai jamais vu ailleurs, même si on parle "d'ANSI codes").
En numéro ASCII :
- le charactère "2" ca active ou désactive le gras
- le 31 idem pour le souligné
- le 15 remet tout à zéro (si tu étais en gras tu repasses en normal, idem pour les underline, idem pour les couleurs)
- le 3 suivi d'un nombre entre 0 et 15 (de tête) + éventuellement une virgule et une couleur de fond (entre 0 et 15 toujours) permet d'écrire en couleur
- le 22 permet d'inverser noir et blanc (très peu utilisé)
Pour faire ça en Perl, tu as une fonction "chr(<numéro>)" il me semble, et tu as peut-être une manière de les rentrer dans les chaines entre double quotes, avec un truc genre \x<numéro> mais je ne suis plus très sûr, je confonds peut-être.
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 12 oct. 2008 à 14:07
Le problème c'est la récupération de la page ou le parsing de l'arbre XML ?
Si le problème est le parsing, je n'en ai jamais fait avec Perl, mais il doit y avoir des bibliothèques pour ça : j'ai trouvé ça http://maspalio.free.fr/JP2005.pdf ça a l'air assez complet et intéressant. Et au pire, tu peux te faire ton parser toi-même, s'il n'y a pas de sauts de ligne et un node par ligne, ça doit être assez simple ;-)
tcyrill2
Messages postés20Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention26 octobre 2009 9 oct. 2008 à 00:57
Ree ^^
Bon, je viens aux nouvelles .. avec un bêbête qui commence a tourner gentillement ^^ même sur Voila/Orange ^^ j'ai un pseudo réservé ^^
Par contre j'utilise pas la librairie Net::IRC ni POE::Component::IRC (je connais pas cette dernière d'ailleurs :x), j'ouvre direct une socket avec la librairie 'socket' puis un PING dans un while pour garder la connexion
pour le moment, il traite le voice auto au JOIN avec NOTICE d'accueil.. et euh une commande relative à une webradio :x
Et donc, nouveau problème .. comment peut-on faire pour écrire avec un code couleur ? j'ai commencé a cherché du côté de l'ASCII, mais sans résultats :x j'comprend pas le ':' dans le ':09,12blablabla' que je vois sur les logs :x
Si quelqu'un a un idée ... ça serait cool
Par avaannce mercii
Vous n’avez pas trouvé la réponse que vous recherchez ?
tcyrill2
Messages postés20Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention26 octobre 2009 12 oct. 2008 à 13:56
Toc, Toc,
PaDa, encore là ? ^^
Bon, c'est tout autre chose aujourd'hui, mais ça va commencer a être assez spécifique :x
J'aimerais récupérer des données XML disponibles sur page CGI
je m'explique..
J'ai un service 'shoutcast' qui tourne sur le serveur, qui met donc des données en ligne sur une page CGI/XML (ex : http://nom_de_domaine:port/admin.cgi?mode=viewxml ) qui me retourne un truc sous cette forme :
-------------------------------------------------------------------------------------------------------------------
Ce fichier XML ne semble pas avoir d'information de style associé avec lui. L'arbre du document est montré ci-dessous.
-
<SHOUTCASTSERVER>
<CURRENTLISTENERS>...</CURRENTLISTENERS>
...
<MAXLISTENERS>...</MAXLISTENERS>
<REPORTEDLISTENERS>...</REPORTEDLISTENERS>
...
<SERVERGENRE>..........</SERVERGENRE>
<SERVERURL>...........................</SERVERURL>
<SERVERTITLE>.......</SERVERTITLE>
<SONGTITLE>............................................................</SONGTITLE>
-------------------------------------------------------------------------------------------------------------------
donc, j'ouvre une socket en local sur le port du shoutcast, et donc je cherche a récupérer les variables dans un tableau '@var' dans ma socket principale
et euh, c'est tendu, i'm a noob
une idée ?
tcyrill2
Messages postés20Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention26 octobre 2009 19 oct. 2008 à 11:39
Ree,
Bon, j'ai trouvé une solution de contournement ^^ j'utilise un p'ti outil en PHP qui me file toutes les stats du shoutcast sur une page PHP, et donc avec 'WWW::Mechanize' j'arrive a parser ma page et a recupérer mes variable
Par contre, j'ai un autre problème :x quand je fais joindre mon bot sur plusieurs chan, il lague a mort :x
Donc, je pensais utilisé les "thread", du genre ouvrir ma socket sur le server irc dans le programme principal puis ouvrir une "thread" par salon !?!? j'ai commencé a me documenter ici mais je comprends pas tout :x
En fait je cherche a ouvrir plusieurs thread simultanément et que chaque thread renvoie ses valeurs au prog principal pour traitement.
Le problème, c'est de ce que j'ai compris de la doc que j'ai lu, en lançant une thread en mode 'detach', on ne peut pas en récupérer les valeurs de retour dans le programme principal :x