Ejemplo n.º 1
0
    def process_message(self, data: dict):
        try:
            self.averager_job.toggle_job()
            self.averager_job.channels.append(data["channel"])
            user_service = UserService()
            user = user_service.get_by_id(data["user"])
            # get user's  username(not DISPLAY NAME) if he doesn't exist in the db
            if not user:
                username = self.slack_client.api_call(
                    method="users.info", user=data["user"])["user"]["name"]
                user = UserModel(username=username, user_id=data["user"])
            numbers = self.parse_numbers(data["text"])
            if numbers:
                for number in numbers:
                    user.total_numbers += 1
                    user.sum_numbers = user.sum_numbers + number

                self.outputs.append([
                    data['channel'],
                    f"from {user.username} {user.calculate_average()}"
                ])

                user_service.post(user)
        except Exception as e:
            # Added this so exceptions could be seen in the terminal where the bot is running
            import traceback
            traceback.print_exc()
            print(str(e))