FANDOM


Weil ich jedes Mal wieder am Frickeln bin, bis das Teil läuft, schreibe ich hier mal die nötigen Schritte zusammen. Ich habe die Installation nach Anleitung durchgeführt und den Bot so zum Laufen bekommen.

Jeder registrierte Wikia-Benutzer darf diese Anleitung gerne verbessern oder ergänzen, solange die Informationen fundiert und getestet sind.

Installation seit 2019

Leider funktioniert die unter "Installation vor 2019" beschriebene Version nicht mehr. Hier nur in Kürze:

Python installieren:

Pywikibot installieren gemäß Anleitung auf der Downloadseite:

Die folgende Beschreibung gilt evtl. noch in Details, deshalb lösche ich sie (vorerst) nicht.

Installation vor 2019

Einrichtung des Pywikibot unter Windows zur Benutzung bei Wikia

Installation Python

Python 2.7.x (nicht 3.x!) herunterladen von https://www.python.org/downloads/ und installieren.

Installation Pywikibot

Lauffähige Version vom Pywikibot herstellen in folgenden Schritten:

  1. TortoiseSVN herunterladen von https://tortoisesvn.net/downloads.de.html und installieren
  2. mit TortoiseSVN Revision 8888 von URL https://github.com/wikimedia/pywikibot-compat runterladen (Rechtsklick → TortoiseSVN → Export...), gebraucht wird der Inhalt des Verzeichnisses "trunk"
  3. Aktuelles "nightly" "compat.zip" runterladen von http://tools.wmflabs.org/pywikibot/ und in Ordner mit Revision 8888 kopieren, dabei keine (!) Dateien überschreiben.

Installation Editor

Falls kein gescheiter Editor vorhanden ist, Notepad++ herunterladen von https://notepad-plus-plus.org und installieren.

  • Optional: Datei "npp.bat" im Bot-Verzeichnis erstellen mit Inhalt
    start "" "C:\Program Files (x86)\Notepad++\notepad++.exe" %1
    Damit können die Konfigurationsdateien sehr schnell aus der Konsole mit dem Befehl "npp <Dateiname>" geöffnet werden.

Einrichtung Konsole

Konsole einrichten in folgenden Schritten:

  1. Verknüpfung mit "C:\Windows\System32\cmd.exe" erstellen, z. B. auf dem Desktop. Rechtsklick -> Eigenschaften -> Erweitert: "Als Administrator ausführen" anhaken
  2. Unter Eigenschaften -> Layout die Puffergröße erhöhen, damit man bei viel Text noch im Fenster nach oben scrollen kann, Beispiel Höhe 1000; bei Bedarf auch die Fenstergröße erhöhen
  3. Optional: Alternativ kann Microsoft PowerShell verwendet werden, siehe Abschnitt "Nützliche Links". Die weitere Beschreibung orientiert sich an der Verwendung der sog. "Windows Eingabeaufforderung" (cmd.exe). Aufrufe der Python-Skripte erfolgen in der PowerShell immer in der Syntax ".\interwiki.py" statt nur "interwiki.py". Die Verwendung von PowerShell bietet möglicherweise Vorteile bei der Transkription.

Erstellung user-config.py

Benutzerkonfigurations-Datei erstellen in folgenden Schritten:

  1. Konsole über cmd-Verknüpfung aufrufen
  2. zum Botverzeichnis wechseln (hilfreiche Befehle: cd\; cd..; cd <Verzeichnis>; dir <Verzeichnis>; cls) (Anmerkung: zu jedem Befehl kann eine Hilfe mit "help <Befehl>" aufgerufen werden)
    1. bei Bedarf dir-Befehl konfigurieren mit "set dircmd=/p/a/ogn" für übersichtlichere Ausgabe
  3. "generate_user_files.py" ausführen (Anmerkung: Autovervollständigung von angefangenen Kommandos mit der Tabulator-Taste)
    1. Je nach Bedarf nur die user-config.py (1) erzeugen oder auch die "user_fixes.py" (3)
    2. Family "Wikia" wählen (34) (Hinweis: Wurde die Familie schon einmal aufgelistet, so wird sie in der Liste unter einer eigenen Nummer aufgezeichnet.)
    3. Sprache des zu bearbeitenden Wikis einstellen, zum Beispiel "de" für deutsch
    4. Benutzernamen angeben, in der Regel ist das der des Bot-Accounts
    5. Variante je nach Bedarf wählen, "small" reicht erstmal
    6. erstellte Datei mit einem Editor öffnen, zum Beispiel mit Befehl "npp user-config.py", falls für notepad++ eine Batchdatei eingerichtet wurde wie oben beschrieben
    7. im Eintrag "family = 'wikia'" das Wort wikia durch den Namen der entsprechenden Wiki-Family ersetzen (der Eintrag kann frei gewählt werden, muss aber bei der Erstellung der Family-Datei im folgenden Schritt exakt gleich angegeben werden)
    8. in der Zeile mit dem Benutzernamen ebenso das Wort Wikia durch den Family-Namen ersetzen
    9. bei Bedarf weitere Logins für andere Wikis ergänzen, zum Beispiel für andere Wikis der Wiki-Family

Erstellung Family-Datei

Family-Datei erstellen in folgenden Schritten:

  1. generate_family_file.py" ausführen
  2. vollständige URL des Wikis angeben, zum Beispiel http://meinwiki.wikia.com
  3. kurznamen der Family angeben, den gleichen wie in der "user-config.py"
  4. Bei Rückfrage wegen Interwiki-Links mit ja bestätigen

"Schon" fertig.

Beispiele für den Bot-Einsatz

Textsuche mit Ausgabe in eine Textdatei
Das Beispiel dient zur Erstellung einer Liste von Artikeln, die in einem weiteren Bot-Durchlauf bearbeitet werden sollen.
pagegenerators.py -family:inheritance -lang:en -search:"EXAMPLE" > c:\pywikibot\searchresult.txt
Bild-Infovorlage ergänzen
Das Beispiel ergänzt ganz oben auf Seiten im Dateinamensraum Beschreibungsvorlagen, falls diese noch nicht vorhanden sind.
add_text.py -family:community -lang:de -newimages:20 -except:"\{\{[Dd]ateiinfo" -up -summary:"ergänze [[Vorlage:Dateiinfo]]" -textfile:"c:\pydateiinfo.txt"
Suchen und Ersetzen (1)
Im Beispiel werden Links auf eine externe Seite durch eine Linkvorlage ersetzt.
Ergänzen in Datei "fixes.py" (Anmerkung: für Hilfe zur Regex-Syntax siehe Abschnitt "Nützliche Links"):
# Custom replacement
'lotr': {
  'regex': True,
  'msg': {
    'en':u'Robot: Automated text replacement',
  },
  'replacements': [
    (r'(?i)\[http://tolkiengateway.net/wiki/(.*?) (.*?)\]', r"{{TGlink|\1}}"),
  ],
},
Aufrufen mit dem Befehl:
replace.py -fix:lotr -...
Suchen und Ersetzen (2)

In diesem Beispiel werden Links, die wiki-intern sind, aber dennoch als vollständige URL in einfachen eckigen Klammern geschrieben sind, in die verkürzte Schreibweise mit doppelten eckigen Klammern umgewandelt. Damit die Links nicht in der Form "[[Test_1_2_3|Test 1 2 3]]" bestehen bleiben, sondern stattdessen in die Form "[[Test 1 2 3]]" verkürzt werden, muss in der user-config.py

cosmetic_changes = True

gesetzt sein.

Außerdem werden die Absatzklassen

<p class="MsoNormal">...</p>

entfernt, die gelegentlich in den Artikeln auftauchen. Die stammen, so vermute ich, aus Texten, die mit MS Word vorgeschrieben wurden.

Es werden in den URL alle Vokale mit Akut, Gravis, Zirkumflex sowie Trema erkennt und durch die entsprechenden Sonderzeichen ersetzt. Bei Bedarf müssen weitere Sonderzeichen hinzugefügt werden.

fixes = {
	'extlink': {
        'regex': True,
        'msg': {
		'_default': u'Bot: Links korrigiert und/oder HTML-Code entfernt',
        },
        'replacements': [
		(ur'<p class="MsoNormal">(.+?)</p>', ur"\1"),
		(ur"\?action\=edit\&redlink\=1", ur""),
		(ur'\[http://de\.lotr\.wikia\.com/wiki/(\S+) \1\]', ur"[[\1]]"),
		(ur'\[http://de\.lotr\.wikia\.com/wiki/(\S+) ([^]]+)\]', ur"[[\1|\2]]"),
		(ur'\[\[([^|]*)%28([^|]*)\|([^]]+)\]\]', ur"[[\1(\2|\3]]"),
		(ur'\[\[([^|]*)%29([^|]*)\|([^]]+)\]\]', ur"[[\1)\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A1([^|]*)\|([^]]+)\]\]', ur"[[\1á\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A9([^|]*)\|([^]]+)\]\]', ur"[[\1é\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AD([^|]*)\|([^]]+)\]\]', ur"[[\1í\2|\3]]"),
		(ur'\[\[([^|]*)%C3%B3([^|]*)\|([^]]+)\]\]', ur"[[\1ó\2|\3]]"),
		(ur'\[\[([^|]*)%C3%BA([^|]*)\|([^]]+)\]\]', ur"[[\1ú\2|\3]]"),
		(ur'\[\[([^|]*)%C3%81([^|]*)\|([^]]+)\]\]', ur"[[\1Á\2|\3]]"),
		(ur'\[\[([^|]*)%C3%89([^|]*)\|([^]]+)\]\]', ur"[[\1É\2|\3]]"),
		(ur'\[\[([^|]*)%C3%8D([^|]*)\|([^]]+)\]\]', ur"[[\1Í\2|\3]]"),
		(ur'\[\[([^|]*)%C3%93([^|]*)\|([^]]+)\]\]', ur"[[\1Ó\2|\3]]"),
		(ur'\[\[([^|]*)%C3%9A([^|]*)\|([^]]+)\]\]', ur"[[\1Ú\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A0([^|]*)\|([^]]+)\]\]', ur"[[\1à\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A8([^|]*)\|([^]]+)\]\]', ur"[[\1è\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AC([^|]*)\|([^]]+)\]\]', ur"[[\1ì\2|\3]]"),
		(ur'\[\[([^|]*)%C3%B2([^|]*)\|([^]]+)\]\]', ur"[[\1ò\2|\3]]"),
		(ur'\[\[([^|]*)%C3%B9([^|]*)\|([^]]+)\]\]', ur"[[\1ù\2|\3]]"),
		(ur'\[\[([^|]*)%C3%80([^|]*)\|([^]]+)\]\]', ur"[[\1À\2|\3]]"),
		(ur'\[\[([^|]*)%C3%88([^|]*)\|([^]]+)\]\]', ur"[[\1È\2|\3]]"),
		(ur'\[\[([^|]*)%C3%8C([^|]*)\|([^]]+)\]\]', ur"[[\1Ì\2|\3]]"),
		(ur'\[\[([^|]*)%C3%92([^|]*)\|([^]]+)\]\]', ur"[[\1Ò\2|\3]]"),
		(ur'\[\[([^|]*)%C3%99([^|]*)\|([^]]+)\]\]', ur"[[\1Ù\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A2([^|]*)\|([^]]+)\]\]', ur"[[\1â\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AA([^|]*)\|([^]]+)\]\]', ur"[[\1ê\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AE([^|]*)\|([^]]+)\]\]', ur"[[\1î\2|\3]]"),
		(ur'\[\[([^|]*)%C3%B4([^|]*)\|([^]]+)\]\]', ur"[[\1ô\2|\3]]"),
		(ur'\[\[([^|]*)%C3%BB([^|]*)\|([^]]+)\]\]', ur"[[\1û\2|\3]]"),
		(ur'\[\[([^|]*)%C3%82([^|]*)\|([^]]+)\]\]', ur"[[\1Â\2|\3]]"),
		(ur'\[\[([^|]*)%C3%8A([^|]*)\|([^]]+)\]\]', ur"[[\1Ê\2|\3]]"),
		(ur'\[\[([^|]*)%C3%8E([^|]*)\|([^]]+)\]\]', ur"[[\1Î\2|\3]]"),
		(ur'\[\[([^|]*)%C3%94([^|]*)\|([^]]+)\]\]', ur"[[\1Ô\2|\3]]"),
		(ur'\[\[([^|]*)%C3%9B([^|]*)\|([^]]+)\]\]', ur"[[\1Û\2|\3]]"),
		(ur'\[\[([^|]*)%C3%A4([^|]*)\|([^]]+)\]\]', ur"[[\1ä\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AB([^|]*)\|([^]]+)\]\]', ur"[[\1ë\2|\3]]"),
		(ur'\[\[([^|]*)%C3%AF([^|]*)\|([^]]+)\]\]', ur"[[\1ï\2|\3]]"),
		(ur'\[\[([^|]*)%C3%B6([^|]*)\|([^]]+)\]\]', ur"[[\1ö\2|\3]]"),
		(ur'\[\[([^|]*)%C3%BC([^|]*)\|([^]]+)\]\]', ur"[[\1ü\2|\3]]"),
		(ur'\[\[([^|]*)%C3%9F([^|]*)\|([^]]+)\]\]', ur"[[\1ß\2|\3]]"),
       	]
},
Aufrufen mit dem Befehl:
replace.py -fix:extlink -recursive -dotall ...

Nützliche Links

Nutzung von Community-Inhalten gemäß CC-BY-SA , sofern nicht anders angegeben.