MediaWikiページでの貢献に責任のある著者の行ごとの表示


11

ウィキペディアのページまたはMediaWikiサイトの各行の「この行に貢献した人」を示す方法はありますか?

これはページごとに表示され、Subversion Blameツールに似ています。


ページの変更履歴で特定の単語またはフレーズが最初に出現する場所を検索しますか、それとも他の質問ですか?特定のページの完全な変更履歴をダウンロードする方法がいくつかあるはずですが、まだ見つけていません。
アンダーソングリーン

そうだね。
rogerdpack

1
ここで説明するように、WikiBlameを使用してこれを行うのは非常に簡単です。webapps.stackexchange.com
Anderson Green

うわ、かなり近いです。wikiページで「与えられた単語」のコミッターを見つけるために
ドリルインしているように見え

テキストが追加されたリビジョンがすでに表示されているので、そのリンクをクリックするだけで、テキストが追加されたときのページ全体の外観を確認できます。
アンダーソン・グリーン

回答:


3

私もしばしばこのようなものが必要ですが、まだ解決策がないようです。

私がやったことは、MediaWiki APIを使用してリビジョンを取得し、Bazaarバージョン管理システムにインポートするのに役立つスクリプトを記述したものです。bzr qblame article.wiki、それから誰が何を変更したかについての素晴らしい見解を与えます。スクリプトは実際にはリリースの準備ができていませんが、以下またはPastebinで見つけることができます。スクリプトは、Mercurialリポジトリに追加されます。これは、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)



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.