[Python-es] Bot irc modular
chakalinux
chakalinux en gmail.com
Vie Feb 4 17:33:58 CET 2011
Hola de nuevo :)
Miren, me estoy comiendo la,cabeza para hacer un bot/cliente IRC modular, me
explico. Quiero partir de una librería irc que ya la tengo pero no se como
implementarlo para que la aplicación se pueda extender fácilmente, en xchat
el programa esta conectado al IRC y para cargar una extensión por ejemplo de
python se usa:
/py load modulo.py
modulo.py tiene en su cabezera entre otras:
import xchat
En mi caso no se como hacerlo, estoy encaminado por algo así:
##############################################
botlib.py
##############################################
class Bot():
def __init__(self):
self.nick = "pepito"
self.nickpassword = ""
self.username = os.getenv("USERNAME")
self.hostname = os.getenv("HOSTNAME")
self.realname = os.getenv("USERNAME")
self.server = "irc-hispano.org"
self.port = 6667
[...]
def run(self):
self.s = socket.socket()
[...]
dev RecvMsg(self):
# Aqui cojo nick, canal, mensaje, ...
return nick, channel, message
##############################################
y ahora si quiero hacer un modulo para que haga "algo" el bot la cosa sería:
import bot
class Seen(bot.Bot):
def __init__(self):
self.nick = "yo"
[...]
def run(self):
datos = self.recv(self.nick, self.name, self.data)
print datos
seen = Seen()
seen.run()
Total, no se como cogerlo :), la idea es fácil en principio, cargar la
librería y la usas pero no se como enlazar en el caso anterior el evento
RecvMsg() con un modulo externo y es un poco coñazo hacerlo con clases, no
se si hay alguna manera mejor y mas limpia.
EL problema que tiene el anterior ejemplo sin duda es que al instanciar la
clase Bot() se ejecutan 2 conexiones simultaneas y claro ... no es lo que se
quiere, un ejemplo para este caso es xchat, carga los plugins si se
encuentran en X directorio y si instancio o llama a una librería que solo
contiene funciones no se como hacer en el modulo para que cuando le diga:
"Darme datos si los recibes" me los de ... jajajja perdonad si me explico
mal, si supiera explicar el problema no lo preguntaría.
Un saludo
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110204/7cc27917/attachment.html>
Más información sobre la lista de distribución Python-es