ich war echt lange nicht mehr hier...
also es geht um folgendes:
ich schreib gerade einen IRC bot, hab aber von IRC leider nicht so viel ahnung.
mit folgenden code kann ich messages, die benutzer mir schicken empfangen, aber irgendwie kriegen sie was zureuckgesendet wird nicht mit:
also hier nur die kritische stelle:
Code: Alles auswählen
def privmsg(self, user, channel, msg):
if user.endswith('undernet.org'): #provisorisch server konnte auch anders heisen
print '\t', msg
if channel == self.factory.nickname:
print user + ': ' + msg
reply = answer(msg)
print reply
print
self.msg(user, reply)
Code: Alles auswählen
import mh_python
mh_python.initbrain()
def answer(quest):
return mh_python.doreply(quest)
class Chatter:
def __init__(self, nickname):
self._nickname = nickname
from twisted.words.protocols import irc
from twisted.internet import protocol
from twisted.internet import reactor
class SBot(irc.IRCClient):
def _get_nickname(self):
return self.factory.nickname
nickname = property(_get_nickname)
def signedOn(self):
self.join(self.factory.channel)
print "Signed on as %s." % (self.nickname,)
def joined(self, channel):
print "Joined %s." % (channel,)
def privmsg(self, user, channel, msg):
if user.endswith('undernet.org'): #provisorisch server konnte auch anders heisen
print '\t', msg
if channel == self.factory.nickname:
print user + ': ' + msg
reply = answer(msg)
print reply
print
self.msg(user, reply)
#print user + ': ' + msg
#reply = answer(msg)
#print 'BOT wil send: ' + reply
#reactor.callLater(3, lambda: self.msg(user, reply))
class SBotFactory(protocol.ClientFactory):
protocol = SBot
def __init__(self, channel, nickname='Sexy21Blonde'):
self.channel = channel
self.nickname = nickname
def clientConnectionLost(self, connector, reason):
print "Lost connection (%s), reconnecting." % (reason,)
connector.connect()
def clientConnectionFailed(self, connector, reason):
print "Could not connect: %s" % (reason,)
if __name__ == "__main__":
chan = 'cybersex'
reactor.connectTCP('us.undernet.org', 6667, SBotFactory('#' + chan))
reactor.run()
danke!
EDIT:
code tags in python tags umgeandert