Benutzer Diskussion:Flece-Bot

Aus GuildWiki
Version vom 20:56, 20. Sep. 2009 von Tera (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version ansehen (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

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 zwinkernd/es nicht ganz ernst meinend wäre nett wenn du helfen könntest. Danke! MfG --DrahtMaul Benutzer DrahtMaul-Favicon25.png 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. lächelnd/glücklich --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 Benutzer DrahtMaul-Favicon25.png 12:02, 4. Aug. 2009 (CEST)
Edit: Muss die Datei nicht guildwiki_family.py heißen? --DrahtMaul Benutzer DrahtMaul-Favicon25.png 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 Benutzer DrahtMaul-Favicon25.png 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 sendet wpSkipCookieCheck=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 Info 302 Moved Temporalrily, und Location: /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 war Page //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 Benutzer DrahtMaul-Favicon25.png 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 unglücklich/traurig. 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 Benutzer DrahtMaul-Favicon25.png 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)