Hiển thị từng dòng của tác giả chịu trách nhiệm đóng góp trên trang MediaWiki


11

Có cách nào để hiển thị "ai đã đóng góp cho dòng này" của từng dòng trên một trang Wikipedia hoặc của một trang MediaWiki không?

Nó sẽ hiển thị trên mỗi trang và sẽ tương tự như công cụ đổ lỗi lật đổ.


Bạn có muốn tìm sự xuất hiện đầu tiên của một từ hoặc cụm từ cụ thể trong lịch sử sửa đổi của trang không, hoặc câu hỏi này là về điều gì khác? Phải có một số cách để tải xuống lịch sử sửa đổi đầy đủ cho một trang cụ thể, nhưng tôi chưa tìm thấy nó.
Anderson Green

Vâng đúng vậy.
rogerdpack

1
Thật dễ dàng để làm điều này bằng cách sử dụng WikiBlame, như được giải thích ở đây: webapps.stackexchange.com/a/35914/20087
Anderson Green

Wow khá gần. Có vẻ như một người khoan vào để tìm ra người viết "từ đã cho" trong trang wiki, có lẽ nó có thể được sửa đổi để hiển thị toàn bộ trang :)
rogerdpack

Nó đã hiển thị bản sửa đổi nơi văn bản đã được thêm vào, vì vậy bạn chỉ cần nhấp vào liên kết đó để xem toàn bộ trang trông như thế nào khi văn bản được thêm vào.
Anderson Green

Câu trả lời:


3

Tôi cũng thường cần một cái gì đó như thế này, nhưng có vẻ như không có giải pháp sẵn sàng.

Những gì tôi đã làm là viết một tập lệnh giúp tôi lấy các bản sửa đổi bằng API MediaWiki và nhập chúng vào hệ thống kiểm soát phiên bản Bazaar. bzr qblame article.wiki, sau đó đưa ra một cái nhìn tốt đẹp về những người đã thay đổi những gì. Kịch bản chưa thực sự sẵn sàng để phát hành, nhưng bạn có thể tìm thấy nó bên dưới hoặc trên Pastebin . Kịch bản thêm vào một repo đồng bóng, sau đó có thể được chuyển đổi thành 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 xuất hiện để hỗ trợ chính xác điều này. Thật không may, nó chỉ là một mô-đun perl, không phải là một lệnh thân thiện với người dùng, vì vậy nó sẽ khó sử dụng hơn một chút so với người ta có thể muốn


Nhưng người ta có thể tạo một lối vào web cho mô-đun đó, tương tự như wikipedia.ramselehof.de/wikiblame.php
Nemo


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.