Wikipedia Diskussion:Pywikibot
Download-Adresse
BearbeitenWo kann man den Bot runterladen? Unter der angegebenen Adresse [1] finde ich nichts. Στε Ψ 20:55, 1. Sep. 2009 (CEST)
- Hat sich mittlerweiler erledigt. Στε Ψ 20:20, 17. Nov. 2009 (CET)
Rewrite-Branch
BearbeitenBenutzer:Xqt schrieb bezüglich des Rewrite-Branch: „Es ist ohnehin vorgesehen, daß alle Botbetreiber zu dieser Version, die vollständig die API-Schnittstelle unterstützt, wechseln sollten.“ Wie ausgereift ist der Rewrite-Branch – sollte ich als Botbetreiber (auf einer anderssprachigen Wikipedia) bereits jetzt wechseln oder lieber erst zu einem späteren Zeitpunkt? add_text.py
und pagefromfile.py
habe ich auf die Schnelle im Rewrite-Branch nicht gefunden, kommen diese Scripts noch oder gibt es einen Ersatz dafür? Danke für nähere Info! --UV 22:27, 16. Jan. 2011 (CET)
- Für die Scripte, die bereits existieren, kann man getrost wechseln, sofern man auf aktuellen MW-Umgebungen arbeitet; bei allen Wikimedia-Projekten ist das der Fall. Die Scripts werden nach und nach portiert. Momentan versuche ich, beide Zweige einigermaßen auf gleichem Stand zu halten. Aber es ist beabsichtigt, Neuimplementierungen nur noch im Rewrite-Branch vorzunehmen. Alle TW-Übersetzungen bis gestern habe ich mit Ausnahme der Interwiki-Meldungen in die Trunk-Version übernommen. @xqt 06:27, 19. Jan. 2011 (CET)
- Danke für die Information, dann werde ich mal den Rewrite-Branch ausprobieren. --UV 20:55, 19. Jan. 2011 (CET)
Pywikibot auf Raspberry Pi
BearbeitenHabe den Pywikibot mal auf einem meiner Raspberrys mit Debian Wheezy getestet, erste Erfahrungen sind, was die Perfomance betrifft etwas langsam beim ausführen der Python scripts, aber ansonsten lauffähig mit Python 2.7.3. Hat jemand Erfahrungen mit dem Rpi als Bot? --vy 73 de Ptolusque Amateurfunk | ☑ 04:29, 21. Sep. 2014 (CEST)
Probleme beim Betrieb des bots
BearbeitenIch habe mal ein Testskript versucht, um mich in das Bot-Framework einzuarbeiten:
import pywikibot
site = pywikibot.Site()
page = pywikibot.Page(site, u"Benutzer:Crosby Newton")
text = page.text
page.text = ""
page.save()
Liefert bei mir folgende Fehlermeldung:
exception UnsupportedOperation('fileno',) while fixing up sys.stdout and sys.stderr
Traceback (most recent call last):
File "C:\Users\...\bot.py", line 9, in <module>
page.save()
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\tools.py", line 730, in wrapper
return obj(*__args, **__kw)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\page.py", line 1036, in save
**kwargs)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\page.py", line 1047, in _save
watch=watchval, bot=botflag, **kwargs)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\site.py", line 1036, in callee
self.login(False)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\site.py", line 1673, in login
if loginMan.login(retry=True):
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\login.py", line 202, in login
password=True)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\bot.py", line 502, in input
data = ui.input(question, password)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\userinterfaces\terminal_interface_base.py", line 207, in input
self.output(question + ' ')
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\userinterfaces\terminal_interface_base.py", line 186, in output
self._print(text, targetStream)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\userinterfaces\terminal_interface_base.py", line 127, in _print
self.printColorized(text, targetStream)
File "C:\Python34\lib\site-packages\pywikibot-2.0b3-py3.4.egg\pywikibot\userinterfaces\terminal_interface_win32.py", line 91, in printColorized
targetStream.write(text.encode(self.encoding, 'replace'))
File "C:\Python34\lib\idlelib\PyShell.py", line 1339, in write
raise TypeError('must be str, not ' + type(s).__name__)
TypeError: must be str, not bytes
Aus meiner Sicht unverständlich ist, dass der Bot erst Probleme macht, wenn ich versuche - nach Anleitung (!) - zu speichern und dann meint, dass der Inhalt in byte-Form und nicht als String vorliegt. Jemand eine Idee!? --Crosby Newton (Diskussion) 15:42, 21. Feb. 2015 (CET)
- @Crosby Newton: Die Unterstützung von Python 3.x ist noch recht neu in pywikibot, und es wird auch noch immer daran gearbeitet. Es könnte sein, dass dies im Zusammenhang mit Windows noch nicht funktioniert. Könntest du es mal mit Python 2.7 probieren? Grüße sitic (Diskussion) 18:56, 21. Feb. 2015 (CET)
Ja, daran lag es, d. h. mit Python 3 ist das Tool nicht zu betreiben :( --Crosby Newton (Diskussion) 23:57, 21. Feb. 2015 (CET)
- Bitte mal version.py ausführen, damit Deine Konfiguation angezeigt wird. Das hilft, um den Fehler einzukreisen. Fehlermeldungen nach Möglichkeit auf phabricator einstellen. @xqt 20:30, 22. Feb. 2015 (CET)
- @Crosby Newton: Ich weiß nicht ob du der Autor von phab:T91921 bist. Ansonsten ist dort ein ähnlicher Fehler beschrieben. Ich habe auf gerrit:195086 ein Patch hochgeladen welcher diesen Fehler beheben könnte also sofern möglich wäre es nett wenn du ihn mal ausprobieren könntest. Allerdings verwundert es mich das erst jetzt der Fehler auftritt. Es gibt einige die pywikibot mit Windows betreiben und keiner von denen hat Python 3 benutzt? Benutzt du eigentlich auch IDLE, weil eventuell stellt das Unicode stdout etc. zur Verfügung (der letzte Eintrag im Stack sieht danach aus). — xZise [disk] 15:38, 8. Mär. 2015 (CET)
Erfahrungen bei einem Wiki auf dem eigenen Rechner?
BearbeitenHi, ich möchte aktuell erst einmal auf einem lokal installierten Wiki üben, d. h. ich habe mir eine Wiki-Testumgebung (auf XAMPP) installiert. Hat jemand Erfahrungen, wie dann die user-config und die families-Datei aussehen muss?! --Crosby Newton (Diskussion) 00:01, 22. Feb. 2015 (CET)
UnknownFamily: Family TEST does not exist
Das „TEST“-Wiki liegt bei mir im Ordner „mediawiki“ innerhalb von htdocs. Irgendeine Idee, was ich da machen kann!? --Crosby Newton (Diskussion) 00:15, 22. Feb. 2015 (CET)
Gelöst: Ich habe das Problem jetzt für mich gelöst, indem ich die family-Datei direkt in das Verzeichnis der Bibliothek in meinem Python27-Ordner kopiert habe. Ich erhalte jetzt folgende Fehlermeldung - aber zumindest kann die Software etwas mit der family-Datei anfangen:
WARNING: Http response status 404
WARNING: Non-JSON response received from server TEST:de; the server may be down.
WARNING: Waiting 5 seconds before retrying.
Jemand eine Idee??? --Crosby Newton (Diskussion) 16:26, 22. Feb. 2015 (CET)
- Handbuch gelesen, generate_user_files.py und generate_family_file.py gestartet? Die family.py gehört nicht ins Python-Verzeichnis, das funktioniert nicht. Melde dich dann einfach wieder, wenn Du mit der Anleitung nicht weiterkommst. Gruß @xqt 20:23, 22. Feb. 2015 (CET)
@xqt. Danke für die zügigige Antwort! Ich hatte den Eindruck, dass es hier keine Community rundum das Tool gibt. Auf Meta scheinen Anfragen seit Jahren nicht beantwortet zu werden und das Tool scheint in der Handhabung nicht einfach bzw. die Dokumentation scheint mir lückenhaft und wenn es allein die Info ist, dass das Tool unter Python3 nicht lauffähig ist. --Crosby Newton (Diskussion) 21:48, 22. Feb. 2015 (CET)
- @Crosby Newton: Die beste Möglichkeit ist eigentlich ins irc:pywikibot zu springen, sofern du Englisch gut genug kannst. Ein anderes Problem ist, das die Varianten „core“ und „compat“ gibt. Und teilweise ist die Dokumentation spezifisch für eine Version, was natürlich das ganze relativ unübersichtlich macht. — xZise [disk] 15:49, 8. Mär. 2015 (CET)
- Ich habe relativ viel mit Python-Software zu tun, nur hier hatte ich das erste Mal richtig Probleme, weil die Dokumentation m. E. nicht gut ist. Mir hat die Mailingliste sehr geholfen, sonst wäre es wohl nicht gegangen. Der Bot läuft, jetzt fehlt mir (momentan) die Zeit, ihn zu testen und damit zu arbeiten. Die Grundfunktion ist gut. --Crosby Newton (Diskussion) 16:55, 8. Mär. 2015 (CET)
Inbetriebnahme
BearbeitenAlso ich habe dann mal das ausprobiert und bekomme prombt folgende Fehlermeldung:
UnknownFamily: Family TEXT does not exist
Ich habe die user-config.py-Datei automatisch erzeugt und unten die Zeile angefügt. --Crosby Newton (Diskussion) 22:05, 22. Feb. 2015 (CET)
Noch eine Verständnisfrage hinterher:
1.) Ich habe einen Ordner mit meinem Bot im Python-Arbeitsordner, da hatte ich das Framework entpackt, so dass da jetzt auch der Ordner core drin ist. Die user-config.py-Datei liegt im core-Ordner. In diesen Ordnern muss dann auch die family-Datei rein. 2.) Ich habe dann mein Python-Verzeichnis - ich habe dich so verstanden, dass ich da nicht heran muss. 3.) Ich habe mein htdocs-Verzeichnis, da ist keine Python-Datei drin. Habe ich da irgendwo einen Fehler drin!? --Crosby Newton (Diskussion) 22:29, 22. Feb. 2015 (CET)
Habe es zum Laufen bringen können mit Hilfe der Mailingliste. Werde schauen, wie ich mit der Software zurecht komme. --Crosby Newton (Diskussion) 01:26, 28. Feb. 2015 (CET)
Lösung: Bei mir liegt jetzt die Datei user-config.py im Verzeichnis mit dem Pywikibot-Modul und hat folgenden Inhalt:
mylang='de'
family = 'NameDesWikis'
usernames['NameDesWikis']['de']=u'BenutzernameDesBots'
console_encoding = 'utf-8'
transliteration_target = None
Meine Familiendatei hat folgenden Inhalt:
# -*- coding: utf-8 -*-
"""
This family file was auto-generated by ...
"""
from pywikibot import family
class Family(family.Family):
def __init__(self):
family.Family.__init__(self)
self.name = 'NameDesWikis'
self.langs = {
'de': 'localhost',
}
def scriptpath(self, code):
return {
'de': '/AllesNach-htdocs-UndVorEuremMediaWiki-Verzeichnis/mediawiki',
}[code]
def version(self, code):
return {
'de': u'1.24.2',
}[code]
Die Platzhalter müsstet ihr ersetzen. Wie gesagt, ich betreibe ein Testwiki mittels XAMPP; gefühlt ging ein Testlauf direkt in der Wikipedia schneller und unkomplizierter, wollte ich aber nicht. --Crosby Newton (Diskussion) 19:12, 4. Mai 2015 (CEST)
Zeitverzögerung
BearbeitenWenn ich den Bot bei mir laufen lasse, dann pausiert er immer mal wieder. Für mich wäre die Frage, warum das gemacht wird? Ich denke, um zu verhindern, dass der Bot als Spambot genutzt werden kann. Gibt es eine einfache Option, diese Zeitverzögerung im Testbetrieb herauszunehmen, d. h. ist es eine Bot-eigene Einstellung oder gibt es dafür (auch) einen technischen Grund??? --Crosby Newton (Diskussion) 11:13, 29. Mär. 2015 (CEST)
- Der Grund ist, daß die Botgeschwindigkeit in allen Projekten gedrosselt sein muss. Bei schnelleren Arbeitsgeschwindigkeiten riskiert man eine Sperre. Mit der Option -pt:0 kann man die Drosselung abschalten. Auf eigenes Risiko. @xqt 16:19, 2. Mai 2015 (CEST)
put_throttle = 0 in die user-config.py-Datei funzt auch und habe ich gemacht. Im Testbetrieb ist die Verzögerung m. E. störend. --Crosby Newton (Diskussion) 16:37, 2. Mai 2015 (CEST)
- Was meinst Du denn mit Testbetrieb? @xqt 18:25, 2. Mai 2015 (CEST)
- Testbetrieb = Betrieb auf einem Testwiki, d. h. nicht in der regulären Wikipedia. --Crosby Newton (Diskussion) 15:40, 4. Mai 2015 (CEST)
- Alles klar. Du kennst auch die Option -simulate ? Guess what it does ;) @xqt 17:05, 4. Mai 2015 (CEST)
- Testbetrieb = Betrieb auf einem Testwiki, d. h. nicht in der regulären Wikipedia. --Crosby Newton (Diskussion) 15:40, 4. Mai 2015 (CEST)
- Was meinst Du denn mit Testbetrieb? @xqt 18:25, 2. Mai 2015 (CEST)
Autsch. (Ich finde die Software ausgesprochen schlecht dokumentiert oder aber ich war bislang zu dumm mich zu orientieren. Ich verstehe auch nicht, warum ich mir die Software nicht mittels pip installieren kann.) Hast du die Info wg. Hackathon auf der Mailingliste gesehen!? --Crosby Newton (Diskussion) 19:01, 4. Mai 2015 (CEST)
Hilfe gesucht: Portal:Dänemark/Überarbeitungswürdige_Artikel
BearbeitenDa gibt es auf der Seite "Portal:Dänemark/Überarbeitungswürdige_Artikel" eine Übersicht "Defekter Commons-Link" - dort sind hunderte von Artikeln eingetragen. Ich hab mal willkürlich zehn davon angesehen und bin überall auf die entsprechende Commons-Seite gekommen.
Folgende Frage: ist da der entsprechende Bot schon lange nicht mehr gelaufen (und wer ist dann zuständig, dass er mal läuft?) - oder ist da ein ganz anderer Fehler gemeint, den ich nicht interpretieren kann (vielleicht kann das System die dänischen Buchstaben nicht erkennen?) - oder ist was ganz anderes?
Jedenfalls kann ich nichts reparieren, weil es nichts zu reparieren gibt.
Kann hier jemand helfen? Danke und Gruß --Mef.ellingen (Diskussion) 22:20, 1. Feb. 2016 (CET)
Botflag bei Änderungen
BearbeitenHallo. Ich haben einen pyWikiBot (ChemoBot) geschrieben. Dieser hat auch das Bot Flag und läuft auch. Nun habe ich den Hinweis bekommen, dass der Bot bei seinen Änderungen das BotFlag nicht setzt und damit seine Änderungen nicht von der Beobachtungsliste gefiltert werden können. Die Dokumentation zur save Funktion sagt. bot (bool | None) – if True, mark this edit as made by a bot (default: True if user has bot status, False if not)
. Da der Bot wie schon gesagt, das BotFlag hat bin ich davon ausgegangen, dass ich den Parameter nicht in der save Funktion ergänzen muss. Nach einem Nutzerhinweis habe ich das BotFlag sogar noch mal manuell in der save Funktion gesetzt. page.save(summary="ChemoBot: Ergänze ...", minor=False, bot=True)
. Auch das führt (so weit ich das erkennen kann) nicht zum Setzen des BotFlags bei Änderungen. Die Funktion ist exakt so wie hier geschrieben bei der letzten Änderung in Diazanaphthaline aufgerufen worden. Mache ich noch irgendwas falsch oder gibt es eine "schwarze Magie" die ich noch tun muss, um die Änderungen des Bots als Bot-Änderungen zu kennzeichnen oder ist das ein Bug in pyWikiBot ? Grüße, --Rjh (Diskussion) 09:26, 28. Aug. 2024 (CEST)
- Das "B" siehst du nur in der Beobachtungsliste. technischer Hintergrund: Vergleiche die Datenbanktabellen "revision" und "recentchanges" im Datenbankschema, nur "recentchanges" hat das Feld "rc_bot", "revision" hat das nicht. --Wurgl (Diskussion) 10:39, 28. Aug. 2024 (CEST)
- Zum pyWikiBot selbst kann ich nix sagen, APPERbot läuft mit PHP (und PHP weil APPER PHP benutzt hat, ich musste das damals auch erst lernen). --Wurgl (Diskussion) 10:56, 28. Aug. 2024 (CEST)
- Danke, damit verstehe ich den technischen Hintergrund, warum man das Flag nicht in der Versionshistorie der Seite sieht. Also wieder was gelernt. Aber (wie schon auf der anderen Seite geschrieben) löst es mein eigentliches Problem nicht. Mein Bot setzt bei Änderungen das BotFlag nicht, obwohl das a) automatisch erfolgen sollte und ich es b) sogar nochmal händisch gesetzt habe. Und nun beschweren sich die Autoren das ihre Beobachtungsliste voll ist und sie meine Botänderungen nicht rausfiltern können (weil ja BotFlag nicht gesetzt wird) und ich weiß nicht, was ich ändern soll.Rjh (Diskussion) 12:05, 28. Aug. 2024 (CEST)
- Zum pyWikiBot selbst kann ich nix sagen, APPERbot läuft mit PHP (und PHP weil APPER PHP benutzt hat, ich musste das damals auch erst lernen). --Wurgl (Diskussion) 10:56, 28. Aug. 2024 (CEST)