News (06 Aug 2024): Das Wiki läuft jetzt auf einem neuen Server. Aufgrund eines Upgrades von PHP mussten die Wiki-Software und die DPL-Erweiterung aktualisiert werden. Bitte meldet Fehler auf der Hauptseiten-Diskussion.
Benutzer Diskussion:Flece-Bot
Aus GuildWiki
Zur Navigation springenZur Suche springen
Sodele, der Bot ist nun Bot. Wenn was schiefgeht, darf Flece alles von Hand wieder rückgängig machen. --Chronos 21:36, 27. Nov. 2006 (CET)
py guildwiki_family.py[Bearbeiten]
Hi, ich habe gerade angefangen auch einen pywikipediabot für guildwiki zu erstellen, allerdings sträubt der sich, sich als Test in meinem Benutzeraccount einzuloggen. Muss der Bot umbedingt in einen Account mit Botstatus? Und, das ist meine "Diagnose", wie sieht die family-Datei von deinem Bot richtig aus? Ich habe das Gefühl, dass ich da irgendwo einen Fehler gemacht habe wäre nett wenn du helfen könntest. Danke! MfG --DrahtMaul 10:32, 3. Aug. 2009 (CEST)
- Nein, der Status hat mit der Funktionalität nichts zu tun. Allerdings muss der Account natürlich auf der Wiki existieren. Meine guildwiki.py sieht so aus:
# -*- coding: utf-8 -*- import family # MEINPROJEKT Wiki # Beschreibung deiner Seite (optimal) class Family(family.Family): def __init__(self): family.Family.__init__(self) self.name = 'guildwiki' # Ersetzen self.langs = { 'de': 'www.guildwiki.de', # Hostname deines Projektes } self.namespaces[1] = { '_default': u'Diskussion' } self.namespaces[2] = { '_default': u'Benutzer' } self.namespaces[3] = { '_default': u'Benutzer Diskussion' } self.namespaces[4] = { '_default': u'GuildWiki' } # Ersetzen self.namespaces[5] = { '_default': u'GuildWiki Diskussion' } # Ersetzen self.namespaces[6] = { '_default': u'Bild' } self.namespaces[7] = { '_default': u'Bild Diskussion' } def path(self, code): return '/index.php' # Pfad zur index.php anpassen
Gruß --Flece 01:17, 4. Aug. 2009 (CEST)
- Eins fällt mir da gerade auf: Der "Bild"-Namensraum ist jetzt der "Datei"-Namensraum. --Tobias Xy 01:36, 4. Aug. 2009 (CEST)
- Hmm danke erstmal... Das ist praktisch das gleiche, was ich habe... Dann werde ich mal weiter verzweifeln und schauen. Danke jedenfalls. --DrahtMaul 12:02, 4. Aug. 2009 (CEST)
- Edit: Muss die Datei nicht guildwiki_family.py heißen? --DrahtMaul 12:04, 4. Aug. 2009 (CEST)
- Noch ein nerviges Edit: Irgendetwas stimmt bei mir nicht. Jedesmal, wenn ich mich einloggen möchte, meldet der Bot, dass das Passwort falsch sei. ("Login failed. Wrong password or CAPTCHA answer?") Dieses stimmt aber. Vielleicht kannst du mir ja einen Denkansatz geben.--DrahtMaul 12:14, 4. Aug. 2009 (CEST)
- Ich empfehle dir mal Wireshark, damit du auch siehst, was das Script sendet und was der Server dir dann antwortet. --Tera 14:23, 4. Aug. 2009 (CEST)
- So nach langer Zeit habe ich doch wieder Zeit für mein kleines Projekt gefunden... Also: Wireshark ist für mich Neuland, ich denke mal die HTTP-Daten sind wichtig und die TCP egal. Mein Computer fragt nach der URI
/index.php?title=Spezial:Userlogin&useskin=monobook&action=submit
und sendetwpSkipCookieCheck=1&wpPassword=*******&wpDomain=&wpRemember=1&wpLoginattempt=Aanmelden%20%26%20Inschrijven&wpName=DrahtMaul
an den Host. Was dieser zurücksendet verstehe ich nicht ganz, in Wireshark steht aber als Info302 Moved Temporalrily
, undLocation: /wiki/Hauptseite
. Ich verstehe das zumindest so das ein Teil klappt, aber bei allem weitern stehe ich auf dem Schlauch. Mir fiel übrigens noch eine py-Datei auf die test hieß, ich dachte das hilft mir und führe die aus, Rückgabe warPage //www.guildwiki.de/w/api.php?action=query&format=json&meta=userinfo&uiprop=blockinfo could not be retrieved. Check your family file ? WARNING: Could not open 'http://www.guildwiki.de/w/api.php?action=query&format=json&meta=userinfo&uiprop=blockinfo'. Maybe the Server or your connection is down. Retrying in 1 minutes...
und unter der Datei testfamily gab mir cmd folgendes zurück:Getting 1 pages from guildwiki:de... Sleeping for 30.0 seconds, 2009-08-29 23:55:27 Received incomplete XML data. Sleeping for 15 seconds...
Dies wiederholte sich dann immer wieder. Meine family Datei ist genau die, die oben angegeben ist, lediglich Bild habe ich in Datei geändert, der Name ist guildwiki_family.py, allerdings existiert im selben Ordner noch eine Datei namens guildwiki_family.pyc (?), die ich nicht erstellt habe. So damit habe ich mal wieder alle Informationen die ich im Moment habe aufgeschrieben. Wäre nett, wenn ihr mir mal wieder helfen könnt. Danke schonmal! --DrahtMaul 00:07, 30. Aug. 2009 (CEST)- Also... Nach dem Login wird man automatisch weitergeleitet, das passiert auch (302 Moved Temporarily, und zwar zur Location wiki/Hauptseite). Wichtig ist dabei, du musst dann ab sofort (damit dein Login auch erkannt wird) immer deinen Benutzernamen und das Passwort-Hash, was du bekommst, als Cookie mit angeben, wenn du eine Seite öffnest (diese beiden Angaben findet man im Header set-cookie:, übergeben werden sie dann genauso nur als header Cookie:) Wenn du bei Wireshark auf einen HTTP-Eintrag rechtsklickst, kannst du mit "Follow TCP Stream" den gesamten Datenaustausch sehen, dort stehen auch die Header, die du bekommst und sendest dann aufgeschlüsselt drin. (Aufpassen, wenn du das hier postest, die Einträge bei Cookie: [myWiki...=] solltest du zensieren, das ist dein Benutzername und dein Login-Token. Das andre Problem mit der Test-Datei. Unsere API liegt nicht im Ordner http://www.guildwiki.de/w/api.php sondern hier. Ich weiß übrigens nicht, inwiefern das pyWiki-Framework das alles was ich grade erzählt habe, manuell macht und wo man da was einstellen kann. --Tera 11:00, 31. Aug. 2009 (CEST)
- So sorry ich melde mih auch nochmal wieder. Ich könnte schwören, dass du dich am 21. noch nicht gemeldet hast... ich hab eigentlich immer iweder mal hier nachgeschaut aber hab den post wohl übersehen . Danke erstmal für deine Hilfe, auch wenn es mich nicht viel weiterbringt. Ich probier jetzt noch n bisschen rum... Flece, wie hast du denn das Problem gelöst?--DrahtMaul 17:45, 20. Sep. 2009 (CEST)
- Poste doch mal den Raw-Auszug des ganzen Vorgangs (Follow TCP Stream) hier, dann schaue ich nochmal... scheinbar passiert da ja irgendwas falsches bzw etwas passiert nicht. --Tera 20:56, 20. Sep. 2009 (CEST)
- So sorry ich melde mih auch nochmal wieder. Ich könnte schwören, dass du dich am 21. noch nicht gemeldet hast... ich hab eigentlich immer iweder mal hier nachgeschaut aber hab den post wohl übersehen . Danke erstmal für deine Hilfe, auch wenn es mich nicht viel weiterbringt. Ich probier jetzt noch n bisschen rum... Flece, wie hast du denn das Problem gelöst?--DrahtMaul 17:45, 20. Sep. 2009 (CEST)
- Also... Nach dem Login wird man automatisch weitergeleitet, das passiert auch (302 Moved Temporarily, und zwar zur Location wiki/Hauptseite). Wichtig ist dabei, du musst dann ab sofort (damit dein Login auch erkannt wird) immer deinen Benutzernamen und das Passwort-Hash, was du bekommst, als Cookie mit angeben, wenn du eine Seite öffnest (diese beiden Angaben findet man im Header set-cookie:, übergeben werden sie dann genauso nur als header Cookie:) Wenn du bei Wireshark auf einen HTTP-Eintrag rechtsklickst, kannst du mit "Follow TCP Stream" den gesamten Datenaustausch sehen, dort stehen auch die Header, die du bekommst und sendest dann aufgeschlüsselt drin. (Aufpassen, wenn du das hier postest, die Einträge bei Cookie: [myWiki...=] solltest du zensieren, das ist dein Benutzername und dein Login-Token. Das andre Problem mit der Test-Datei. Unsere API liegt nicht im Ordner http://www.guildwiki.de/w/api.php sondern hier. Ich weiß übrigens nicht, inwiefern das pyWiki-Framework das alles was ich grade erzählt habe, manuell macht und wo man da was einstellen kann. --Tera 11:00, 31. Aug. 2009 (CEST)
- So nach langer Zeit habe ich doch wieder Zeit für mein kleines Projekt gefunden... Also: Wireshark ist für mich Neuland, ich denke mal die HTTP-Daten sind wichtig und die TCP egal. Mein Computer fragt nach der URI
- Ich empfehle dir mal Wireshark, damit du auch siehst, was das Script sendet und was der Server dir dann antwortet. --Tera 14:23, 4. Aug. 2009 (CEST)