Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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é :
Quote: *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 :

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

sa aurait du marquer un truc comme sa :

Quote: *Notice* - Bot - Absence 1 - pseudo1 et un de plus teste d'absence :)) . 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 :)

Cordialement Stéphane
hésitez pas de visité http://www.tchat-fusion.org/
ou part irc /server -m irc.tchat-fusion.org
#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 :

Quote: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


Possibly Related Threads…
Thread Author Replies Views Last Post
  Modifier un nick par badnick pheeric 8 1,459 01/11/2020, 23:20
Last Post: pheeric
Information Adaptation d'un tcl news.tcl KeeViiNou 12 2,816 13/05/2020, 10:49
Last Post: KeeViiNou
  Modifier le script du trivia pour défiler les questions dans l'ordre Mimisth 2 3,551 05/12/2015, 19:45
Last Post: MisterS
  Tcl gestion de news / Programme Radio KeeViiNou 5 6,339 29/12/2012, 13:27
Last Post: CrazyCat
  Eggdrop , diffuser des news o0TaGa0o 6 5,041 01/12/2010, 18:26
Last Post: DnS
  Aide pour modifier un script de quote t1bz 12 8,001 05/06/2010, 12:16
Last Post: t1bz
  News.tcl Aragorn 27 16,866 04/02/2010, 20:04
Last Post: DodY
  news-linuxfr.tcl dimoala 4 4,105 26/08/2009, 18:32
Last Post: dimoala
  S.O.S Pour Un Windop3.1.tcl Modifier Behemoth 7 4,884 12/04/2009, 20:11
Last Post: Behemoth

Forum Jump:


Users browsing this thread: 1 Guest(s)