Voilà, code sympa (et c'est mon premier) :). Il doit être trés mal scripté, alors aidez moi dans les commentaires plz ;) ...
!find [chanson] : recherche la chanson (pour l'instant ya que une base anglaise). Renvoi un numéro
!paroles [numéro] : envoie les paroles en PV au nick :)
Source / Exemple :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Voilà, vous avez devant vous le système de recherche de paroles par moi même. Pour le tester, allez sur irc.epiknet.org, canal #PhoeniXX
;;; Si vous l'implantez dans votre bot ou script, veuillez s'il vous plait m'inclure dans les remerciements ;)
;;;
;;; COMMANDES :
;;;
;;; !find [nom-d'une-chanson] va ouvrir un socket qui va chercher un numéro contenant les paroles de la chanson. Espaces autorisés mais caractères accentués pas encore pris en compte.
;;; !paroles [tag-trouvé-grâce-à-!find] va ouvrir le socket sur le numéro trouvé grâce à la recherche !find. Ensuite, un message PV contenant les paroles sera envoyé au nick ayant fais la demande.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; LES ALIAS
alias direparoles {
timers off
$read(paroles.txt, s, %phraseparole)
/set %lineparole $readn
$read(paroles.txt,$lines(paroles.txt))
/set %lineall $readn
msg %parolechan $+ %tn $+ Merci $+ %ta $+ $nick $+ %tn $+ d'utiliser le système de recherche de paroles de $me ! Regardez le message privé pour avoir les paroles !
:debut
/set %ephemere $read(paroles.txt, %lineparole)
/set %ephemere2 $remove(%ephemere,</TABLE>,<TABLE BORDER=0 WIDTH=508 CELLPADDING=2 CELLSPACING=0>,<TR CLASS=txtTX>,<TD CLASS=txtTX>, )
/set %ephemere3 $replace(%ephemere2,<br>,-)
msg %parolenick %ephemere3
var %lineparole = %lineparole + 1
if (<BR> !isin %ephemere) { goto debut }
if (<BR> isin %ephemere) { msg %parolefin FIN ! | /remove paroles.txt }
}
alias direfind {
$read(finds.txt, s, %phrasefind)
/set %linefind $readn
$read(finds.txt,$lines(finds.txt))
/set %lineall $readn
set %secure 0
:debut
var %secure = %secure + 1
if (%secure == 6) { timers off | remove finds.txt | break | stop | halt }
/set %ephemere $read(finds.txt, %linefind)
if (</TD></TR> isin %ephemere) { msg %findchan 6Fin de la recherche | /remove finds.txt | timers off | halt }
set %remove $remove(%ephemere,<SPAN CLASS=bloc>,<BR>,<SPAN CLASS=bloc>,</SPAN>,<BR>,</a>,Recherche d'un Titre, ,<tr>,<TR CLASS=odd><TD ALIGN=right>,<TABLE CELLSPACING=0 CELLPADDING=0 WIDTH="100%">,</TD><TD ALIGN=Right WIDTH=18>,</TABLE>,</body>)
set %redit $replace(%remove,<i>,,</i>,,<hr>,-,<TABLE ALIGN=CENTER CELLSPACING=0 CELLPADDING=0 WIDTH="100%">, $+ %tn $+ Pour avoir les paroles il faut taper : $+ %ta !paroles numéro14 [exemple : !paroles 51052] ,<TR CLASS=even><TD>, $+ %tn $+ Le numéro à taper est le suivant :,<A HREF="/texte/, $+ %tn $+ >> $+ %ta $+ ," TARGET=page CLASS=titLT>, $+ %tn $+ << : $chr(32) ,</td></tr>,Fin de la recherche., propositions, 6Titre trouvé, résultats, -)
set %redit 6 $+ %redit
if (attention isin %redit) { goto stop }
msg %findchan %redit
var %linefind = %linefind + 1
if (<TR CLASS=odd><TD ALIGN=right> !isin %ephemere) { goto debut }
:stop
msg %findchan 6Fin de la recherche
remove finds.txt
timerfind off
:end
remove finds.txt
timerfind off
}
;;; LES ON TEXT
On 1:TEXT:*:*:{
if ($1 == !paroles) {
set %parolenick $nick
msg $chan $+ %tn $+ Veuillez patienter, $+ %ta $+ $nick $+ %tn $+, je recherche les paroles associées au numéro...
timer 0 5 direparoles
UNSET %paroleread
SET %parolechan $chan
set %parolenum $2
SOCKCLOSE parole
SOCKOPEN parole www.keskidi.net 80
}
if ($1 == !find) {
msg $chan $+ %tn $+ Veuillez patienter, $+ %ta $+ $nick $+ %tn $+, je recherche les paroles associées au titre $+ %ta $+ $2-
timerfind 0 5 direfind
timerremove 0 8 remove finds.txt
UNSET %findread
SET %findchan $chan
set %findnum $replace($2-, $chr(32), $chr(37) $+ 20)
SOCKCLOSE find
SOCKOPEN find www.keskidi.net 80
}
}
;;; LES SOCKETS
; PAROLES
on *:sockopen:parole: { sockwrite -nt $sockname GET /texte/ $+ %parolenum HTTP/1.0 | sockwrite -nt $sockname Host: keskidi.net $+ :80 | sockwrite -nt $sockname $lf }
ON *:SOCKREAD:parole:{
SOCKREAD %paroleread
write paroles.txt %paroleread
}
; RECHERCHE
on *:sockopen:find: { sockwrite -nt $sockname GET /page/moteurTitre&titreK= $+ %findnum HTTP/1.0 | sockwrite -nt $sockname Host: keskidi.net $+ :80 | sockwrite -nt $sockname $lf }
ON *:SOCKREAD:find:{
SOCKREAD %findread
write finds.txt %findread
}
;;; DIVERS :
; %ta ET %tn SONT LES COULEURS A PERSONNALISER. EXEMPLE : SI ON VEUX QUE LA COULEUR DU TEXTE ACTIF (%ta) SOIT LE ROUGE, ON METS DANS LES VARIABLES "%ta 4" (SANS LES GUILLEMETS). %tn EST LE TEXTE NORMAL.
Conclusion :
Lire les commentaires de la source, et svp ne me fightez pas trop dans les commentaires c'est mon tout premier script alors je débute...
> Mise à jour du 01/06/2004 : bug de connection corrigé
/!\ le site utilisé peut planter, durant mes phases de tests, j'ai eu plusieurs messages d'erreur, comme TOO MANY CONNECTIONS. Le site est trés souvent mis à jour :).
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.