1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
from twisted.words.protocols import irc
from twisted.internet import defer, endpoints, protocol, reactor, task
from twisted.python import log
from twisted.internet.endpoints import TCP4ClientEndpoint
from txsocksx.client import SOCKS5ClientEndpoint
list_server = ['se.quakenet.org', 'us.undernet.org', 'unaddress_qui_marche_pas', 'unautre.com']
class MomBot(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, message):
print message
class MomBotFactory(protocol.ClientFactory):
protocol = MomBot
def __init__(self, channel, nickname):
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,)
def connIRC(irc_server, irc_port, channel, nickname):
puttyEndPoint = TCP4ClientEndpoint(reactor, irc_server, irc_port)
d = puttyEndPoint.connect(MomBotFactory('#' + channel, nickname))
d.addCallbacks(printCall, printErr)
def printCall(*args, **kwargs):
print args, kwargs
print 'Response received'
def printErr(failure):
print type(failure.value), failure
if failure.value == 'ConnectionRefusedError':
print'Connection refuse... re-essaie dans 15secondes.'
#Comment re-essayer?
#time.sleep(15)
#main()
if failure.value == 'NicknameAlreadyInUse':
#Chager de nickname et recommencer..
if __name__ == '__main__':
for e in list_server:
print'Connection vers: %s' % (e)
connIRC(e, 6667, 'channelABC', 'mynickname')
#Ici comment récupérer l'information..
reactor.run() |
Partager