MediaWiki sayfasına katkıdan sorumlu yazarın satır satır görüntülenmesi


12

Bir Wikipedia sayfasının veya bir MediaWiki sitesinin her satırının "bu satıra kimlerin katkıda bulunduğunu" göstermenin bir yolu var mı?

Bu sayfa başına gösterilir ve yıkım suçlama aracına benzer.


Bir sayfanın düzeltme geçmişinde belirli bir kelime veya kelime öbeğinin ilk tekrarlamasını mı bulmak istiyorsunuz, yoksa bu soru başka bir şeyle mi ilgili? Belirli bir sayfanın tam düzeltme geçmişini indirmenin bir yolu olmalı, ancak henüz bulamadım.
Anderson Green

Evet bu doğru.
rogerdpack

1
Burada açıklandığı gibi WikiBlame kullanarak bunu yapmak çok kolay: webapps.stackexchange.com/a/35914/20087
Anderson Green

Vay canına çok yakın. Görünen o ki, wiki sayfasında "verilen kelimeler" kelimesinin
açıcısını bulmak için ayrıntıya giriyor

Zaten metnin eklendiği revizyonu gösterir, böylece metin eklendiğinde tüm sayfanın nasıl göründüğünü görmek için bu bağlantıyı tıklamanız yeterlidir.
Anderson Green

Yanıtlar:


3

Sık sık böyle bir şeye ihtiyacım var, ama hazır bir çözüm yok gibi görünüyor.

Yaptığım şey, MediaWiki API'sını kullanarak revizyonları almamı ve bunları Bazaar sürüm kontrol sistemine aktarmamı sağlayan bir komut dosyası yazdı. bzr qblame article.wiki, sonra kimin neyi değiştirdiğine dair güzel bir fikir verir. Komut dosyası piyasaya sürülmeye hazır değil, ancak aşağıda veya Pastebin'de bulabilirsiniz . Komut dosyası, daha sonra Pazar'a dönüştürülebilen bir merkür repo ekler.

# 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)



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.