J'ai tenté un petit script toutefois le résultat n'est pas fameux...
Code :
##############
# CONFIGURATION #
##############
# -> Login
set sql(login) ""
# -> Mot de passe
set sql(pass) ""
# -> Nom de la base de donnée
set sql(db) ""
# -> L'host a l'aquelle ce connecté
set sql(host) "localhost"
# -> Localisation de fichier mysql.sock
set sql(sock) "/var/run/mysqld/mysqld.sock"
proc infos {artistes titres} {
service:connect
set query "SELECT idvideos, v_artistes, v_titres FROM v5_videos WHERE v_artistes LIKE '%$artistes%' OR v_titres LIKE '%$titres%'"
set res [::mysql::sel $::mysqlink $query -flatlist]
service:deconnect
return $res
}
#Users with these flags can operate this function
set wdntwflags "h|h"
bind pub $wdntwflags !sound pub:wdntwcmd
proc pub:wdntwcmd {nick host hand chan arg} {
set artistes [lindex $arg 0]
set titres [lindex $arg 1]
if{[infos $artistes $titres]}{
putlog "$artistes => $titres";
}else{
putlog "Ce son n'existe pas";
}
}
putlog "Script WDNTW SQL by KiBa loaded!"
En gros, je vais taper dans une table qui contient un certains nombres de musiques et j'aimerai en sortir le titres et l'artistes (pour le moment) en faisant un !sound Blink 182 par exemple
Voilà le résultat :
Code :
[13:56:46] <@KiBa> !sound Passenger
[13:56:47] <(VDMBot> [13:56:48] Tcl error [pub:wdntwcmd]: invalid command name "if{1 Gotye {Somebody That I Used To Know featuring Kimbra} 3 Booba {Kalash featuring Kaaris} 4 {Positive Flow} {Do What I Do featuring Omar} 5 Adele {Hometown Glory High Contrast Remix} 6 Beyonce {I Was Here} 7 {Mark Farina} {Dream Machine} 8 Jay-Z {Public Service Announcement Nba2K13 OST} 9 {Kid Ink} {Lowkey Poppin} 10 Bibio {Lovers Carvings Catz'n Dogz Remix} 11 {Angels And
Ben oui, c'est exactement ce que tu lui dis de faire.
Je reprends le code modifié et le commente:
tcl
proc pub:wdntwcmd {nick host hand chan arg}{
# $arg est la liste des arguments qui suivent la commande (séparée par des espaces)set artistes [lindex$arg0] # $artistes est donc le premier "mot" contenu dans $argset titres [lindex$arg1] # $titres est donc le secondif{[llength[infos $artistes$titres]]>0}{
putlog "$artistes => $titres";}else{
putlog "Ce son n'existe pas";}}
Comme tu veux pouvoir chercher un artiste ou un titre, je pense qu'il faut revoir ta requête et même les deux procédures:
tcl
proc infos {donnees}{
service:connect
set query "SELECT idvideos, v_artistes, v_titres FROM v5_videos WHERE CONCAT(v_artistes, '%', v_titres) LIKE '%$donnees%'"set res [::mysql::sel$::mysqlink$query -flatlist]
service:deconnect
return$res}proc pub:wdntwcmd {nick host hand chan arg}{set donnees [string map {" "%}[join$arg]] # on transforme les espaces en %set res [infos $donnees]if{[llength$res]>0}{
putlog "Résultat : [join $res]";}else{
putlog "Ce son n'existe pas";}}
proc pub:wdntwcmd {nick host hand chan arg} { set donnees [string_filter [string map {" " %} [join $arg]]] # on transforme les espaces en % if { [llength [split $arg]] == 0 } { putserv "NOTICE $nick : Merci de préciser ta recherche. Exemple : !sound *artistes ou titres*" return 0 } set res [infos $donnees] set artistes [lindex $res 0] set titres [lindex $res 1] set urlmenu [lindex $res 3] set minartistes [string_filter [lindex $res 0]] set mintitres [string_filter [lindex $res 1]] if { [llength $res] > 0 } { #putlog "Résultat : [join $res]"; putlog "$artistes - $titres : http://www.wdntw.com/$urlmenu/$minartistes/$mintitres"; } else { putserv "NOTICE $nick : Désolé mais ce son n'existe pas dans ma base de données."; } }
Je me rapproche vraiment de ce que je veux faire :)
Toutefois je rencontre toujours un problème avec les liens :
Code :
[10:12:40] <KiBa> !sound Blink 182
[10:12:41] <%VDMBot> Blink 182 - Love Is Dangerous : http://www.wdntw.com/punk-rock/blink-182/love-is-dangerous
[10:12:42] <%VDMBot> Blink 182 - Every Time I look For You : http://www.wdntw.com/punk-rock/blink-182/love-is-dangerous
[10:12:43] <%VDMBot> Blink 182 - When I Was Young : http://www.wdntw.com/punk-rock/blink-182/love-is-dangerous
[10:12:43] <%VDMBot> Blink 182 - I Miss You : http://www.wdntw.com/punk-rock/blink-182/love-is-dangerous
Si on regarde bien, la requête est bonne, les résultats sont bien différents... mais les liens sont les mêmes...
Ben sans ton code complet, c'est un peu difficile de t'aider.
Je ne sais pas si tu te rends compte que depuis le début je suis obligé d'imaginer la plupart de tes variables, donc soit tu adaptes correctement les bouts que je te donne soit tu mets toutes les infos (tout le code utile) pour qu'on puisse te donner quelque chose de fonctionnel.