def handle_reaction(self, reaction, removed=False): emoji = reaction.emoji msg_when = reaction.original_msg_time reacting_user = self.lookup_user(reaction.reacting_user) game = find(lambda g: g.message.timestamp == msg_when, self.games) if game: self.handle_game_reaction(game, reacting_user, emoji, removed) self.maybe_record_stat(msg_when, reaction.channel.name, reacting_user, emoji, removed) self.maybe_record_useroption(reaction, removed, reacting_user)
def remove(self, stat, user, voter): found = find(lambda s: s.has(stat, user, voter), self.stats) if found: self.stats.remove(found)
def add(self, stat, user, voter): already = find(lambda s: s.has(stat, user, voter), self.stats) if already: return self.stats.append(Stats.Stat(stat, user, voter))
def find_game(self, gametime): return find(lambda g: g.message_timestamp == gametime, self.games)
def cancel_game(self, game): found = find(lambda g: g.message_timestamp == game.message.timestamp, self.games) if not found: return self.games.remove(found) self.save()
def add_game(self, game): if find(lambda g: g.message_timestamp == game.message.timestamp, self.games): return self.games.append(game.to_historic()) self.save()