Zeile für Zeile Anzeige des für den Beitrag verantwortlichen Autors auf der MediaWiki-Seite


11

Gibt es eine Möglichkeit, in jeder Zeile einer Wikipedia-Seite oder einer MediaWiki-Site anzuzeigen, wer zu dieser Zeile beigetragen hat?

Es würde pro Seite angezeigt und wäre dem Subversion-Schuld-Tool ähnlich.


Möchten Sie das erste Vorkommen eines bestimmten Wortes oder einer bestimmten Phrase im Revisionsverlauf einer Seite finden, oder handelt es sich bei dieser Frage um etwas anderes? Es muss eine Möglichkeit geben, den vollständigen Revisionsverlauf für eine bestimmte Seite herunterzuladen, aber ich habe ihn noch nicht gefunden.
Anderson Green

Ja das ist ungefähr richtig.
Rogerdpack

1
Es ist sehr einfach, dies mit WikiBlame zu tun, wie hier erklärt: webapps.stackexchange.com/a/35914/20087
Anderson Green

Wow das ist ziemlich nah. Sieht so aus, als würde man den Committer der "gegebenen Wörter" auf der Wiki-Seite finden. Vielleicht könnte er so geändert werden, dass die gesamte Seite
angezeigt wird

Es wird bereits die Revision angezeigt, in der der Text hinzugefügt wurde. Sie können also einfach auf diesen Link klicken, um zu sehen, wie die gesamte Seite aussah, als der Text hinzugefügt wurde.
Anderson Green

Antworten:


3

Ich brauche oft auch so etwas, aber es sieht so aus, als gäbe es keine fertige Lösung.

Ich habe ein Skript geschrieben, mit dem ich Revisionen mithilfe der MediaWiki-API abrufen und in das Bazaar-Versionskontrollsystem importieren kann. bzr qblame article.wiki, gibt dann einen schönen Blick darauf, wer was geändert hat. Das Skript ist noch nicht wirklich zur Veröffentlichung bereit, aber Sie finden es unten oder auf Pastebin . Das Skript fügt ein Quecksilber-Repo hinzu, das dann in Bazaar konvertiert werden kann.

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



0

Eine andere nicht sehr benutzerfreundliche Lösung wäre die Erweiterung mw-to-git für git, mit der Sie vermutlich git blameauf einer Seite ausgeführt werden können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.