แสดงทีละบรรทัดของผู้เขียนที่รับผิดชอบในการสนับสนุนในหน้า MediaWiki


11

มีวิธีที่จะแสดง "ผู้สนับสนุนบรรทัดนี้" ของแต่ละบรรทัดของหน้าของ Wikipedia หรือไซต์ MediaWiki หรือไม่?

มันจะแสดงต่อหน้าและจะคล้ายกับเครื่องมือตำหนิการโค่นล้ม


คุณต้องการค้นหาคำหรือวลีแรกที่ปรากฏในประวัติการแก้ไขของหน้าเว็บหรือไม่หรือคำถามนี้เกี่ยวกับสิ่งอื่น ต้องมีวิธีการดาวน์โหลดประวัติการแก้ไขแบบเต็มสำหรับหน้าใดหน้าหนึ่งโดยเฉพาะ แต่ฉันยังไม่พบ
Anderson Green

ใช่มันถูกต้องแล้ว
rogerdpack

1
การทำเช่นนี้ทำได้ง่ายมากโดยใช้ WikiBlame ดังที่อธิบายไว้ที่นี่: webapps.stackexchange.com/a/35914/20087
Anderson Green

ว้าวที่ใกล้สวย ดูเหมือนว่าหนึ่งในการฝึกซ้อมในการหา committer ของ "คำให้" ในหน้าวิกิพีเดีย, บางทีมันอาจจะมีการปรับเปลี่ยนการแสดงทั้งหน้า :)
rogerdpack

มันแสดงให้เห็นถึงการแก้ไขที่เพิ่มข้อความดังนั้นคุณสามารถคลิกที่ลิงค์นั้นเพื่อดูว่าหน้าทั้งหน้ามีลักษณะอย่างไรเมื่อมีการเพิ่มข้อความ
Anderson Green

คำตอบ:


3

ฉันมักจะต้องการสิ่งนี้เช่นกัน แต่ดูเหมือนว่าไม่มีวิธีแก้ปัญหาพร้อม

สิ่งที่ฉันทำคือเขียนสคริปต์ที่ช่วยให้ฉันหยิบการแก้ไขโดยใช้ MediaWiki API และนำเข้าสู่ระบบควบคุมเวอร์ชัน Bazaar bzr qblame article.wikiจากนั้นให้มุมมองที่ดีว่าใครเปลี่ยนอะไร สคริปต์ไม่ได้จริงๆพร้อมสำหรับการปล่อย แต่คุณสามารถค้นหาได้ด้านล่างหรือบนPastebin สคริปต์เพิ่มไปยัง repo 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)

3

http://search.cpan.org/~daxim/Mediawiki-Blame-0.0.3/lib/Mediawiki/Blame.pmดูเหมือนจะสนับสนุนสิ่งนี้อย่างแน่นอน น่าเสียดายที่มันเป็นเพียงโมดูล Perl ไม่ใช่คำสั่งที่เป็นมิตรกับผู้ใช้ดังนั้นจึงเป็นเรื่องยากที่จะใช้มากกว่าที่อาจต้องการ ...


แต่สามารถสร้างส่วนหน้าเว็บสำหรับโมดูลนั้นคล้ายกับwikipedia.ramselehof.de/wikiblame.php
Nemo


0

โซลูชันที่ไม่เป็นมิตรกับผู้ใช้อีกวิธีหนึ่งคือส่วนขยาย mw-to-gitสำหรับ git ซึ่งน่าจะอนุญาตให้คุณเรียกใช้git blameบนหน้าเว็บ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.