Go to file
Mindiell eaecba3c8e Mise à jour du README 2021-01-27 08:34:47 +01:00
.gitignore Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00
README.md Mise à jour du README 2021-01-27 08:34:47 +01:00
april_feed Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00
april_wiki.py Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00
checkspell.py Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00
feed_read.py Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00
requirements.txt Mise en place de manière plus propre 2021-01-27 08:32:53 +01:00

README.md

Surveillance d'un wiki type mediawiki pour l'April

D'un côté, on récupère les modifications faites sur la dernière heure écoulée

Soit, via un cron :

0 * * * * /path/to/venv/python feed_read.py -d 60 "https://wiki.april.org/api.php?action=feedrecentchanges&feedformat=atom" >> april_feed

Soit via une commande en ligne :

while true; do python feed_read.py -d 60 "https://wiki.april.org/api.php?action=feedrecentchanges&feedformat=atom" >> april_feed; sleep 60m; done

Cette commande récupère les dernières modifications faites et les stocke dans un fichier "april_feed". C'est ce même fichier que l'on va exploiter pour vérifier et prévenir, si besoin, qu'il y a des choses à faire.

Via la commande :

tail -f april_feed |python april_wiki.py

On absorbe les dernières modifications et on vérifie :

* l'auteur de la modification
* la page modifiée finale

Si l'auteur est inconnu, on signale son nom et la page modifiée. Qu'il soit connu ou non, si la page contient des fautes d'orthographe, on signale la page et tous les mots trouvés.

Deux fichiers spécifiques sont utilisés (créés automatiquement et vides par défaut) :

* whitelist_authors
* whitelist_words

Le premier contient le nom des auteurs connus dont on n'a pas besoin de se méfier. Ce sont des contributeurs connus du wiki et leur nom est donc stocké dans ce fichier. Ce dernier étant rechargé à chaque nouvelle modification à traiter, il peut être amendé à tout moment.

Le second fichier contient les "mots" que le dictionnaire ne connait pas et qui ne sont pas considérés comme "mauvais". Il s'agit de pseudonymes, d'acronymes, etc...

Installation

Le mieux étant toujours de créer un environnement python dédié, les commandes pour l'utilisaiton :

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

À partir de là, vous pouvez donc utiliser les scripts soit en ayant activé l'environnemet (activate), soit en utilisant l'exécutable python situé dans le répertoire de l'environnement.

Feuille de route

Idéalement, les alertes seraient à faire sur IRC par exemple, plutôt que dans un simple terminal. Ca permet de partager les alertes à un niveau plus conséquent.

Le souci restant étant l'ajout d'auteurs et de mots connus aux listes blanches...