54 lines
1.6 KiB
Python
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)
|
|
|