def __init__(self, irc): self.__parent = super(DebianDevelChanges, self) self.__parent.__init__(irc) self.irc = irc self.topic_lock = threading.Lock() fr = FifoReader() fifo_loc = '/var/run/debian-devel-changes/fifo' fr.start(self._email_callback, fifo_loc) self.queued_topics = {} self.last_n_messages = [] # Schedule datasource updates for klass, interval, name in get_datasources(): try: schedule.removePeriodicEvent(name) except KeyError: pass def wrapper(klass=klass): klass().update() self._topic_callback() schedule.addPeriodicEvent(wrapper, interval, name, now=False) schedule.addEvent(wrapper, time.time() + 1)
def die(self): FifoReader().stop() for _, _, name in get_datasources(): try: schedule.removePeriodicEvent(name) except KeyError: # A newly added event may not exist, ignore exception. pass
def update(self, irc, msg, args): if not ircdb.checkCapability(msg.prefix, 'owner'): irc.reply("You are not authorised to run this command.") return for klass, interval, name in get_datasources(): klass().update() irc.reply("Updated %s." % name) self._topic_callback()
def update(self, irc, msg, args): if not ircdb.checkCapability(msg.prefix, 'owner'): irc.reply("You are not authorised to run this command.") return for klass, interval, name in get_datasources(): klass().update() irc.reply("Updated %s." % name) for source in self.data_sources: source.update() irc.reply("Updated %s." % source.NAME) self._topic_callback()
def die(self): FifoReader().stop() for _, _, name in get_datasources(): try: schedule.removePeriodicEvent(name) except KeyError: # A newly added event may not exist, ignore exception. pass for source in self.data_sources: try: schedule.removePeriodicEvent(source.NAME) except KeyError: pass
def __init__(self, irc): super(DebianDevelChanges, self).__init__(irc) self.irc = irc self.topic_lock = threading.Lock() fr = FifoReader() fifo_loc = '/var/run/debian-devel-changes-bot/fifo' fr.start(self._email_callback, fifo_loc) self.requests_session = requests.Session() self.requests_session.verify = True self.queued_topics = {} self.last_n_messages = [] self.stable_rc_bugs = StableRCBugs(self.requests_session) self.testing_rc_bugs = TestingRCBugs(self.requests_session) self.new_queue = NewQueue(self.requests_session) self.data_sources = (self.stable_rc_bugs, self.testing_rc_bugs, self.new_queue) # Schedule datasource updates for klass, interval, name in get_datasources(): try: schedule.removePeriodicEvent(name) except KeyError: pass def wrapper(klass=klass): klass().update() self._topic_callback() schedule.addPeriodicEvent(wrapper, interval, name, now=False) schedule.addEvent(wrapper, time.time() + 1) def wrapper(source): def implementation(): source.update() self._topic_callback() return implementation for source in self.data_sources: schedule.addPeriodicEvent(wrapper(source), source.INTERVAL, source.NAME, now=False) schedule.addEvent(wrapper(source), time.time() + 1)