উইকিপিডিয়া বা মিডিয়াউইকি সাইটের প্রতিটি পৃষ্ঠার প্রতিটি লাইনের "এই লাইনে কে অবদান রেখেছিল" তা দেখানোর কোনও উপায় আছে?
এটি প্রতি পৃষ্ঠায় প্রদর্শিত হবে এবং সাবভারশন দোষ সরঞ্জামের মতো হবে।
উইকিপিডিয়া বা মিডিয়াউইকি সাইটের প্রতিটি পৃষ্ঠার প্রতিটি লাইনের "এই লাইনে কে অবদান রেখেছিল" তা দেখানোর কোনও উপায় আছে?
এটি প্রতি পৃষ্ঠায় প্রদর্শিত হবে এবং সাবভারশন দোষ সরঞ্জামের মতো হবে।
উত্তর:
আমার প্রায়শই এর মতো কিছু দরকার হয় তবে মনে হয় এর কোনও প্রস্তুত সমাধান নেই।
আমি যা করেছি তা একটি স্ক্রিপ্ট লেখা যা মিডিয়াউইকি এপিআই ব্যবহার করে সংশোধনগুলি দখল করতে এবং সেগুলিকে বাজার সংস্করণ নিয়ন্ত্রণ সিস্টেমে আমদানি করতে সহায়তা করে। 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 ঠিক এই সমর্থন করে বলে মনে হচ্ছে। দুর্ভাগ্যক্রমে, এটি কেবল পার্ল মডিউল, কোনও ব্যবহারকারী-বান্ধব কমান্ড নয়, সুতরাং এটি যতটা চাই তার চেয়ে ব্যবহার করা কিছুটা কঠিন হতে চলেছে ...
পূর্ববর্তী উত্তরগুলি দ্বারা অনুপ্রাণিত হয়ে, আমি পূর্ববর্তী পেস্টবিন পাইথন স্ক্রিপ্টটিকে ব্যাকএন্ড হিসাবে পার্কের পরিবর্তে গিট ব্যবহার করতে রূপান্তর করেছি
আমার প্রকল্পটি গিটল্যাবে হোস্ট করা হয়েছে
আর একটি খুব ব্যবহারকারী নয় এমন বন্ধুত্বপূর্ণ সমাধান হ'ল গিটের জন্য এমডব্লু-টু-গিট এক্সটেনশন , যা সম্ভবত git blame
কোনও পৃষ্ঠায় চালানোর অনুমতি দেয় ।