Communauté Eggdrop

Version complète : Log.tcl
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
bonjour / bonsoir

voila j'ai un tcl de log il fonctionne tres bien je vous le recommande mais le soucis que j'ai ces que les log qu'il fait en fichier .html s'appel #lechan.html hors moi je voudrais qu'il n'y et que lechan.html

j'ai tenter de retiré tous les # j'ai .rehash et .restart mais rien n'y fait

donc si quelqu’un aurais la bonté de bien vouloir m'aider je lui en serais reconnaissant

d'avance merci
Salut,

Tu peux essayer avec un regsub -all sur $chan au début de ta proc.. Wink.

Exemple :
Code :
regsub -all "#" $chan "" chan
bonjour / bonsoir

au début de quelle proc ?? j'aurais du préciser je suis un noob en tcl Mad
Dans toutes tes procs où tu utilises le $chan... (pour ouvrir / écrire / lire / ... dans ton fichier log).
bonjour / bonsoir

ok je teste cela et de dis quoi merci !
Re,

En relisant ton code, il y a juste regsub -all à mettre à un/deux endroit c'est tout.
Je viens de tester et ça fonctionne.

Le code en pièce jointe.
bonjour / bonsoir

merci merci beaucoup =)
bonjour / bonsoir

serait-il possible de faire en sorte que les message écris en couleur sur mon serveur apparaisse également en couleur sur le fichier log.html ?

car la ca donne

[Sun16Oct.18:32:01] (+Jeux-Furious) 0,2Blague: 5,0Pourquoi les blondes sont-elles sont virées des usines de fabrication de M&M's? 10Elles jettent toujours les!
Salut,

Faut faire pareille...

Mettre des regsub -all pour chaque couleur ... Wink.

Cordialement,
bonjour / bonsoir

dans le tcl je mes regsub -all ou exactement ?

stan182

Bonjour,

J'ai testé se script, malheureusement j'ai un soucis au niveau des egg's...Ils ne veulent pas généré les pages dans le /www/. L'erreur est " TCL error [logger:test:]: couldn't open "http://trucbidule.nanère/log/log.html" : no such file or directory " Donc, je pense que mon egg manque un TCL pour la fonction web, d'après le peux de souvenir que j'ai ^^.
Non, je pense surtout que http://trucbidule.nanère/log/log.html n'est pas chemin valide, c'est une url.
Le chemin serait plutôt: /home/bidule/public_html/log/log.html
Salut,

Je viens de regarder le TCl il et sympa.

Mais je vois qui ya des #accueil partout :s
Serait pas mieux que de faire une variable et lorsqu'ont désire appeler le nom du salon ont appel la variable ?

Exemple :

tcl
set logx "#accueil"



Et ont appel la variable

tcl
$logx



Enfin pour ma part je trouverais sa mieux au lieu de parcourir tout le tcl et de modifier tout les #accueil partout..
Salut,

Voilà j'ai pas tester mais sa devrais être dans se genre la :

tcl
########################################################
#        Eggdrop Logger 2.0 - www.mircstats.com        #
#        Logging in mIRC 6.17 format. 27/04/2006       #
#                                                      #
#   Make sure you have created the dir 'logger(dir)'   #
#                                                      #
#         Created by Lanze <simon@freeworld.dk>        #
#         Improved by zowtar <zowtar@gmail.com>        #
#                                                      #
########################################################

 
### Configuration ###

# Salon
set logx "#accueil"

#;;; Where the logs will be saved.
set logger(dir) "/var/www/virtual/tchat-live.org/htdocs/"

#;;; Strip codes?
#;;; 0 = save codes\colors
#;;; 1 = no save codes\colors
set logger(strip) "0"

#;;; Save by Day, Week, Month or Disable?
set logger(time) "Day"

# Modes
set logger(color1) "<font color='#FF0000'>"
# Text
set logger(color2) "<font color='#008080'>"
# Action
set logger(color3) "<font color='#9C009C'>"
# Notice / other
set logger(color4) "<font color='#7F0000'>"
# Timestamps
set logger(color5) "<font color='#0000FF'>"
# Topic
set logger(color6) "<font color='#D889B8'>"
# Join
set logger(color7) "<font color='#FFCC00'>"
# Part
set logger(color8) "<font color='#669900'>"
# Nick
set logger(color9) "<font color='#AA0078'>"
# Quit
set logger(color10) "<font color='#000000'>"

 
# # # # # # # # # # # # # # # #   DO NOT CHANGE ANYTHING BELOW HERE   # # # # # # # # # # # # # # # #
 
 
bind raw - "MODE" logger:raw
 
proc logger:raw { from keyword text } {
   global logger
   set nick [lindex [split $from "!"] 0]
   set chan [lindex [split $text] 0]
   regsub -all "#" $chan "" chan
   set mode [lindex [split $text] 1]
   set arguments [lrange [split $text] 2 end]
   if {[validchan $chan] && [string tolower $chan] == "$logx" } {
      logger:save $chan "$logger(color1)* $nick sets mode: $mode $arguments"
   }
}

 
### Events
bind join - "$logx *!*@*" logger:join
bind part - "$logx *!*@*" logger:part
bind sign - "$logx *!*@*" logger:quit
bind pubm - "$logx*" logger:text
bind nick - "$logx *" logger:nick
bind kick - "$logx *" logger:kick
# bind mode - "$logx *" logger:mode
bind topc - "$logx *" logger:topic
bind raw - "333" logger:topic-author
bind ctcp - "ACTION" logger:action
bind notc - * logger:notice
bind rejn - "$logx *!*@*" logger:rejn
bind splt - "$logx *!*@*" logger:split

 
### Primary Commands
proc logger:join {nick uhost handle chan} {
set chan [string tolower $chan]
  global logger botnick
  if {$nick == $botnick} {
    if {[file exists "$logger(dir)$chan.html"] == "0" } {
      set log "[open "$logger(dir)$chan.html" a]"
      puts $log "<html><head><title>$chan [strftime "%d%b%G"]</title></head>"
      puts $log "<body bgcolor=\"#000000\"><tt>"
      close $log
#      putquick "TOPIC $chan"
    }
    set log "[open "$logger(dir)$chan.html" a]"
    puts $log "<br>"
    puts $log "$logger(color5)Session Start: [strftime "%a %b %d %T %Y"]</font><br>"
    puts $log "$logger(color5)Session Ident: $chan</font><br>"
    puts $log "$logger(color5)\[[strftime "%a%d%b.%H:%M:%S"]\]</font> $logger(color1)* Now talking in $chan</font><br>"
    close $log
  } else {
    logger:save $chan "$logger(color7)* Joins: $nick ($uhost)"
  }
}
 
proc logger:rejn { nick uhost handle chan } {
set chan [string tolower $chan]
   global logger
   logger:save $chan "$logger(color7)* Rejoin from split: $nick ($uhost)"
}
 
proc logger:part {nick uhost handle chan msg} {
set chan [string tolower $chan]
  global logger
  if {$msg == ""} {
    logger:save $chan "$logger(color8)* Parts: $nick ($uhost)"
    #logger:save $chan "$logger(color1)* $nick ($uhost) has left $chan"
  } else {
    logger:save $chan "$logger(color8)* Parts: $nick ($uhost) ($msg)"
    #logger:save $chan "$logger(color1)* $nick ($uhost) has left $chan ($msg)"
  }
}
 
proc logger:quit {nick uhost handle chan reason} {
set chan [string tolower $chan]
  global logger
  logger:save $chan "$logger(color10)* Quits: $nick ($uhost) ($reason)"
  #logger:save $chan "$logger(color1)* $nick ($uhost) Quit ($reason)"
}
 
proc logger:split { nick uhost handle chan } {
set chan [string tolower $chan]
   global logger
   logger:save $chan "$logger(color10)* Lost in the netsplit: $nick ($uhost)"
}
 
proc logger:text {nick uhost handle chan text} {
set chan [string tolower $chan]
  global logger
  if {[isop $nick $chan] == "1"} {
    set nick "@$nick"
  } elseif {[ishalfop $nick $chan] == "1"} {
    set nick "%$nick"
  } elseif {[isvoice $nick $chan] == "1"} {
    set nick "+$nick"
  }
  logger:save $chan "$logger(color2)($nick) $text"
}
 
proc logger:nick {nick uhost handle chan newnick} {
set chan [string tolower $chan]
  global logger
  logger:save $chan "$logger(color9)* $nick is now known as $newnick"
}
 
proc logger:kick {nick uhost handle chan target reason} {
set chan [string tolower $chan]
  global logger
  logger:save $chan "$logger(color1)* $target was kicked by $nick ($reason)"
}
 
proc logger:mode {nick uhost handle chan mode victim} {
set chan [string tolower $chan]
  global logger
  logger:save $chan "* $nick sets mode: $mode $victim"
}
 
proc logger:topic {nick uhost handle chan topic} {
set chan [string tolower $chan]
  global logger
  if {[string tolower $chan] == "$logx" } {
    if {$nick == "*"} {
      logger:save $chan "$logger(color6)* Topic is '$topic'"
    } else {
      logger:save $chan "$logger(color6)* $nick changes topic to '$topic'"
    }
  }
}
 
proc logger:topic-author {from keyword text} {
  global logger
  set chan [lindex [split $text] 0]
  if {[validchan $chan] && [string tolower $chan] == "$logx" } {
    logger:save [lindex $text 1] "$logger(color6)* Set by [lindex $text 2] on [strftime "%a %b %d %T" [lindex $text 3]]"
  }
}
 
proc logger:action {nick uhost handle dest keyword text} {
  global logger
  if {[validchan $dest] == "1" && [string tolower $dest] == "$logx" } {
    if {[isop $nick $dest] == "1"} {
      set nick "@$nick"
    } elseif {[ishalfop $nick $dest] == "1"} {
      set nick "%$nick"
    } elseif {[isvoice $nick $dest] == "1"} {
      set nick "+$nick"
    }
	regsub -all "#" $chan "" chan
    logger:save $dest "$logger(color3)* $nick $text"
  }
}
 
proc logger:notice { nick uhost handle text dest } {
        global logger
   if {[validchan $dest] && [string tolower $dest] == "$logx" } {
      logger:save $dest "$logger(color4)-$nick:$dest- $text"
   }
}

 
### Secondary Commands
proc logger:save {chan text} {
set chan [string tolower $chan]
regsub -all "#" $chan "" chan
  global logger
   set log "[open "$logger(dir)[string tolower $chan.html]" a]"
   puts $log "$logger(color5)\[[strftime "%a%d%b.%H:%M:%S"]\]</font> [logger:strip $text]</font><br>"
  close $log
}

 
### Tertiary Commands
proc logger:strip {text} {
  global logger numversion
  if {$logger(strip) == "1"} {
    if {$numversion >= "1061700"} {
      set text "[stripcodes bcruag $text]"
    } else {
      regsub -all -- {\002,\003([0-9][0-9]?(,[0-9][0-9]?)?)?,\017,\026,\037} $text "" text
    }
  }
  return $text
}

 
### Time
proc logger:time {} {
  global logger
  foreach bind [binds time] {
    if {[string match "time * logger:time-save" $bind] == "1"} {
      unbind time - "[lindex $bind 2]" logger:time-save
    }
  }
  switch [string toupper $logger(time)] {
    DAY {
      bind time - "00 00 [strftime "%d" [expr [unixtime] + 86400]] * *" logger:time-save
    }
    WEEK {
      bind time - "00 00 [strftime "%d" [expr [unixtime] + ((7 - [strftime "%w"]) * 86400)]] * *" logger:time-save
    }
    MONTH {
      bind time - "00 00 01 [strftime "%m" [expr [unixtime] + ((32 - [strftime "%d"]) * 86400)]] *" logger:time-save
    }
  }
}
 
proc logger:time-save {minute hour day month year} {
  global logger
  if {[file exists "$logger(dir)$logx.html"] == "1" } {
    if {[file exists "$logger(dir)[lindex [split $logx] 1]"] == "0" } {
      file mkdir $logger(dir)[lindex [split $logx "#"] 1]
    }
    file rename -force "$logger(dir)$logx.html" "$logger(dir)[lindex [split $logx "#"] 1]/$logx.[strftime "%G%b%d" [expr [unixtime] - 3600]].html"
  }
  set log "[open "$logger(dir)$logx.html" w]"
  puts $log "<html><head><title>$logx [strftime "%d%b%G"]</title></head>"
  puts $log "<body bgcolor=\'#000000\'><tt>"
  puts $log "<br>"
  puts $log "$logger(color5)Session Start: [strftime "%a %b %d %T %Y"]</font><br>"
  puts $log "$logger(color5)Session Ident: $logx</font><br>"
  puts $log "$logger(color5)\[[strftime "%a%d%b.%H:%M:%S"]\]</font> $logger(color1)* Now talking in $logx</font><br>"
  close $log
  putquick "TOPIC $logx"
  logger:time
}
 
 
logger:time
 
 
putlog "TCL Logger1.tcl Loaded!"



Pour les couleurs je pense qu'il te faudrais par exemple :

tcl
regsub -all -- "\003(\[0-9\]\[0-9\]?(,\[0-9\]\[0-9\]?)?)?" $arg "" arg


salut,

il te manques les global logx Wink
Pages : 1 2