Log.tcl
#1
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
Répondre Avertir
#2
Salut,

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

Exemple :
Code :
regsub -all "#" $chan "" chan
Répondre Avertir
#3
bonjour / bonsoir

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

ok je teste cela et de dis quoi merci !
Répondre Avertir
#6
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.
Répondre Avertir
#7
bonjour / bonsoir

merci merci beaucoup =)
Répondre Avertir
#8
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!
Répondre Avertir
#9
Salut,

Faut faire pareille...

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

Cordialement,
Répondre Avertir
#10
bonjour / bonsoir

dans le tcl je mes regsub -all ou exactement ?
Répondre Avertir
#11
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 ^^.
Répondre Avertir
#12
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
Répondre
#13
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..
Répondre Avertir
#14
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


Répondre Avertir
#15
salut,

il te manques les global logx Wink
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir


Atteindre :


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