미디어 위키 페이지에 기여한 책을 한 줄씩 표시


11

Wikipedia 페이지 또는 MediaWiki 사이트의 각 줄에 "이 줄에 기여한 사람"을 보여줄 방법이 있습니까?

페이지 당 표시되며 Subversion Blame 도구와 유사합니다.


페이지의 개정 이력에서 특정 단어 나 문구가 처음으로 나오기를 원하십니까? 아니면 다른 질문이 있습니까? 특정 페이지에 대한 전체 개정 내역을 다운로드 할 수있는 방법이 있어야하지만 아직 찾지 못했습니다.
Anderson Green

네 맞습니다.
rogerdpack

1
: 그것은는 여기에서 설명, WikiBlame를 사용하여이 작업을 수행하는 것은 매우 쉽다 webapps.stackexchange.com/a/35914/20087
앤더슨 녹색

와아, 꽤 가깝습니다. 위키 페이지에서 "주어진 단어"의 커미터를 찾기 위해 한 훈련을 한 것 같습니다. 전체 페이지를 표시하도록 수정되었을 수도 있습니다. :)
rogerdpack

텍스트가 추가 된 개정판이 이미 표시되어 있으므로 해당 링크를 클릭하면 텍스트가 추가 될 때 전체 페이지가 어떻게 보이는지 확인할 수 있습니다.
앤더슨 그린

답변:


3

나는 종종 이와 같은 것을 필요로하지만 준비된 해결책이없는 것처럼 보입니다.

내가 한 것은 MediaWiki API를 사용하여 수정본을 가져 와서 Bazaar 버전 제어 시스템으로 가져 오는 데 도움이되는 스크립트를 작성하는 것입니다. bzr qblame article.wiki그러면 누가 무엇을 변경했는지 잘 볼 수 있습니다. 이 스크립트는 실제로 출시 준비가되지 않았지만 아래 또는 Pastebin 에서 찾을 수 있습니다 . 이 스크립트는 수은 저장소에 추가 한 다음 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.