def ping(self): now = int(time.time()) if now - self.last_ping > config.get('core.ping_interval'): self.logger.debug('Ping...') self.client.ping() self.last_ping = now
def shutdown(self): self.logger.info('Attempting graceful shutdown...') self.serve = False self.join(config.get('core.thread_join_timeout')) self.plugins.shutdown() sys.exit()
def run(self): while self._serve: try: event = self._q.get(True, config.get('core.thread_sleep_time')) except queue.Empty: continue try: self.on_event(event) except Exception as e: if event.channel: self._client.send_message(event.channel, ':angry: *You broke me (_but I live on_):* \n```' + traceback.format_exc() + '```') self._logger.exception(e) self.on_shutdown()
def run(self): while self.serve: try: events = self.client.read_events() except Exception as e: self.logger.exception(e) if len(events): for event in events: if event.user == self.me: self.logger.debug('Skipping message from myself.') continue self.plugins.dispatch(event) time.sleep(config.get('core.thread_sleep_time')) self.ping()
def run(self): while self._serve: try: event = self._q.get(True, config.get('core.thread_sleep_time')) except queue.Empty: continue try: self.on_event(event) except Exception as e: if event.channel: self._client.send_message( event.channel, ':angry: *You broke me (_but I live on_):* \n```' + traceback.format_exc() + '```') self._logger.exception(e) self.on_shutdown()
def shutdown(self): for plugin in self._plugins: plugin.shutdown() for plugin in self._plugins: plugin.join(config.get('core.thread_join_timeout'))
def __init__(self): self._messages = {} self._timestamps = collections.deque([]) self._size = config.get("core.channel_message_buffer_size")
def __init__(self): self._messages = {} self._timestamps = collections.deque([]) self._size = config.get('core.channel_message_buffer_size')