Une façon de le faire est d'exporter l'historique de l' article, et traiter ensuite les révisions à l' aide d' un outil comme locale git blame
. Cela pourrait être fait en utilisant un script.
Pour exporter l'historique de l' article, utilisezSpecial:Export
, en particulier: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Pour générer le blâme, ajoutez d'abord les révisions à un référentiel git temporaire (affiché en Python 3):
import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
Ensuite, téléchargez le XML d'historique exporté, analysez-le avec quelque chose comme lxml.etree
, et parcourez les révisions (xpath //revision
). Pour chaque révision, écrivez le texte dans un fichier (par exemple article.wiki
), lisez l'auteur et exécutez
subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
Une fois toutes les révisions ajoutées au référentiel, exécutez git blame article.wiki
pour voir l'auteur de chaque ligne.
Remarque: Special:Export
peut limiter le nombre de révisions exportées, donc dans les pages avec un long historique, vous devrez peut-être récupérer le XML plusieurs fois.