Informations sur les codes sources du programme de statistiques
Le programme de statistiques regroupe désormais deux programmes bien distincts :
- jvstats est un programme - pour le moment uniquement disponible sous Linux - conçu pour télécharger et mettre à jour les différents sujets et messages constituant un forum sur Jeuxvideo.com. Il va d´une part stocker tous les messages dans des fichiers ( une ligne par message et un fichier par topic) sous la forme d´un fichier log, dont le format se rapproche de celui de " bobot".
- sfer est un programme ( dont la partie d´analyse syntaxique et sémantique est développée par Fly^SF en Lex et Yacc) permettant de générer des statistiques à partir de fichiers logs bien précis ( par exemple ceux générés par jvstats ^^). Il a été conçu pour remplacer pisg, dont l´inconvénient majeur est de relire entièrement chaque fichier log pour effectuer des mises à jour, ce qui pouvait prendre des jours entiers pour des forums comme Bla-Bla de Jeuxvideo.com.
Les codes sources de ces programmes sont sous license GPL. Vous pouvez donc modifier/utiliser/copier ces programmes à partir du moment où les conditions de cette license sont respectées.
Ce programme a été développé sous ( et pour) Linux et quand le temps nous le permettra, nous inclurons ici même une documentation pour expliquer son fonctionnement.
- jvstats : Programme de téléchargement / mise à jour des données de chaque forum. Nécessite makestats.c et makestats.h ( la partie gestion des données de sfer) pour se compiler correctement.
- sfer : Programme de traitement des fichiers logs et de génération de rapports. Il est constitué d´une partie en Lex ( sfer.lex), d´une partie en Yacc ( sfer.y) et d´une partie en C ( makestats.c et makestats.h).
La compilation peut par exemple s´effectuer avec le script suivant :
- Partie Yacc ( génère un fichier C correspondant)
yacc -d sfer.y
- Partie Lex ( génère un fichier C correspondant)
lex sfer.lex
- Compilation de sfer en mode normal
gcc -c -o y.tab.o y.tab.c -pedantic -ansi
gcc -c -o lex.yy.o lex.yy.c -pedantic -ansi
gcc -o sfer -pedantic -ansi -Wall -O3 makestats.c y.tab.o lex.yy.o -lfl
- Compilation de sfer en mode debuggage
gcc -c -o y.tab.o y.tab.c -D DEBUG -pedantic -ansi
gcc -c -o lex.yy.o lex.yy.c -D DEBUG -pedantic -ansi
gcc -o sfer_debug -D DEBUG -pedantic -ansi -Wall -O3 makestats.c y.tab.o lex.yy.o -lfl
- Compilation de jvstats
gcc -o jvstats41 -pedantic -ansi -Wall -O3 makestats.c jvstats.c
- Suppression des fichiers temporaires
rm -f *.o
rm -f *~
rm -f *.yy.c
rm -f *.tab.c
rm -f *.tab.h
Contraintes :
Pour assurer le bon fonctionnement de ce programme, un certain nombre de critères doivent être respectés :
- Les exécutables ( jvstats41 et sfer) doivent se trouver dans le même répertoire.
- Les sous-répertoires suivants doivent exister : . /temp, . /data, . /data/makestats, . /data/makestats/topics, . /stats
- jvstats41.cfg, le fichier de config de jvstats, doit se trouver dans le même répertoire que jvstats. Il contient la liste des forums à scanner ( numeros et noms). Un exemple est disponible ici.
- sfer.cfg, le fichier de config de sfer, doit se trouver dans le même répertoire que sfer ( et de jvstats). Il contient la liste des paramètres à prendre en compte pour la génération des stats ( alias de pseudos, noms des forums, banissements, urls, etc...). Un exemple est disponible ici.
- gcc, yacc, lex et la librairie flex doivent être installés pour effectuer la compilation du programme.
- jvstats fait appel à wget et gzip pour respectivement télécharger le contenu des forums et créer une version compressée ( en html.gz) des rapports générés par sfer. Ces deux programmes sont généralement inclus dans les distributions Linux les plus connues.
Pour résumer, voici la structure des programmes :
. /
. /jvstats.c
. /makestats.c
. /makestats.h
. /sfer.lex
. /sfer.y
. /jvstats41.cfg
. /sfer.cfg
. /data
. /data/makestats
. /data/makestats/topics
. /temp
. /stats
Contacts / Informations :
Fly ( partie Lex/Yacc) et moi ( partie C) sommes à votre disposition pour toutes questions relatives à ces sources, dans la limite de notre temps libre.
Nous prévenons à l´avance que le code actuel nécessite encore un certain nombre de rectifications pour qu´il soit suffisament stable ( particulièrement la fonction html_gen() incluse dans makestats.c), par conséquent nous déclinons toute responsabilité quant à la stabilité actuelle de ces programmes.
Voilà comment faire les statistiques en gros..
Maintenant, c´est à toi. :D