Ce n'est pas la première fois que l'on me demande comment mettre le nombre de connectés d'un canal dans une page html.
Voici un petit code fonctionnel (mais pas du tout optimum).
Il suffit d'avoir un template de la page de sortie dans lequel la chaîne NB_USERS sera remplacée par le nombre d'utilisateurs.
tcl
set schan "#canal"set template "/home/user/template.html"set sfile "/home/user/count.html"
bind join - "$schan *" statcount
bind part - "$schan *" statpart
proc statpart { nick uhost handle chan {msg ""}}{
statcount $nick$uhost$handle$chanreturn0;}proc statcount { nick uhost handle chan }{set fi [open$::template r]set lines [read -nonewline $fi]close$fiset tot [llength[chanlist $chan]]regsub -all -- NB_USERS $lines$tot lines
set fo [open$::sfile w]puts$fo$linesclose$foreturn0}
11/02/2013, 21:00 (Modification du message : 11/02/2013, 21:40 par kipof.)
Salut CrazyCat,
Après avoir vue ton script bien sympathique qui est dans la catégorie inutile mais surtout indispensable :p j'ai fait une petite mise en place chez moi et semble bien marcher :)
Mais faut dire qu'il y'a toujours un chieur :p ( et là c'est moi :D ) Alors petit problème avec le statpart qui marche pas trop chez moi :/ mais le join nickel :) une petite idée sur le problème ?
tcl
set schan "#jeuxfr.quizz"set template "/home/jeuxfr/eggdrop/oxys/scripts/template.php"set sfile "/home/jeuxfr/www/index.php"
bind join - "$schan *" statcount
bind part - "$schan *" statpart
proc statpart { nick uhost handle chan {msg ""}}{
statcount $nick$uhost$handle$chanreturn0;}proc statcount { nick uhost handle chan }{set fi [open$::template r]set lines [read -nonewline $fi]close$fiset tot [llength[chanlist $chan]]regsub -all -- NB_USERS $lines$tot lines
set fo [open$::sfile w]puts$fo$linesclose$foreturn0}
Comme tu peux voir j'ai rien touché :)
Et autre petite question je voudrais ajouter deux autres chans sur le script du genre :
Code :
set schan(1) "#jeuxfr.quizz"
set schan(2) "#jeuxfr.motus"
set schan(3) "#jeuxfr.village"
Mais je vois pas trop comment modifier le reste du code :p donc un petit coup de pousse si possible m'aiderai bien :)
Merci d'avance :) ( j'ai fini )
EDIT: le part fonctionne mais le temps est plus long que le join a afficher :)
Ok pour le part, tu m'as fait peur :)
Pour faire fonctionner avec plusieurs canaux, deux options:
- générer les binds pour chaque canal (simple à mettre en oeuvre mais lourd s'il y a beaucoup de canaux),
- avoir des procédures globales (pour tous les canaux) qui vérifient tout d'abord si le canal est à surveiller (très consommateur de cpu).
Par contre, il faudrait savoir si tu veux des fichiers différents pour chaque canal ou pas
(12/02/2013, 20:12)kipof a écrit : Je regarde ton dernier script ce soir mais si j'ai bien compris il calcul les trois non ? ( pas test encore :p ) mais merci :)
Le script donné crée un fichier par canal, en renommant le fichier de sortie en fonction de ce qu'il y a dans schan(canal).
Ah bien ( d'ou le pas test :p ) le truc est que je voulais test d'afficher les trois sur la même page ( index ) ou sont annoncé les trois chans de jeux disponible sur le réseau. J'avais voulu faire plus simple du genre trois bot qui gère chacun le nombre de connecté sur son chan mais le problème ( Ouai c'est jamais facile ) est vue qu'ils doivent gérer l'index les deux autres chans sont jamais renseigné ( ce qui est normale si on réfléchi :° )
Je me serais jamais cassé la tête si j'avais pas lus ce topic :p
Si tu veux mettre les stats des 3 canaux dans un seul fichier, il faudra boucler sur les 3 canaux dans la procédure statcount afin de remplir 3 variables et de les substituer dans ton template. Enfin, c'est la méthode bourrin, parce que tu peux aussi juste mettre à jour une variable globale et chaque fois recompter pour le canal sélectionné, mais cela implique une initialisation lorsque ton eggdrop entre sur les canaux, ou lors d'un retour de netsplit.
salut,
Petite apparté ( chieur² lol ) il s'avere que ce TCL ne fonctionne que si l'on possede un shell ( serveur), il fonctionne trés bien, neamoins, pas ou peu d'infos pour ce qui n'ont pas cette chance, et utilisent un truc type pages perso ( orange, free ect .. ) la methode n'est pas la meme, serait il possible que quelqu'un s'y colle ( pas moi, hors de mes competences, dsl)
Mais j'avoue que j'ai beaucoup cherché à mes debuts sur le comment faire, et malheureseusement je n'ai jamais reussi à l'époque.
Il n'y a rien de plus simple à faire dans un tel cas.
Il suffit d'avoir une page de mise à jour (en php par exemple) à laquelle on passe les différentes valeurs en GET, et que la page génère la nouvelle page de stats.
Donc, il faut que le script utilise le package http, pour aller sur http://ton.hebergeur/tapage.php?canal=machin&users=X