क्या विकिपीडिया या मीडियाविकि साइट के प्रत्येक पृष्ठ की प्रत्येक पंक्ति में "जिसने इस पंक्ति में योगदान दिया है" दिखाने का एक तरीका है?
यह प्रति पृष्ठ दिखाएगा और तोड़फोड़ दोष उपकरण के समान होगा।
क्या विकिपीडिया या मीडियाविकि साइट के प्रत्येक पृष्ठ की प्रत्येक पंक्ति में "जिसने इस पंक्ति में योगदान दिया है" दिखाने का एक तरीका है?
यह प्रति पृष्ठ दिखाएगा और तोड़फोड़ दोष उपकरण के समान होगा।
जवाबों:
मुझे अक्सर कुछ इस तरह की आवश्यकता होती है, लेकिन ऐसा लगता है कि कोई तैयार समाधान नहीं है।
मैंने जो किया है वह एक पटकथा लिखी गई है, जो मुझे मीडियाविकि एपीआई का उपयोग करके संशोधन करने और बाज़ार संस्करण नियंत्रण प्रणाली को आयात करने में मदद करती है। bzr qblame article.wiki
, फिर एक अच्छा दृश्य देता है कि किसने क्या बदला। स्क्रिप्ट वास्तव में रिलीज़ के लिए तैयार नहीं है, लेकिन आप इसे नीचे या पास्टबीन पर पा सकते हैं । स्क्रिप्ट एक मर्चेंटियल रेपो में जुड़ जाती है, जिसे बाद में बाज़ार में बदला जा सकता है।
# 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)
http://search.cpan.org/~daxim/Mediawiki-Blame-0.0.3/lib/Mediawiki/Blame.pm बिल्कुल इसका समर्थन करता प्रतीत होता है। दुर्भाग्य से, यह केवल एक पर्ल मॉड्यूल है, न कि उपयोगकर्ता के अनुकूल कमांड, इसलिए इसे उपयोग करने में थोड़ा मुश्किल होना चाहिए ...
पिछले उत्तरों से प्रेरित होकर, मैंने पिछले पास्टबिन पायथन लिपि को बैकएंड के रूप में मर्क्यूरियल के बजाय गिट का उपयोग करने के लिए अनुकूलित किया है
मेरी परियोजना GitLab पर होस्ट की गई है
एक और बहुत उपयोगकर्ता के अनुकूल समाधान git के लिए mw-to-git एक्सटेंशन होगा, जो संभवतः आपको git blame
एक पृष्ठ पर चलने की अनुमति देगा ।