Exemplo n.º 1
0
    def start_session(self, init: bool = False, nap: bool = False):
        if nap:
            pass
            # self.slackbot.send_message(text=MsgResource.NAP)
        else:
            self.worker.stop(init=init)
            self.worker.run(init=init)

        try:
            # Start RTM
            endpoint = self.slackbot.start_real_time_messaging_session()
            listener = MsgListener()
            self.logger.info("start real time messaging session!")

            async def execute_bot():
                ws = await websockets.connect(endpoint)
                while True:
                    receive_json = await ws.recv()
                    listener.handle(receive_json)

            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
            asyncio.get_event_loop().run_until_complete(execute_bot())
            asyncio.get_event_loop().run_forever()

        except BaseException:
            self.logger.error(
                f"Session Error. restart in {self.error_delay} seconds..")
            self.logger.exception("bot")
            time.sleep(self.error_delay)
            self.start_session(nap=True)
 def test_is_dnd_updated_user(self):
     self.assertEqual(MsgListener().is_dnd_updated_user(self.test_dnd_msg1),
                      True)
 def test_is_message(self):
     self.assertEqual(MsgListener().is_message(self.test_message_msg), True)
 def test_is_bot(self):
     self.assertEqual(MsgListener().is_bot(self.test_bot_msg1), True)
     self.assertEqual(MsgListener().is_bot(self.test_bot_msg2), True)
     self.assertEqual(MsgListener().is_bot(self.test_bot_msg3), True)
 def test_is_presence(self):
     self.assertEqual(MsgListener().is_presence(self.test_presence_msg),
                      True)