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
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