Petit souci de tcl !news modifier en !absent
#1
Bonjour,
j'ouvre se post pour évité de polluer un autre post qui se trouve sur se lien

J'ai repris le code donnée comme indiqué sur se lien (Cliquer ici)

pour faire une newslist d'absence.

J'ai deux petit souci que je n'arrive pas a résoudre.
1Er souci c'est que si une personne tape !pasla sans le message sa va affiché :
Citation : *Notice* - Bot - 12:04:12 pseudo {}
Comment faire pour envoyer un notice pour dire qu'il / quelle na pas envoyer de motif

exemple :
Pseudo tape !pasla
Le bot lui répond vous avez oublier de mettre votre absence

2eme souci c'est quand une personne tape !listabsent ou !absent on voie pas les numéro des lignes exemple :

Citation : *Notice* - Bot - 12:04:12 pseudo1 et un de plus teste d'absence Smile)
*Notice* - Bot - 12:04:12 pseudo2 absent du 12/04/2012 au 16/04/2012

sa aurait du marquer un truc comme sa :

Citation : *Notice* - Bot - Absence 1 - pseudo1 et un de plus teste d'absence Smile) . 12 April 2012a 12:05:36
*Notice* - Bot - Absence 2 - pseudo2 absent du 12/04/2012 au 16/04/2012 . le 12 April 2012 a 12:04:12

Petite question et il possible de faire un truc dans le style :
!abs pseudo et que sa affiche tout les absences du pseudo donner ?

un truc qui serrer même mieux je pense que !abslist et d'avoir toute la list.

Merci de votre aide et de votre compréhension
Je vous mais le code ici :
TCL
############
# absent.tcl #
############
 
set backroom "#Salon";
set base "/home/Login/shell/Bot/logs/absence.log";
 
bind pub - "!aide" absent:help
proc absent:help {nick uhost handle chan text} {
    putquick "NOTICE $nick :\00312Debut de l'aide"
    putquick "NOTICE $nick :\00304!pasla <absent>\00312 Pour ajouter une absence"
    putquick "NOTICE $nick :\00304!absent <numero>\00312 Pour voir une absence precise"
    putquick "NOTICE $nick :\00304!listabs\00312 Pour voir toute la list des absents"
    putquick "NOTICE $nick :\00304!delabsent <numero>\00312 Pour suprimer une absence"
    putquick "NOTICE $nick :\00312Fin de l'aide a la liste des absents du Staff"
 
}
 
bind pub - "!pasla" absent:sent
proc absent:sent {nick uhost handle chan text} {
    set fp [open $::base a]
    puts $fp "[clock format [clock seconds] -format "%d:%m:%y"] $nick $text"
    close $fp
    putquick "NOTICE $nick :\00312Votre absent a été enregistrée"
}
 
bind pub - "!absent" absent:read
proc absent:read {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set nb [lindex $args 0]
    }
    set fp [open $::base r]
    set cpt 0
    set data [read -nonewline $fp]
    close $fp
    foreach templine [split $data "\n"] {
        incr cpt
        if {$cpt == $nb} {
            set line [split $templine]
            set user [lindex $line 0]
            putquick "PRIVMSG $::backroom $user\00312 => [lrange $line 1 end]"
            return 1
        }
    }
    putquick "PRIVMSG $::backroom \00312absent $nb introuvable"
}
bind pub - "!listabs" news:list
proc news:list {nick uhost handle chan text} {
   set fp [open $::base r]
   set data [read -nonewline $fp]
   close $fp
   foreach templine [split $data "\n"] {
      set line [split $templine]
      puthelp "NOTICE $nick :$line"
   }
}
 
bind pub - "!delabsent" absent:del
proc absent:del {nick uhost handle chan args} {
    if {[lindex $args 0] eq ""} {
        return 0
    } else  {
        set nb [lindex $args 0]
    }
    set fp [open $::base r]
    set cpt 0
    set data [read -nonewline $fp]
    close $fp
    set fp [open $::base w]
    foreach templine [split $data "\n"] {
        incr cpt
        if {$cpt != $nb} {
            puts $fp $templine
        }
    }
    close $fp
    putquick "NOTICE $nick :\00312La list d'absent $nb as été suprimée"
}



J'espère que se code va aussi servir a d'autre Smile

Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
Répondre Avertir
#2
1er souci a étais réglé Merci Judge !!!

solution :

TCL
bind pub - "!pasla" absent:sent
proc absent:sent {nick uhost handle chan text} {
if {$text eq ""} {putquick "notice $nick :\00304Erreur: \00301Vous devez spécifier un motif ou une date d'absence"; return 0;}
   set fp [open $::base a]
   puts $fp "[clock format [clock seconds] -format "%d:%m:%y"] $nick $text"
   close $fp
   putquick "NOTICE $nick :\00312Votre absent a été enregistrée"
 
}



Ajouter cette ligne au dessus de Fp :

Citation :if {$text eq ""} {putquick "notice $nick :\00304Erreur: \00301Vous devez spécifier un motif ou une date d'absence"; return 0;}

Cordialement Stéphane,
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
Répondre Avertir


Atteindre :


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