Recherche de paroles [chansons internationales]

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 609 fois - Téléchargée 27 fois

Contenu du snippet

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>,&nbsp;)
  /set %ephemere3 $replace(%ephemere2,<br>,-)
  msg %parolenick %ephemere3
  var %lineparole = %lineparole + 1
  if (<BR>&nbsp; !isin %ephemere) { goto debut }
  if (<BR>&nbsp; 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,&nbsp;,<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 :).

A voir également

Ajouter un commentaire Commentaires
Messages postés
142
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
8 juin 2006

ca fonctionne pas des masses ,je fait "!find still dre" (parce que il veut pas le francais t'as dit) et il me rep :
>
>
>
>
>
Bref passioonante les paroles quoi :/
Messages postés
5
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
2 juin 2004

ok je m'en occupe demain :)

merci de ta réponse
a+
G
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

var %read = $read(macin.txt,1) ... je pense
ou set %read $read(macin.txt,1)
Messages postés
290
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
29 février 2008

Pas pu tester car le bot n etait pas la :(
Les events sont regroupés,des sockets qui maarche, ca à l air de marcher.
En plus c sympa comme addon (version bot en plus) car on a tous eu des paroles à rechercher =)

ps : essaye de trouver une base de donnees francaise :)

Ca mérite une tite note de 8/10.
Messages postés
5
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
2 juin 2004

oups petit bug corrigé, ca devrait mieux marcher :)
Afficher les 8 commentaires

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.