J'ai démarré ce projet il y a peu de temps, en réfléchissant à la refonte du site de zeolia.net.
En effet, j'ai constaté que les pages de statistiques des canaux n'étaient pas compatibles avec les appareils mobiles, pisg commençant à dater légèrement.
Mon idée est donc de stocker directement en base de données l'activité d'un canal, avec parfois certains pré-calculs (comme le nombre de mots d'une ligne) afin de pouvoir les exploiter plus simplement qu'en ayant à parser les fichiers logs.
La source (en cours d'évolution) se trouve sur gitlab.
Pré-requis
Outre un eggdrop, il faut:
Fonctionnement
Le script fonctionne de manière très basique en enregistrant les pub/action/join/part/quit/nick/topic/kick ainsi que le nombre de mots (après avoir supprimé tous les codes et les caractères non-alphanumériques ou non-espaces).
Avec les eggdrops récents et si le réseau le permet (et que l'utilisateur est enregistré auprès des services), c'est le nom du compte de l'utilisateur sur les services plutôt que son nick qui est enregistré, ce qui permettra à terme de limiter la consommation du nick-tracking (qui sera dans le script plutôt qu'en post-analyse).
Et pour des raisons de RGPD, seules les infos essentielles aux stats sont enregistrées, pas de host, d'IP ou quoi que ce soit pouvant ressembler à une donnée personnelle.
Notas
Ce script est très simple, l'intérêt du projet sera surtout sur le front-end
En effet, j'ai constaté que les pages de statistiques des canaux n'étaient pas compatibles avec les appareils mobiles, pisg commençant à dater légèrement.
Mon idée est donc de stocker directement en base de données l'activité d'un canal, avec parfois certains pré-calculs (comme le nombre de mots d'une ligne) afin de pouvoir les exploiter plus simplement qu'en ayant à parser les fichiers logs.
La source (en cours d'évolution) se trouve sur gitlab.
Pré-requis
Outre un eggdrop, il faut:
- le package mysqltcl (et donc un serveur MySQL quelque part). Au départ je pensais faire un système plus portable avec sqlite3 mais si plusieurs eggdrops doivent alimenter le système, cela pose des problèmes de lock
- optionnellement le package hook pour que le script puisse être appelé par d'autres scripts.
Fonctionnement
Le script fonctionne de manière très basique en enregistrant les pub/action/join/part/quit/nick/topic/kick ainsi que le nombre de mots (après avoir supprimé tous les codes et les caractères non-alphanumériques ou non-espaces).
Avec les eggdrops récents et si le réseau le permet (et que l'utilisateur est enregistré auprès des services), c'est le nom du compte de l'utilisateur sur les services plutôt que son nick qui est enregistré, ce qui permettra à terme de limiter la consommation du nick-tracking (qui sera dans le script plutôt qu'en post-analyse).
Et pour des raisons de RGPD, seules les infos essentielles aux stats sont enregistrées, pas de host, d'IP ou quoi que ce soit pouvant ressembler à une donnée personnelle.
Notas
- Le script est dans le projet "ChanRelay" car bien qu'il soit totalement autonome, il me sert aussi de plugin pour ChanRelay 5 (log des canaux distants dans le meta-canal), c'est d'ailleurs la raison d'être de l'utilisation des hooks.
- Le modèle de la base de données sera fourni assez rapidement, avec les vues associées
Ce script est très simple, l'intérêt du projet sera surtout sur le front-end