Esempio n. 1
0
 def test_reconnects_are_stable(self, disconnecting_server):
     """
     Ensure that disconnects from the server don't lead to
     exponential growth in reconnect attempts.
     """
     recon = irc.bot.ExponentialBackoff(min_interval=0.01)
     bot = irc.bot.SingleServerIRCBot(
         server_list=[disconnecting_server.socket.getsockname()],
         realname='reconnect_test',
         nickname='reconnect_test',
         recon=recon,
     )
     bot._connect()
     for x in range(4):
         bot.reactor.process_once()
         time.sleep(0.01)
     assert len(bot.reactor.scheduler.queue) <= 1
Esempio n. 2
0
from dateutil.parser import parse

class PhongHunter(irc.bot.SingleServerIRCBot):
  def __init__(self):
    irc.bot.SingleServerIRCBot.__init__(self, [('chat.freenode.net', 6667)], 'WHEREISPHONG', 'WHEREISPHONG')
    self.running = True

  def on_welcome(self, c, e):
    c.privmsg('nickserv', 'info Phong')

  def on_privnotice(self, c, e):
    if e.source.startswith('NickServ!'):
      if e.arguments[0].startswith('Last seen'):
        lastSeen = e.arguments[0].split(':')[1].split('(')[0].strip()
        if lastSeen == 'now':
          self.lastSeenStamp = datetime.now()
        else:
          self.lastSeenStamp = datetime.strptime(lastSeen, '%b %d %H:%M:%S %Y')
        self.running = False

bot = PhongHunter()
bot._connect()
while bot.running:
  bot.ircobj.process_once()

lastSeen = datetime.now() - bot.lastSeenStamp
delta = "%s days, %s hours, %s minutes ago" % (lastSeen.days, lastSeen.seconds / 60
    / 60,
    lastSeen.seconds / 60)
print 'Last seen:', delta, '(%s)'%(lastSeen)