You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
# 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) |
|
|
|
|