2017-12-04 23:45:48 -08:00
|
|
|
#!/usr/bin/env python
|
|
|
|
"""
|
|
|
|
.. module:: PressF
|
|
|
|
:synopsis: Press F to pay respects
|
|
|
|
|
|
|
|
.. moduleauthor:: Dave Pedu <dave@davepedu.com>
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
from pyircbot.modulebase import ModuleBase, hook
|
|
|
|
from time import sleep
|
|
|
|
from threading import Thread
|
|
|
|
|
|
|
|
|
|
|
|
class Rejoin(ModuleBase):
|
|
|
|
def __init__(self, bot, moduleName):
|
|
|
|
ModuleBase.__init__(self, bot, moduleName)
|
|
|
|
try:
|
2018-02-16 20:45:29 -08:00
|
|
|
self._services = self.bot.getmodulesbyservice("services").pop()
|
2017-12-04 23:45:48 -08:00
|
|
|
except KeyError as ke:
|
|
|
|
raise Exception("No services service provider found") from ke
|
|
|
|
|
|
|
|
@hook("KICK")
|
|
|
|
def kicked(self, msg, cmd):
|
|
|
|
channel, who = msg.args
|
2018-02-16 20:45:29 -08:00
|
|
|
if who == self._services.nick():
|
2017-12-04 23:45:48 -08:00
|
|
|
Thread(target=self.rejoin, args=(self.config.get("delay", 30), channel)).start()
|
|
|
|
|
|
|
|
def rejoin(self, delay, channel):
|
|
|
|
sleep(delay)
|
|
|
|
self.bot.act_JOIN(channel)
|