.gitignore | ||
april_feed | ||
april_wiki.py | ||
checkspell.py | ||
feed_read.py | ||
LICENSE | ||
README.md | ||
requirements.txt |
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...