wiki_monitor/april_wiki.py

54 lines
1.6 KiB
Python

# encoding: utf-8
"""
Ce script s'appuie sur d'autres scripts pour vérifier les modifications du wiki
de l'April.
"""
import subprocess
import sys
# On reçoit continuellement des modifications du wiki
for line in sys.stdin:
# On recharge les auteurs connus
try:
with open("whitelist_authors") as authors_handle:
authors = authors_handle.read().splitlines()
except:
open("whitelist_authors", "a")
authors = []
# On recharge les mots connus qu'on ne souhaite pas corriger
try:
with open("whitelist_words") as words_handle:
words = words_handle.read().splitlines()
except:
open("whitelist_words", "a")
words = []
# On extrait les informations remontées
_, author, _, url = line.split("\t")
# On nettoie l'url
url = "&".join(url.split("&")[:1])
# On vérifie l'orthographe de la page
output = subprocess.run(
["python", "checkspell.py", url],
universal_newlines=True,
stdout=subprocess.PIPE,
check=True,
)
# Pour chaque mot remonté, on vérifie qu'il n'est pas dans la liste blanche
smells = []
for word in output.stdout.split("\n"):
if word != "" and word not in words:
smells.append(word)
# Si l'auteur est inconnu, on pointe le lien vers la page modifiée / créée
if author not in authors:
print(f" {author} : {url}")
# S'il y a quelque chose à corriger
if len(smells) > 0:
print(f" {url} : {smells}")
# On suate une ligne pour faire plus propre
if author not in authors or len(smells) > 0:
print("-"*12)