Kamel:LyCamell/Bot (Macintosh): Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt.) |
K (hat „Benutzer:LyCamell/Bot (Macintosh)“ nach „Kamel:LyCamell/Bot (Macintosh)“ verschoben: "Kamel"-Namensraum vergessen, war ja lange nicht mehr hier...) |
(kein Unterschied)
|
Version vom 18. Juli 2008, 20:34 Uhr
Dies ist eine Anleitung für deinen eigenen Bot. Sie funkt, solange du Apple Macintosh benutzt und nicht Windows oder ein Unix-Betriebssystem. Alles sollte gehen, aber ich arbeite noch beim Kapitel "Ausführen der Scripts", da ich selber Probleme dabei habe. Der Bot ist für die Kamelopedia gedacht und funktioniert nicht auf anderen Wikis! Dies ist eine Anleitung für den PywikipediaBot!
Inhaltsverzeichnis
[Verbergen]Installation
Python
Download: http://www.python.org/download/ - Wähle auf der Liste Python 2.5.2 for Mac OS X
Python wird dazu gebraucht, um alle Pywikipedia-Dateien überhaupt lesen zu können, und ist seeeeeehr wichtig.
Sobald zu ihn installiert hast, brauchst du nur noch das Python-Setup machen. Das ist genau so wie bei jedem Setup Programm. Wenn fertig, brauchst du nichts mehr mit Python zu tun. Im Ordner wirst du noch ein Dind namens IDLE finden, aber das ist verwirrend und wird in der Anleitung nicht gebraucht.
Pywikipedia
Download: http://sourceforge.net/project/showfiles.php?group_id=93107 - Scrolle nach unten und wähle das Zip-Archiv aus. Verschiebe es dann in deine eigene File-Directory, also die, die im Finder links mit einem kleinen Haus gekenzeichnet ist. Wenn sie vor bearbeiten geschützt ist, gehe auf Ablage>Informationen und entferne das Häckchen wo "geschützt" steht.
Konfiguration
user-config.py
Öffne deinen TextEdit, dann gehe zu Format>In reinen Text umwandeln. Kopiere diesen Text und füge ihn dann ein (Tastenkombinationen: CMD+C für's kopieren, CMD-V für's einfügen):
family = 'kamelopedia' mylang = 'de' usernames['kamelopedia']['de'] = 'KamelopediaBot' minthrottle = 3 maxthrottle = 60 put_throttle = 30
Wechsele "KamelopediaBot" durch den gewünschten Bot-Namen. Anschließend speichere sie in dem Haupt-Ordner des Botes unter dem Namen user-config.py.
kamelopedia_family.py
user-config.py kann ohne kamelopedia_family.py nicht funktionieren. Öffne wieder TextEdit, wandle den Text in reinen Text um und schreib:
# -*- coding: utf-8 -*- import family # Kamelopedia family class Family(family.Family): def __init__(self): family.Family.__init__(self) self.name = 'kamelopedia' self.langs = { 'de': 'kamelopedia.mormo.org', } self.namespaces[1] = { '_default': u'Diskussion' } self.namespaces[2] = { '_default': u'Kamel' } self.namespaces[3] = { '_default': u'Kamel Diskussion' } self.namespaces[4] = { '_default': u'Kamelopedia' } self.namespaces[5] = { '_default': u'Kamelopedia Diskussion' } self.namespaces[6] = { '_default': u'Bild' } self.namespaces[7] = { '_default': u'Bild Diskussion' } self.namespaces[8] = { '_default': u'MediaWiki' } self.namespaces[9] = { '_default': u'MediaWiki Diskussion' } self.namespaces[10] = { '_default': u'Vorlage' } self.namespaces[11] = { '_default': u'Vorlage Diskussion' } self.namespaces[12] = { '_default': u'Hilfe' } self.namespaces[13] = { '_default': u'Hilfe Diskussion' } self.namespaces[14] = { '_default': u'Kategorie' } self.namespaces[15] = { '_default': u'Kategorie Diskussion' } self.namespaces[100] = { '_default': u'Projekt' } self.namespaces[100] = { '_default': u'Projekt Diskussion' } self.namespaces[102] = { '_default': u'Forum' } self.namespaces[104] = { '_default': u'Archiv' } self.namespaces[105] = { '_default': u'Archiv Diskussion' } def version(self, code): return "1.11.0" def path(self, code): return '/index.php'
Das sollte reichen. :-)
Speichere es als kamelopedia_family.py im "families"-Ordner (Ganz wichtig!).
Login des Botes
http://upload.wikimedia.org/wikipedia/commons/1/1a/Crystal_Clear_app_terminal.png
So, nun bringen wir deinen Bot zum laufen! Dazu muss er sich erstmal eigenstängig einloggen.
Öffne Finder und suche Terminal. Es sollte genau so aussehen wie das Bild oben links.
Aufrufen von login.py
Öffne nun das Terminal, und schreibe:
cd /Users/DEINNAME/pywikipedia
"DEINNAME" sollte durch deinen Mac-Benutzernamen ersetzt werden.
Wahrscheinlich denkst du, dass nichts passiert ist, aber es geht weiter. Schreibe nun:
python login.py
...und schon beginnt der Spaß. Tippe nun dein Passwort für den Kamelopedia-Bot ein. Keine Angst, wenn das Terminal nicht ausgibt, er verschlüsselt es nur damit Benutzer die sich den Macintosh teilen ihn nicht missbrauchen. Das Terminal sollte schreiben "Should be logged in now". Dies brauchst du nie mehr einzugeben, da sich dein Bot nicht abmelden kann. Herzlichen Glückwunsch, dein Bot ist nun online!
Denke daran das Terminal nicht zu schließen wenn du willst dass er weiterläuft!
Scripte (Text aus Wikibooks, GNU FDL)
Genaue Quelle: http://de.wikibooks.org/wiki/Python-Programmierung:_Pywikipediabot
category.py
Ein Skript, um mit Kategorien zu arbeiten.
python category.py aktion [-option]
Aktion kann einer der folgenden Befehle sein:
- add – Massenänderung; mehrere Artikel (als Liste) einer Kategorie zuordnen
- remove – Die Kategoriezuordnung von allen Artikeln in dieser Kategorie entfernen
- move – Alle Seiten einer Kategorie einer anderen Kategorie zuordnen
- tidy – Eine Kategorie aufräumen, durch Verschieben der Artikel dieser Kategorie in Unterkategorien
- tree – Erzeuge eine Baumansicht der Unterkategorien einer Kategorie
Option kann einer der folgenden Schalter sein
- person – Sortiere Personenartikel nach ihrem Nachnamen (für die Aktion add)
- rebuild – Baue die lokale Datenbank neu auf
Bei den Aktionen tidy und tree speichert der Bot die Kategorie-Struktur lokal in der Datei category.dump. Das spart Zeit und bedeutet weniger Serverzugriffe. Wenn diese Daten aber später wiederverwendet werden, kann es sein, dass sie veraltet sind; für diesen Fall ist die Option rebuild gedacht.
Beispiel:
Für Version 1.71 2005/03/09:
Um eine neue Kategorie für mehrere Personen-Artikel anzulegen folgenden Befehl eingeben und den Anweisungen folgen:
python category.py add -person
check_extern.py
Dieses Script checkt alle Seiten durch (beginnend bei Spezial:Allpages), ob die in den Artikeln angegebenen externen Links auch funktionieren, und druckt seine Ergebnisse sowohl auf der Konsole aus als auch in die Textdatei "check_extern.log"
python check_extern.py [-option]
- wobei Optionen sein können:
- -start:SEITENNAME <-- um an einer bestimmten Seite zu starten
- -nolog <-- es wird KEIN logfile angelegt
interwiki.py
Siehe dazu die einleitende Beschreibung in der Datei interwiki.py.
redirect.py
Aufrufen mit:
python redirect.py ACTION [-argument]
- action
- double - fixt redirects, die auf andere redirects verweisen
- broken - löscht redirects, die ins Leere verweisen. (benötigt sysop-rechte)
replace.py
Dieses Skript nimmt Änderungen direkt im Artikel vor. Einzelne Seiten können online bearbeitet werden, will man einen Stapelbetrieb für eine bestimmte Aufgabe durchführen (z. B. ersetze in allen Artikeln "eigendlich" -> "eigentlich"), benötigt man ein sql-dumpfile der Wikidatenbank ("cur"-Tabelle genügt).
- Parameter:
- -sql:FILNAME_DES_DUMP – benutzt das dumpfile FILNAME
- -file:TEXTFILE – bezieht die Infos aus einer Textdatei, liest dort alle [[wiki links]] und benutzt diese Artikel
- -page:SEITENNAME – führt (online) Änderungen nur auf dieser Seite durch. Man kann durch mehrfache Angabe mehrere Seiten bearbeiten lassen
- BEACHTE: man kann nur entweder -sql oder -file oder -page angeben, aber diese nicht vermischen.
- -regex – Make replacements using regular expressions. If this argument isn't given, the bot will make simple text replacements.
- -except:XYZ – ignoriert alle Seiten, die XYZ beinhalten. Wenn das -regex-Argument gesetzt ist, wird XYZ als „regular expression“ behandelt.
- -fix:XYZ – führt Default-Aktionen aus. Derzeit gibt es:
- -fix:HTML – wandelt HTML-Tags in Wiki-Tags um
- -namespace:n – mache Änderungen nur im NameSpace "n". Funnzt nur mit einem SQL-dump
- -always – führt Änderungen durch, ohne zu fragen
- Ersetzen
- Gib zuerst das zu suchende Argument ein und dann die Ersetzung in Anführungszeichen an!
- Beispiele:
- Du möchtest beim Aufrufen von Vorlagen die alte Schreibweise {{msg:Stub}} in das neue Syntax {{Stub}} ändern, dann gib ein:
python replace.py -sql -regex "{{msg:(.*?)}}" "{{\\1}}"
- Du möchtest typische Tippfehler korrigieren, z. B. "Errror" -> "Error", dann gib ein:
python replace.py -sql:DUMPFILENAME "Errror" "Error"
- Du möchtest auf der Seite "John_Doe" alle HTML-Tags in Wiki-Tags ändern, dann gib ein:
python replace.py -page:John_Doe -fix:HTML
touchall.py
Dieses Script updatet alle Artikel, ohne tatsächlich Änderungen vorzunehmen. Es werden auch keine Einträge in die Recent Changes geschrieben.
- Scenario 1:
Wenn eine Vorlage, die viel benutzt wird, einer neuen Kategorie zugeordnet wird, ist dieses Skript sehr hilfreich, denn es fügt alle Artikel, die die Vorlage benutzen, in die Kategorie ein.
Hinweis: Dies macht MediaWiki automatisch, siehe meta:Help:Job_queue.
- Parameter
- start: per default schaut das Script auf der Spezial:Allpages nach und geht so alle Einträge von oben nach unten durch. Mit dem Parameter -start:SEITENNAME! beginnt das Script bei entsprechender Seite und arbeitet sich weiter nach unten durch
- Aufruf
touchall.py -start:!
login.py
Dieses Script muss aufgerufen werden, um den BOT beim MediaWiki-Projekt anzumelden (einloggen)
- Aufrufen:
python login.py
Tipps
Troobleshooting
Wenn dein Bot ein Problem hat und Seiten leert o.ä. dann musst du ih stoppen. Das machst du, indem du das Terminal aufmachst und CTLR+C eingibst. Solltest du das nicht machen, wird dein Bot aus Sicherheitsgründen vorläufig gesperrt (angebunden).
Am Anfang passieren immer Fehler!
Text überspringen
Wenn eins Artikels nicht vom Bot bearbeitet werden sollte, schreibe am Anfang <!--sic!-->.