মিডিয়াউইকি পৃষ্ঠায় অবদানের জন্য দায়ী লেখকের লাইন বাই লাইন


11

উইকিপিডিয়া বা মিডিয়াউইকি সাইটের প্রতিটি পৃষ্ঠার প্রতিটি লাইনের "এই লাইনে কে অবদান রেখেছিল" তা দেখানোর কোনও উপায় আছে?

এটি প্রতি পৃষ্ঠায় প্রদর্শিত হবে এবং সাবভারশন দোষ সরঞ্জামের মতো হবে।


আপনি কি কোনও পৃষ্ঠার পুনর্বিবেচনার ইতিহাসে কোনও নির্দিষ্ট শব্দ বা বাক্যাংশের প্রথম উপস্থিতিটি সন্ধান করতে চান, বা এই প্রশ্নটি অন্য কোনও বিষয়? একটি নির্দিষ্ট পৃষ্ঠার জন্য সম্পূর্ণ পুনর্বিবেচনার ইতিহাসটি ডাউনলোড করার কিছু উপায় থাকতে হবে তবে আমি এটি এখনও পাইনি।
অ্যান্ডারসন সবুজ

হ্যাঁ, এটি প্রায় সঠিক।
রজারডপ্যাক

1
উইকিলেম ব্যবহার করে এটি করা খুব সহজ, এখানে এখানে ব্যাখ্যা করা হয়েছে: webapps.stackexchange.com/a/35914/20087
অ্যান্ডারসন গ্রিন

বাহ যে খুব কাছাকাছি। দেখে মনে হচ্ছে যে উইকি পৃষ্ঠায় "প্রদত্ত শব্দগুলি" র প্রতিজ্ঞার সন্ধান করার জন্য এটি ড্রিল করেছে, সম্ভবত এটি পুরো পৃষ্ঠাটি দেখানোর জন্য পরিবর্তন করা যেতে পারে :)
রোজারডপ্যাক

এটি ইতিমধ্যে সংশোধনটি দেখায় যেখানে পাঠ্যটি যুক্ত করা হয়েছিল, তাই পাঠ্যটি যুক্ত হওয়ার সময় পুরো পৃষ্ঠাটি কেমন দেখাচ্ছে তা দেখতে আপনি কেবল সেই লিঙ্কটিতে ক্লিক করতে পারেন।
অ্যান্ডারসন সবুজ

উত্তর:


3

আমার প্রায়শই এর মতো কিছু দরকার হয় তবে মনে হয় এর কোনও প্রস্তুত সমাধান নেই।

আমি যা করেছি তা একটি স্ক্রিপ্ট লেখা যা মিডিয়াউইকি এপিআই ব্যবহার করে সংশোধনগুলি দখল করতে এবং সেগুলিকে বাজার সংস্করণ নিয়ন্ত্রণ সিস্টেমে আমদানি করতে সহায়তা করে। 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)

3

http://search.cpan.org/~daxim/Mediawiki-Blame-0.0.3/lib/Mediawiki/Blame.pm ঠিক এই সমর্থন করে বলে মনে হচ্ছে। দুর্ভাগ্যক্রমে, এটি কেবল পার্ল মডিউল, কোনও ব্যবহারকারী-বান্ধব কমান্ড নয়, সুতরাং এটি যতটা চাই তার চেয়ে ব্যবহার করা কিছুটা কঠিন হতে চলেছে ...



1

পূর্ববর্তী উত্তরগুলি দ্বারা অনুপ্রাণিত হয়ে, আমি পূর্ববর্তী পেস্টবিন পাইথন স্ক্রিপ্টটিকে ব্যাকএন্ড হিসাবে পার্কের পরিবর্তে গিট ব্যবহার করতে রূপান্তর করেছি

আমার প্রকল্পটি গিটল্যাবে হোস্ট করা হয়েছে


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.