Un modo per farlo è esportare la cronologia degli articoli e quindi elaborare le revisioni utilizzando uno strumento locale come git blame
. Questo potrebbe essere fatto usando uno script.
Per esportare la storia di un articolo, utilizzareSpecial:Export
, in particolare: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Per generare la colpa, aggiungi prima le revisioni a un repository git temporaneo (mostrato in Python 3):
import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
Quindi scaricare l'XML storico esportato, analizzarlo con qualcosa di simile lxml.etree
e passare in rassegna le revisioni (xpath //revision
). Per ogni revisione, scrivi il testo in un file (ad esempio article.wiki
), leggi l'autore ed esegui
subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
Dopo aver aggiunto tutte le revisioni al repository, eseguire git blame article.wiki
per vedere l'autore di ogni riga.
Nota: Special:Export
potrebbe limitare il numero di revisioni esportate, quindi nelle pagine con una cronologia lunga potrebbe essere necessario recuperare l'XML più volte.