![]() |
|
Script TCL + SQL - Version imprimable +- Communauté Eggdrop (https://forum.eggdrop.fr) +-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8) +--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4) +--- Sujet : Script TCL + SQL (/showthread.php?tid=1472) Pages :
1
2
|
Script TCL + SQL - KiBa - 06/12/2013 Bonjour, 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"
###########
# PAQUETAGE #
###########
catch {package require mysqltcl}
#######
# CODE #
#######
#########
# CONNECT #
#########
proc service:connect {} {
set ::mysqlink [::mysql::connect -host $::sql(host) -user $::sql(login) -password $::sql(pass) -sock $::sql(sock)]
::mysql::use $::mysqlink $::sql(db)
}
###########
# DECONNECT #
###########
proc service:deconnect {} {
::mysql::close $::mysqlink; unset -nocomplain ::mysqlink
}
########
# INFOS #
########
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 AndUn petit coup de pouce siouplé :) RE: Script TCL + SQL - MenzAgitat - 06/12/2013 manque un espace après if : Code : if {[infos $artistes $titres]} {RE: Script TCL + SQL - KiBa - 06/12/2013 Oui j'avais tenté avec l'espace toutefois... Code : 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";
}
}Code : [14:22:50] <(VDMBot> [14:22:51] Tcl error [pub:wdntwcmd]: expected boolean value but got "1 Gotye {Somebody That I Used To Know featuring Ki"RE: Script TCL + SQL - CrazyCat - 06/12/2013 Ta procédure te retourne une liste, il faut donc tester sa longueur: tcl RE: Script TCL + SQL - KiBa - 06/12/2013 Ok, c'est déjà mieux, je n'ai plus d'erreur... En putlog, voici le résultat : Code : [15:12:16] <@KiBa> !sound Blink 182
[15:12:17] <(VDMBot> [15:12:17] Blink => 182Je présume que l'espace entre les deux arguments fait qu'il considère que Blink est $artistes et 182 est $titres... Du coup ce n'est pas tout à fait ça... RE: Script TCL + SQL - CrazyCat - 06/12/2013 Ben oui, c'est exactement ce que tu lui dis de faire. Je reprends le code modifié et le commente: tcl 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 RE: Script TCL + SQL - KiBa - 09/12/2013 Parfait Crazy, merci c'est fonctionnel ! Il ne me reste plus qu'à faire deux trois ajustements ! RE: Script TCL + SQL - KiBa - 11/12/2013 Désolé pour le "double" post... En php, j'ai une fonction qui me remplace toutes mes majuscules, mes accents etc. pour "cleaner" mes titres d'artistes et de musiques... La voici : Code PHP : function cleanLink($chaine){Est-ce qu'il existe quelque chose de similaire en TCL ? Code PHP : proc string_filter {str} {J'ai toutefois un problème, quand je fais Code : [17:08:15] <Aomine> !sound Petit frère
[17:08:16] <(VDMBot> [17:10:00] Ce son n'existe pasAlors que j'ai bien un résultat sur "Petit frère" Merci :) RE: Script TCL + SQL - BdS - 12/12/2013 Une piste peut être ici: http://forum.eggdrop.fr/Suppression-des-accents-dans-une-chaine-de-caracteres-t-1432.html RE: Script TCL + SQL - KiBa - 12/12/2013 Yes BdS merci ! Bon donc j'avance correctement :) Code PHP : bind pub $wdntwflags !sound pub:wdntwcmdJe pense qu'il y a des optimisations bien sur... En revanche je n'arrive à retourner qu'un résultat pour mes recherches... Il faut que je fasse une boucle ? Merci pour vos réponses :) RE: Script TCL + SQL - CrazyCat - 13/12/2013 Ah ben oui, il te faut un foreach {$artiste $titre $null $urlmenu} $res RE: Script TCL + SQL - KiBa - 13/12/2013 Alors voilà : Code PHP : foreach {$artistes $titres $null $urlmenu} $res {Code : [15:42:06] <@KiBa> !sound Asaf Avidan
[15:42:18] <(VDMBot> [15:41:55] Asaf Avidan - Reckoning Song : http://www.wdntw.com/pop-us/asaf-avidan/reckoning-song
[15:42:18] <(VDMBot> [15:41:55] Asaf Avidan - Reckoning Song : http://www.wdntw.com/pop-us/asaf-avidan/reckoning-song
[15:42:18] <(VDMBot> [15:41:55] Asaf Avidan - Reckoning Song : http://www.wdntw.com/pop-us/asaf-avidan/reckoning-songJ'ai bien trois entrées dans ma base qui correspondent à Asaf Avidan mais il me répète trois fois le même morceau en revanche... Normal ? RE: Script TCL + SQL - CrazyCat - 14/12/2013 Oui, c'est de ma faute: tcl RE: Script TCL + SQL - KiBa - 17/12/2013 Tout d'abord merci Crazy :) 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-dangerousSi on regarde bien, la requête est bonne, les résultats sont bien différents... mais les liens sont les mêmes... Je comprends pas trop... RE: Script TCL + SQL - CrazyCat - 17/12/2013 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. |