gdesklet für ogame

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
xijo

gdesklet für ogame

Beitragvon xijo » Samstag 17. Juli 2004, 07:22

hallo,

ich versuche grade ein desklet für das browserspiel ogame zu schreiben. das ist vermutlich keine große aufgabe und auch an sich nur ne spielerei, aber ich habe bisher noch nicht viel programmiert (bzw nicht viel was nachher auch funktionierte) und möchte einfach ein wenig üben.

das prog soll folgendes können:

login in http://ofame.de/login_ver.php? mit den angaben Uni, name und pass
aktualisierung der seite, optimalerweise ohne relogin, also 1x einloggen, sessionid nehmen und immer wieder aktualisieren
nach dem login suche nach einer bestimmten wortpassage ('feindliche flotte')

bisher habe ich versucht mir das weather desklet vorzunehmen, leider etwas erfolglos :) - habt ihr nen paar tips für mich wie ich das ganze am besten anpacke ?

danke schonmal für jede antwort,

gruß
xijo
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Samstag 17. Juli 2004, 09:57

Mir stellt sich die Frage, ob das überhaupt zulässig ist, bei OGame.

Alle Browsergames die ich gespielt habe oder spiele (keine Deutschen) haben in deren Regelwerk stehen, dass keine Bots, oder andere Tools ausser dem Webbrowser an sich zulässig sind.

(Bevor jemand fragt, ich spiele seit langer Zeit die Mutter aller Browsergames Planetarion und einige Runden Planetia.)
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
Gast

Beitragvon Gast » Samstag 17. Juli 2004, 10:10

eigentlich gehts mir nicht drum etwas unzulässiges zu tun (schließlich läuft mein ogame sowieso immer wenn mein rechner an ist, und wenn er aus ist könnte ein desklet auch nicht erkennen ob ich angegriffen werde :) ) - man könnte das als bot werten, ok das stimmt - aber meine motivation ist es überhaupt mal was funktionierendes zu schreiben -.. und wenn es den punktestand auslesen würde wär ich auch zufrieden :)

es geht nur drum mal überhaupt sowas zu schreiben und weniger ums 'betrügen' - hoffe ich wurde nicht missverstanden, denn ein brower-spiel-betrüger bin ich nicht *gg*

gruß
xijo
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Re: gdesklet für ogame

Beitragvon Dookie » Samstag 17. Juli 2004, 10:48

Hi xijo,

ich würde erstmal das holen der Seite und das Einloggen usw. machen, mit einer kleinen Schnittstelle für die Bash.

Code: Alles auswählen

#!/usr/bin/env python

from time import sleep

def connect(url):
    pass # hier zur seite connecten
    return con

def closecon(con):
    pass # hier connection schließen
   
def login(con, name, pw, uni):
    pass # hier einloggen und cookies (mit sessionID) holen
    return sessionID

def reconnect(url, sessionID):
    pass # hier reconnecten mit sessionID

def getpage(con):
    pass # Seite holen
    return page

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 4:
        print "usage: %s url password uni" % __file__
        sys.exit()
    url, pw, uni = sys.argv[1:]
    first = True
    while True:
        if first:
            con = connect(url)
            sessID = login(con, name, pw, uni)
            first = False
        else:
            reconnect(url, sessID)
        page = getpage(con)
        print con
        sleep(10)


das währ mal ein Gerüst. Du könntest dir auch mein ExternIP Desklet anschauen.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
xijo

Beitragvon xijo » Samstag 17. Juli 2004, 11:54

thx ich wurschtel mich mal rein, hab noch ein paar verständnisprobs beim letzten teil aber wenn ich fragen hab poste ich einfach hier wieder :) -- schön nen forum zu finden, in dem man schnell so hilfbereite leute findet *daumenhoch*

das externip desklet is übrigens ziemlich praktisch - ich schau mal dass ich noch nen display für den psi-theme bastel, oder vllt auch in das netzwerkdisplay einbaue :)

gruß
xijo
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Samstag 17. Juli 2004, 12:15

Anonymous hat geschrieben:es geht nur drum mal überhaupt sowas zu schreiben und weniger ums 'betrügen' - hoffe ich wurde nicht missverstanden, denn ein brower-spiel-betrüger bin ich nicht *gg*


Um Himmels Willen, ich will dich nicht als Betrüger bezeichnen. Ich wollte nur meine Gedanken dazu kundtun, auch wenn diese Offtopic sind, aber ich bin Admin und Betreiber, ich darf das :P Nein, im Ernst: Es ist wichtig ein Ziel zu haben wenn man das erste mal etwas in einer neuen Programmiersprache entwickelt, sonst lernt man es nie! Also mach weiter! :)
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 17. Juli 2004, 12:30

meinst Du mit letztem Teil, das da ?

Code: Alles auswählen

# Teste ob script direkt gestartet wurde oder als modul importiert
if __name__ == "__main__": # direkt gestartet!
    import sys
    if len(sys.argv) != 4: # nicht 3 Argumente an Script übergeben?
        print "usage: %s url password uni" % __file__ # usagetext ausgeben
        sys.exit() # fertig das wars

    # hier gehts weiter wenn wir 3 Argumente bekommen haben
    # in sys.argv[0] steht der Pfad des Scripts, brauchen wir hier nicht
    url, pw, uni = sys.argv[1:] #Augumente 1-3 holen und zuweisen
    first = True # Flag für ersten Durchlauf
    while True: # Endlosschleife
        if first: # Erster Durchlauf?
            # wenn ja dann normal connecten und login machen
            con = connect(url)
            sessID = login(con, name, pw, uni)
            first = False # flag für weitere Durchläufe kein Login nötig
        else:
            reconnect(url, sessID)
        page = getpage(con) # Seite holen
        print con # Seite ausgeben, hier kannst Du auch den Inhalt auswerten
        sleep(10) # 10 Sekunden warten


Ich habs jetzt mal ausführlich kommentiert, bei weiteren Fragen, einfach her damit.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
xijo
User
Beiträge: 2
Registriert: Samstag 17. Juli 2004, 13:13
Kontaktdaten:

Beitragvon xijo » Samstag 17. Juli 2004, 13:17

:D ausgezeichnet, dankeschön :)

eine frage hab ich da auch direkt nochmal: habt ihr ein tutorial, oder auch ein buch, das ihr mir zum einstieg in python bei wenig vorbildung empfehlen würdet ?

Da ich am Anfang wohl sowieso nur Nonsence schreibe finde ich es persönlich wichtig, dass man ein (mehr oder weniger) nützliches Ergebnis sieht am Ende :) - ich denke ich werde das Desklet dann auch sowieso online stellen :)

Danke für eure Hilfe,

gruß
xijo
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 17. Juli 2004, 15:37

falls du es noch nicht kennst:
http://www.way2python.de/
http://www.freenetpages.co.uk/hp/alan.gauld/german/

sind imho für Pythoneinsteiger zu empfehlen.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
xijo
User
Beiträge: 2
Registriert: Samstag 17. Juli 2004, 13:13
Kontaktdaten:

Beitragvon xijo » Montag 19. Juli 2004, 08:20

moin,

ich les mich grade so rein und komme auch ganz gut klar, allerdings wäre es sehr hilfreich wenn es eine deutsche übersetzung zum module-reference-guide gäbe - gibts sowas ? :)

hab schon gegooglet ohne ende, aber leider nix gefunden :(

gruß
xijo
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Montag 19. Juli 2004, 11:03

Mahlzeit ;)

hmm da wüsste ich auch nichts. Eigentlich komme ich mit der englischen Referenz ganz gut klar. Wenn ich mal einen Begriff nicht weiss, schlag ich in "ding" nach. Und sonst gibts ja auch noch das Forum :)


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]