IRC-Client

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Beitragvon BlackJack » Sonntag 6. Januar 2008, 21:13

Ups, ja eigentlich sollte es sogar eine 1.3 sein. :oops:
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Montag 7. Januar 2008, 10:29

In Versionsnummern ist auch 1.20, nicht aber 1.2.0, größer als 1.3 ;)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Montag 7. Januar 2008, 13:48

Y0Gi hat geschrieben:In Versionsnummern ist auch 1.20, nicht aber 1.2.0, größer als 1.3 ;)

Ja genau darum ging es ja!!! Aber als Dezimalzahl wäre eben 1.20 eben nicht > 1.3! Das war gemeint!
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Beitragvon mkesper » Montag 7. Januar 2008, 14:23

Y0Gi hat geschrieben:In Versionsnummern ist auch 1.20, nicht aber 1.2.0, größer als 1.3 ;)

Da das aber sehr verwirrend ist, sollte man keine Unterversionen größer 9 verwenden.
BlackJack

Beitragvon BlackJack » Montag 7. Januar 2008, 14:32

Sehe ich nicht so. Besser noch eine .0 anhängen, also 1.20.0, damit die Leute nicht so leicht auf die Idee kommen es wäre ein Dezimalbruch. Das würde ja sonst bedeuten man müsste nach einer 0.9 zwangsläufig eine 1.0 veröffentlichen, auch wenn noch gar nicht alle Ziele erreicht wurden, die man sich dafür gesteckt hat.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Beitragvon Nocta » Montag 7. Januar 2008, 23:53

Ist auch egal mit den Versionsnummern jetzt.
Ich hab mir jetzt mal Twisted angeschaut.
Da hab ich mir gleich mal ein Beispielprogramm für einen IRC Log-Bot angeschaut ... Naja irgendwie blick ich da nicht so ganz durch.
Sowas wie:

Code: Alles auswählen

        if msg.startswith(self.nickname + ":"):
            msg = "%s: I am a log bot" % user
            self.msg(channel, msg)
            self.logger.log("<%s> %s" % (self.nickname, msg))

Versteh ich, ist ja irgendwie auch selbsterklärend. Aber das Problem ist eher, dass ich einfach nicht durchblicke, wenn eine neue Klasse erstellt wird, die von irgendeiner Klasse erbt, die ich natürlich nicht kenne, weil ich das Twisted-Framework noch nie benutzt hab.
Außerdem war der Bot auch recht lahm, der antwortet einem bei einer Query-Message immer "It isn't nice to whisper! Play nice with the group."
Das kommt dann so ca. 15 sekunden später an :o Aber kann ja auch andere Gründe haben.

Ja ich weiß, Tutorials lesen würde das Problem beheben, dass ich nicht so richtig durchblicke, man kann sich nicht ein paar Codebeispiele anschaun und dann erwarten, dass man versteht, wie das ganze Funktioniert.
Aber irgendwie mag ich Twisted jetzt schon nicht :p Mag sein, dass ich Twisted irgendwann schätzen werde, wenn ich merke, wie umständlich ich's hab wenn ich's nicht benutze.
Ich guck mir vielleicht erstmal an, wie die IRC-lib so ist und danach kann ich ja immer noch Twisted nehmen, wenn mir das noch weniger gefällt :p
Das ganze selbst mit Sockets/Threads/KA-was-alles zu machen, ist wahrscheinlich der umständlichste Weg oder? Aber vielleicht auch der lehrreichste :p
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 8. Januar 2008, 00:00

Nocta hat geschrieben:Das ganze selbst mit Sockets/Threads/KA-was-alles zu machen, ist wahrscheinlich der umständlichste Weg oder?

Ja, und damit auch der Weg bei dem man am meisten falsch machen kann.

Kannst dir gatskerd.py ansehen, der IRC-Part dort ist echt simpel.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Dienstag 8. Januar 2008, 09:38

Um das Thema Versionsnummern abzuschließen noch ein paar Hinweise dazu: Kopete (KDE Multi Protokoll Messenger) und XCDRoast (http://www.xcdroast.org/) sind wohl gute Beispiele dafür. Wobei letzteres seit 10 Jahren "unfertig" ist :D
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Dienstag 8. Januar 2008, 15:30

Über Twisted habe ich zwar ein Buch im Regal, aber so richtig grün geworden bin und gemocht habe ich es bisher nie.

Für kleine Bots habe ich mit der irclib keine Probleme gehabt, würde in Zukunft aber wohl auf Supybot oder Gozerbot setzen.

Wenn es dir darum geht, etwas zu lernen (und ziemlich gute IRC-Clients gibt es ja bereits) und mit dem Protokoll zu spielen, dann ist ein recht niedriger Ansatz über Sockets oder ggf. über asyncore/asynchat (habe ich bisher leider noch nicht benutzt) wohl die beste Wahl. Netzwerkprogrammierung kann aber sehr tricky sein, von daher bin ich letztlich doch meistens von eigenen Implementierungen auf bewährte Lösungen gewechselt ;)
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Dienstag 8. Januar 2008, 16:21

Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Beitragvon Nocta » Samstag 2. Februar 2008, 19:47


Oh, das sieht ja richtig einfach und simpel aus :)
Ich glaub damit komm ich gut zurecht, danke für das Beispiel.
Kommt mir auf jeden Fall viel einfacher vor als Twisted oder so.
Edit:
Ich hab das jetzt mal grad so ausprobiert, wie es im Paste stehst und folgendes krieg ich von Python:

[code=]warning: unhandled exception
warning: unhandled exception
warning: unhandled exception
warning: unhandled exceptionerror: uncaptured python exception, closing channel <__main__.IRCBot at 0xc5ab98> (<type 'exceptions.KeyboardInterrupt'>: [C:\Python25\lib\asyncore.py|_exception|84] [C:\Python25\lib\asyncore.py|handle_expt_event|400] [C:\Python25\lib\asyncore.py|handle_expt|423] [C:\Python25\lib\asyncore.py|log_info|376] [C:\Python25\lib\idlelib\rpc.py|__call__|597] [C:\Python25\lib\idlelib\rpc.py|remotecall|211] [C:\Python25\lib\idlelib\rpc.py|asyncreturn|240] [C:\Python25\lib\idlelib\rpc.py|getresponse|280] [C:\Python25\lib\idlelib\rpc.py|_getresponse|308] [C:\Python25\lib\threading.py|wait|214])[/code]
Ähm ja ... Hä?!
Was genau ist denn das Problem?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 8. Februar 2008, 12:32

Nocta hat geschrieben:Was genau ist denn das Problem?

Du hast Strg+C (KezboardInterrupt) gedrueckt? ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Beitragvon Nocta » Sonntag 10. Februar 2008, 21:47

Leonidas hat geschrieben:
Nocta hat geschrieben:Was genau ist denn das Problem?

Du hast Strg+C (KezboardInterrupt) gedrueckt? ;)

Okay, das erklärt aber nicht die vielen warning: unhandled exception. Das kommt solange, bis ich abbreche :shock:

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]