Apakah Anda ingin menemukan kemunculan pertama kata atau frasa tertentu dalam riwayat revisi halaman, atau apakah ini pertanyaan tentang sesuatu yang lain? Pasti ada beberapa cara untuk mengunduh riwayat revisi lengkap untuk halaman tertentu, tetapi saya belum menemukannya.
Wow, itu cukup dekat. Sepertinya seseorang berlatih untuk menemukan pengalih dari "kata-kata yang diberikan" di halaman wiki, mungkin itu dapat dimodifikasi untuk menampilkan seluruh halaman :)
rogerdpack
Itu sudah menunjukkan revisi di mana teks ditambahkan, jadi Anda bisa mengklik tautan itu untuk melihat seperti apa seluruh halaman ketika teks ditambahkan.
Anderson Green
Jawaban:
3
Saya sering membutuhkan sesuatu seperti ini juga, tetapi sepertinya tidak ada solusi yang siap.
Apa yang saya lakukan adalah menulis skrip yang membantu saya mengambil revisi menggunakan MediaWiki API dan mengimpornya ke sistem kontrol versi Bazaar. bzr qblame article.wiki, lalu memberikan tampilan yang bagus tentang siapa yang mengubah apa. Script tidak benar-benar siap untuk dirilis, tetapi Anda dapat menemukannya di bawah atau di Pastebin . Script menambah repo lincah, yang kemudian dapat dikonversi ke Bazaar.
# I hereby place this script into the Public Domain!
import os, sys
import time
import mwclient
import mercurial.ui
from mercurial import localrepo
from mercurial import commands
article = 'Love'
#start_time = None
start_time = '2011-01-01T00:00:00Z'
# set up mercurial repo
ui = mercurial.ui.ui()
repo_dir = article
repo = localrepo.localrepository(ui, path=repo_dir, create = not os.path.isdir(repo_dir))
#if not os.path.isdir(article):
# os.mkdir(article)
#os.chdir(article)
print "rep in", repo.root
content_path = os.path.join(repo.root, article + '.wiki')
site = mwclient.Site('en.wikipedia.org')
page = site.Pages[article]
for rev in page.revisions(start=start_time, limit=50,dir='newer', prop='ids|timestamp|flags|comment|user|content'):
content = rev['*']
timestamp = time.asctime(rev['timestamp'])
comment = rev['comment'].encode('utf8')
if len(comment) == 0: comment = "blank"
print "writing revision from", timestamp
f = open(content_path, 'wb')
f.write(content.encode('utf8'))
f.close()
commands.addremove(ui, repo)
commands.commit(ui, repo, message=comment, user=rev['user'].encode('utf8'), date=timestamp)
Jawaban:
Saya sering membutuhkan sesuatu seperti ini juga, tetapi sepertinya tidak ada solusi yang siap.
Apa yang saya lakukan adalah menulis skrip yang membantu saya mengambil revisi menggunakan MediaWiki API dan mengimpornya ke sistem kontrol versi Bazaar.
bzr qblame article.wiki
, lalu memberikan tampilan yang bagus tentang siapa yang mengubah apa. Script tidak benar-benar siap untuk dirilis, tetapi Anda dapat menemukannya di bawah atau di Pastebin . Script menambah repo lincah, yang kemudian dapat dikonversi ke Bazaar.sumber
http://search.cpan.org/~daxim/Mediawiki-Blame-0.0.3/lib/Mediawiki/Blame.pm tampaknya mendukung hal ini. Sayangnya, ini hanya modul perl, bukan perintah yang ramah pengguna, jadi ini akan menjadi sedikit lebih sulit untuk digunakan daripada yang mungkin ingin ...
sumber
Terinspirasi oleh jawaban sebelumnya, saya telah mengadaptasi skrip Python pastebin sebelumnya untuk menggunakan git alih-alih lincah sebagai backend
Proyek saya di- host di GitLab
sumber
Solusi lain yang tidak terlalu ramah pengguna adalah ekstensi mw-to-git untuk git, yang mungkin memungkinkan Anda untuk berjalan
git blame
di halaman.sumber