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


ftp.tcl ... C'est jolie
#1
Bonjour ^^ Voilà je débute en TCL et j'ai quelques problèmes ^^
J'ai un projet pour mon bot qui est le suivant, chaque matin, à 2h du matin, il upload le fichier de logs créé automatiquement par l'eggdrop sur un FTP.
J'ai trouvé comment faire pour faire l'action à 2h


tcl
bind time - "00 02 * * *" upload
proc upload {min hour day month year } {
   // Ici l'upload du fichier
}


Mais pour l'upload, j'ai trouvé ftp.tcl sur ces forums mais j'avoue que je comprend pas comme il marche .. j'ai trouvé dans le code les fonctions mais après pour les utiliser... :/

# core ftp support: ftp::Open <server> <user> <passwd> <?options?>
# ftp::Close <s>
# ftp::Cd <s> <directory>
# ftp::Pwd <s>
# ftp::Type <s> <?ascii|binary|tenex?>
# ftp::List <s> <?directory?>
# ftp::NList <s> <?directory?>


Mais concrètement, ça s'utilise comment .. x) ?
Merci beaucoup ^^
#2
Ca s'utilise un peu comme Http, par exemple:

tcl
set test [::ftp::open 127.0.0.1 anonymous me@pas.la]
::ftp::Cd $test /test/
....
::ftp::close $test

Je ne suis pas bien certain de moi, mais je revois ça dans quelques heures, avec un bel exemple pratique.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Merci beaucoup :)
Je suis entrain de faire des tests avec ce que tu m'as dis ^^
Mais, j'essaye de faire comme ca dans mon fichier de config

source scripts/logszelda.tcl <-- Fichier qui upload
source scripts/ftp.tcl <-- Le fichier qui contient les commandes

Mais il me dit toujours "invalid command name "::ftp::open" "
je dois absolument réunir les deux fichiers ?
#4
Il vaut mieux charger d'abord scripts/ftp.tcl (ne serait-ce que par logique) et je pense qu'il manque une ligne importante dans ton script:

tcl
package require ftp

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
Merci :) J'ai grandement avancé ^^ Mais je me trouve confronté avec un autre problème :/
Les logs de l'eggdrop sont sous la forme chan.log.16Jan2008 par exemple
J'essaye donc de faire ça


tcl
set temps strftime %d%b%Y [expr [unixtime] -10800]


Pour créer dans la variable temps, le "18Jan2008" avec le timestamp du jours d'avant vu que la MAJ se fait à 2h00 donc je retranche 3h par mesure de sécurité ^^ mais c'est trop beau ... et ça se marche pas xD

Edit: Bon ben avec de la chance, j'ai trouvé x)


tcl
set temps [strftime %d%b%Y [expr [unixtime]]]

#6
Tout d'abord... Pas bien les noms des fichiers de log... Il vaudrait mieux utiliser que des formats numériques car sinon tu as le problème de la langue du serveur et des majuscules/minuscules.

Et tu pourrais utiliser:

tcl
clock scan "yesterday"

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Forum Jump:


Users browsing this thread: 1 Guest(s)