Esempio n. 1
0
    def handle(self, requirements):
        citizen_api = CitizensAPI()
        for awaiting in requirements['awaiting']:
            if citizen_api.is_authenticated(awaiting.rsi_username. awaiting.reddit_username):
                self.authenticate_subscriber(awaiting)
            else:
                pass

        self.bot.data_manager.commit()
        return True
Esempio n. 2
0
    def handle(self, requirements):
        """
        Checks the db to see for any updated RSI info and updates the db accordingly
        Sets the flair based on the choice
        :param requirements:
        :return:
        """
        for message in requirements['messages']:
            flair = self.bot.data_manager.query(FlairModel).filter(FlairModel.name == message.body).first()
            subscriber = self.bot.data_manager.query(
                SubscriberModel
            ).filter(
                SubscriberModel.reddit_username == message.author
            )
            citizens_api = CitizensAPI()

            for rank, value in citizens_api.titles.items():
                if value == subscriber.highest_rank:
                    highest_rank = rank

            if subscriber.highest_rank >= flair.required_rank:
                subscriber.flair = flair
                self.bot.data_manager.add(subscriber)
                self.bot.send_message(
                    'flair_update_success',
                    user_name=message.author,
                    new_flair=flair.name,
                    highest_rank=citizens_api.get_title(highest_rank)
                )
            else:
                self.bot.send_message(
                    'rank_not_high_enough',
                    user_name=message.author,
                    new_flair=flair.name,
                    highest_rank=citizens_api.get_title(highest_rank)
                )
        self.bot.data_manager.commit()
        return True