plusieurs question en 1
#4
bon j'avance sur la messagerie mais j'ai un bug quelque part
je n'ai toujours pas de message d'enregistré dans ma base mysql
ou est le bug ?
tcl
# binds 
bind pub - "!memo" memo

# variable mysql
set my_user     "tedcampa"
set my_pass     "ZfFmTfTYmryESsB9"
set my_db       "tedcampa"
set my_host     "localhost"

# chargement du module mysql
load /usr/lib/tcltk/mysqltcl-3.05/libmysqltcl3.05.so
 
 
proc memo {nick uhost handle chan args} {
 
   ### Appel des variables globales ###
   global my_user my_pass my_db my_host

   ### on se prepare a la connection mysql ###
   set db_handle [mysqlconnect -host $my_host -user $my_user -password $my_pass -db $my_db ]

   ### Decoupage de l'arguments ###
 
   set action [lindex $args 0 0]
 
switch $action {
 
        liste {
                ### LISTING DES MEMO NON LU ###

                ### on recherche les memo non lu ###
                set sql "SELECT * FROM memo WHERE dest='$nick' AND etat='unread' ORDER BY date"
                set result [mysqlquery $db_handle $sql]
                set count [mysqlresult $result rows]
 
                if {$count != 0} {
                ### si il y a quelque chose a afficher on le met en forme ####
 
                        while {[set row [mysqlnext $result]] != ""} {
                                set no  [lindex $row 0]
                                set exp [lindex $row 5]
                                set dte [lindex $row 2]
                                putserv "PRIVMSG $nick :Memo id : $no de $exp le $dte"
                                putserv "PRIVMSG $nick :--------------------------------------------"
                        }
                        putserv "PRIVMSG $nick :Pour lire vos memo tapez !memo lire <id>"
 
                } else {
 
                ### sinon on informe qu'il n'y a pas de message a lire ###
                putserv "PRIVMSG $nick :Vous n'avez pas de memo non lu"
                }
        }
        lire {
                ### LECTURE DES MEMO ###

                ### on recupere l'id du memo a rechercher ###
                set destid [lindex $args 0 1]

                ### on recherche le memo identifie <id> ###
                set sql "SELECT * FROM memo WHERE dest='$nick' AND id='$destid'"
                set result  [mysqlquery $db_handle $sql]
                set count [mysqlresult  $result rows]
 
 
                if {$count != 0} {
 
                ### si il y a un resultat on l'affiche ###
                        while {[set row [mysqlnext $result]] != ""} {
                                set no  [lindex $row 0]
                                set dte [lindex $row 2]
                                set msg [lindex $row 3]
                                set exp [lindex $row 5]
 
                                putserv "PRIVMSG $nick :Memo id : $no de $exp le $dte"
                                putserv "PRIVMSG $nick :--------------------------------"
                                putserv "PRIVMSG $nick :$msg"
                                putserv "PRIVMSG $nick :--------------------------------"
                        }

                        ### on indique que le memo est lu ###
                        set sql "UPDATE memo SET etat='read' WHERE id='$destid'"
                        set result [mysqlquery $db_handle $sql]
 
                } else {
 
                ### sinon on affiche un message d'erreur ###
                putserv "PRIVMSG $nick :L'id que vous avez saisie ne renvois a aucun memo enregistre"
                putserv "PRIVMSG $nick :Verifiez vottre saisie"
                }
        }
        envoi {
                ### ENVOI D'UN MEMO  ###
                ### on recupere le destinataire, le message et la date ###
                set destid [lindex $args 0 1]
                set msg [join [lrange $args 2 end]]
                set date [strftime "%d-%m-%Y"]
 
                putlog "$nick envoi un message a $destid : $msg"
                ### on enregistre le message ###
                set sql "INSERT INTO memo (dest,date,message,etat,orig) VALUES ('$destid','$date','$msg','unread','$nick')"
 
                if {[mysqlquery $db_handle $sql]} {
                        ### Confirmation de l'envois ###
                        putserv "PRIVMSG $nick :Votre message a bien ete envoye a $destid"
                } else {
                        putserv "PRIVMSG $nick :Oups il y a un probleme sur l'envoi de votre memo. Reessayez SVP"
                }
        }
 
        default {
                ### ACTION INCONNUE ###
 
                putserv "PRIVMSG $nick :Je ne comprend pas votre demande. Merci de la presenter correctement :"
                putserv "PRIVMSG $nick :!memo liste                             : pour consulter la liste de vos memo non lu"
                putserv "PRIVMSG $nick :!memo lire <id>                         : pour lire le memo identifie"
                putserv "PRIVMSG $nick :!memo envoi <destinataire> <le message> : pour envoyer un message a quelqu'un"
                putserv "PRIVMSG $nick :pour plus de lisibilité il est deconseiller que le message dépasse les 160 caracteres (et ouai meme limitation qu'un SMS)"
        }
}
}



commande sur le chan :
Code :
[01:17:04]  <Teddy> !memo envoi teddy ceci est un test long

réponse du bot en pv
Code :
[01:17:06]  <Edgar> Votre message a bien ete envoye a teddy

contenu de la base mysql

[ id ][dest ][date ][message ][etat][ orig]
[ 22 ][teddy ][22-03-2011][ ][unread][ Teddy]

et aucune erreur en pl

Merci de votre aide
Répondre Avertir


Messages dans ce sujet
plusieurs question en 1 - par tedcampa - 21/03/2011, 11:54
RE: plusieurs question en 1 - par CrazyCat - 21/03/2011, 12:27
RE: plusieurs question en 1 - par MenzAgitat - 21/03/2011, 15:03
RE: plusieurs question en 1 - par tedcampa - 22/03/2011, 02:26
RE: plusieurs question en 1 - par djkenny - 22/03/2011, 08:20
RE: plusieurs question en 1 - par CrazyCat - 22/03/2011, 09:56
RE: plusieurs question en 1 - par tedcampa - 22/03/2011, 11:31
RE: plusieurs question en 1 - par djkenny - 22/03/2011, 11:45

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté