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

  1. # encoding: utf-8
  2. """
  3. Ce script s'appuie sur d'autres scripts pour vérifier les modifications du wiki
  4. de l'April.
  5. """
  6. import subprocess
  7. import sys
  8. # On reçoit continuellement des modifications du wiki
  9. for line in sys.stdin:
  10. # On recharge les auteurs connus
  11. try:
  12. with open("whitelist_authors") as authors_handle:
  13. authors = authors_handle.read().splitlines()
  14. except:
  15. open("whitelist_authors", "a")
  16. authors = []
  17. # On recharge les mots connus qu'on ne souhaite pas corriger
  18. try:
  19. with open("whitelist_words") as words_handle:
  20. words = words_handle.read().splitlines()
  21. except:
  22. open("whitelist_words", "a")
  23. words = []
  24. # On extrait les informations remontées
  25. _, author, _, url = line.split("\t")
  26. # On nettoie l'url
  27. url = "&".join(url.split("&")[:1])
  28. # On vérifie l'orthographe de la page
  29. output = subprocess.run(
  30. ["python", "checkspell.py", url],
  31. universal_newlines=True,
  32. stdout=subprocess.PIPE,
  33. check=True,
  34. )
  35. # Pour chaque mot remonté, on vérifie qu'il n'est pas dans la liste blanche
  36. smells = []
  37. for word in output.stdout.split("\n"):
  38. if word != "" and word not in words:
  39. smells.append(word)
  40. # Si l'auteur est inconnu, on pointe le lien vers la page modifiée / créée
  41. if author not in authors:
  42. print(f" {author} : {url}")
  43. # S'il y a quelque chose à corriger
  44. if len(smells) > 0:
  45. print(f" {url} : {smells}")
  46. # On suate une ligne pour faire plus propre
  47. if author not in authors or len(smells) > 0:
  48. print("-"*12)