Hi,
ich suche zu der Python irclib noch eine Doku und vielleicht ein Beispiel. Bis auf die Comments in irclib.py selbst hab ich aber noch nichts weiter gefunden.
Gibt es da nichts oder suche ich in der falschen Ecke?
Suche irclib.py Doku/Beispiel
von ePyCycle finde ich nur leere oder tote Seiten. Das Projekt scheint wohl tot zu sein.
Nach langer geduldiger Suche hab ich etwas gefunden das helfen könnte
http://www.devshed.com/c/a/Python/IRC-o ... her-Level/
Ich hab es aber noch nicht gelesen
Edit: es gibt noch zwei Artikel
http://www.devshed.com/c/a/Python/IRC-o ... Concluded/
http://www.devshed.com/c/a/Python/IRC-o ... Continued/
Nach langer geduldiger Suche hab ich etwas gefunden das helfen könnte
http://www.devshed.com/c/a/Python/IRC-o ... her-Level/
Ich hab es aber noch nicht gelesen
Edit: es gibt noch zwei Artikel
http://www.devshed.com/c/a/Python/IRC-o ... Concluded/
http://www.devshed.com/c/a/Python/IRC-o ... Continued/
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Richtig, ist es auch. Es sollte in einem anderen Bot, circuit, aufgehen aber daraus ist nichts geworden. Du kannst aber den Code dort sicher weiterverwenden.burli hat geschrieben:von ePyCycle finde ich nur leere oder tote Seiten. Das Projekt scheint wohl tot zu sein.
Aber ich habe einige alte Versionen online und ich glaub bei Savannah sind die Dateien noch im CVS.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
bei der python-irclib sind doch einige Beispiele dabei
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Asche auf mein Haupt Ich habe irgendwie nur nach *.py Dateien geschaut. Und da gibt es nur die beiden Libs irclib.py und ircbot.py und ein Beispiel testbot.py. Die anderen Dateien sind mir schlichtweg entgangentiax hat geschrieben:bei der python-irclib sind doch einige Beispiele dabei
Nagut, dann hab ich jetzt 3 Anleitungen und ne Handvoll Beispiele. Damit sollte ich doch was zusammenkriegen
Eine Anmerkung zu den Beispielen auf devshed für den Fall das jemand mal hier drüber stolpert:
In den Beispielen gibt es einen kleinen Schönheitsfehler durch den sie nicht funktionieren. In den Beispielen wird unmittelbar nach dem Connect ein Join durchgeführt. Nur dummerweise wird der Join Befehl sofort ausgeführt und es wird nicht gewartet bis der Server eine Verbindung hergestellt hat
Hier ist ein korrigiertes Beispiel von Seite 3: Events
Entscheidend ist die Zeile irc.add_global_handler ("welcome", on_connect)
und die Funktion on_connect
In den Beispielen gibt es einen kleinen Schönheitsfehler durch den sie nicht funktionieren. In den Beispielen wird unmittelbar nach dem Connect ein Join durchgeführt. Nur dummerweise wird der Join Befehl sofort ausgeführt und es wird nicht gewartet bis der Server eine Verbindung hergestellt hat
Hier ist ein korrigiertes Beispiel von Seite 3: Events
Code: Alles auswählen
import irclib
# Connection information
network = 'irc.freenode.net'
port = 6667
channel = '#irclib'
nick = 'PyTest'
name = 'Test One'
#irclib.DEBUG = True
def on_connect(connection, event):
if irclib.is_channel(channel):
connection.join(channel)
else:
while 1:
line = sys.stdin.readline()
if not line:
break
connection.privmsg(channel, line)
connection.quit("Using irclib.py")
# Generic echo handler ( space added )
# This is used to output some initial information from the server
def handleEcho ( connection, event ):
print
print ' '.join ( event.arguments() )
# Generic echo handler ( no space added )
def handleNoSpace ( connection, event ):
print ' '.join ( event.arguments() )
# Handle private notices
def handlePrivNotice ( connection, event ):
if event.source():
print ':: ' + event.source() + ' ->' + event.arguments() [ 0 ]
else:
print event.arguments() [ 0 ]
# Handle channel joins
def handleJoin ( connection, event ):
# The source needs to be split into just the name
# It comes in the format nickname!user@host
print event.source().split ( '!' ) [ 0 ] + ' has joined ' + event.target()
# Create the IRC object
irc = irclib.IRC()
# Register handlers
irc.add_global_handler ( 'privnotice', handlePrivNotice ) # Private notice
#irc.add_global_handler ( 'welcome', handleEcho ) # Welcome message
irc.add_global_handler ( 'yourhost', handleEcho ) # Host message
irc.add_global_handler ( 'created', handleEcho ) # Server creation message
irc.add_global_handler ( 'myinfo', handleEcho ) # "My info" message
irc.add_global_handler ( 'featurelist', handleEcho ) # Server feature list
irc.add_global_handler ( 'luserclient', handleEcho ) # User count
irc.add_global_handler ( 'luserop', handleEcho ) # Operator count
irc.add_global_handler ( 'luserchannels', handleEcho ) # Channel count
irc.add_global_handler ( 'luserme', handleEcho ) # Server client count
irc.add_global_handler ( 'n_local', handleEcho ) # Server client count/maximum
irc.add_global_handler ( 'n_global', handleEcho ) # Network client count/maximum
irc.add_global_handler ( 'luserconns', handleEcho ) # Record client count
irc.add_global_handler ( 'luserunknown', handleEcho ) # Unknown connections
irc.add_global_handler ( 'motdstart', handleEcho ) # Message of the day ( start )
irc.add_global_handler ( 'motd', handleNoSpace ) # Message of the day
irc.add_global_handler ( 'edofmotd', handleEcho ) # Message of the day ( end )
irc.add_global_handler ( 'join', handleJoin ) # Channel join
irc.add_global_handler ( 'namreply', handleNoSpace ) # Channel name list
irc.add_global_handler ( 'endofnames', handleNoSpace ) # Channel name list ( end )
irc.add_global_handler ("welcome", on_connect)
# Create a server object, connect and join the channel
server = irc.server()
server.connect ( network, port, nick, ircname = name )
#server.join ( channel )
# Jump into an infinite loop
irc.process_forever()
und die Funktion on_connect