def richest(self, event): top_10 = utils.top_10( self._all_coins(event["server"]), convert_key=lambda nickname: event["server"].get_user(nickname ).nickname, value_format=lambda value: self._coin_str_human(value)) event["stdout"].write("Richest users: %s" % ", ".join(top_10))
def wordiest(self, event): date_str = "" if event["spec"][0]: date1 = utils.datetime.format.date_human(event["spec"][0]) date2 = utils.datetime.format.date_human( event["spec"][1] or utils.datetime.utcnow()) date_str = f" ({date1} to {date2})" words = self._channel_between_dates(event["target"], date1, date2) else: words = self._channel_all(event["target"]) user_words = {} for user_id, word_count in words: _, nickname = self.bot.database.users.by_id(user_id) if not nickname in user_words: user_words[nickname] = 0 user_words[nickname] += word_count top_10 = utils.top_10(user_words, convert_key=lambda nickname: self._get_nickname( event["server"], event["target"], nickname)) event["stdout"].write( "wordiest in %s%s: %s" % (str(event["target"]), date_str, ", ".join(top_10)))
def wordiest(self, event): """ :help: Show wordiest users :usage: [channel] """ channel_query = None word_prefix = "" if event["args_split"]: channel_query = event["args_split"][0].lower() word_prefix = " (%s)" % channel_query words = event["server"].find_all_user_channel_settings("words") user_words = {} for channel_name, nickname, word_count in words: if not channel_query or channel_name == channel_query: if not nickname in user_words: user_words[nickname] = 0 user_words[nickname] += word_count top_10 = utils.top_10( user_words, convert_key=lambda nickname: utils.prevent_highlight(event[ "server"].get_user(nickname).nickname)) event["stdout"].write("wordiest%s: %s" % (word_prefix, ", ".join(top_10)))
def richest(self, event): """ :help: Show the top 10 richest users """ top_10 = utils.top_10(self._all_coins(event["server"]), convert_key=lambda nickname: utils.prevent_highlight( event["server"].get_user(nickname).nickname), value_format=lambda value: self._coin_str_human(value)) event["stdout"].write("Richest users: %s" % ", ".join(top_10))
def richest(self, event): """ :help: Show the top 10 richest users """ top_10 = utils.top_10(self._all_coins(event["server"]), convert_key=lambda nickname: utils.prevent_highlight( event["server"].get_user(nickname).nickname), value_format=lambda value: self._coin_str_human(value)) event["stdout"].write("Richest users: %s" % ", ".join(top_10))
def word_users(self, event): word = event["args_split"][0].lower() if word in event["server"].get_setting("tracked-words", []): word_users = event["server"].get_all_user_settings( "word-%s" % word, []) items = [(word_user[0], word_user[1]) for word_user in word_users] word_users = dict(items) top_10 = utils.top_10(word_users, convert_key=lambda nickname: self._get_nickname( event["server"], event["target"], nickname)) event["stdout"].write("Top '%s' users: %s" % (word, ", ".join(top_10))) else: event["stderr"].write("That word is not being tracked")
def richest(self, event): """ :help: Show the top 10 richest users """ all_coins = event["server"].get_all_user_settings("coins", []) all_coins = list( filter(lambda coin: decimal.Decimal(coin[1]), all_coins)) items = [(coin[0], decimal.Decimal(coin[1])) for coin in all_coins] all_coins = dict(items) top_10 = utils.top_10( all_coins, convert_key=lambda nickname: utils.prevent_highlight(event[ "server"].get_user(nickname).nickname), value_format=lambda value: "{0:.2f}".format(value)) event["stdout"].write("Richest users: %s" % ", ".join(top_10))
def word_users(self, event): """ :help: Show who has used a tracked word the most :usage: <word> """ word = event["args_split"][0].lower() if word in event["server"].get_setting("tracked-words", []): word_users = event["server"].get_all_user_settings( "word-%s" % word, []) items = [(word_user[0], word_user[1]) for word_user in word_users] word_users = dict(items) top_10 = utils.top_10(word_users, convert_key=lambda nickname: event["server"].get_user(nickname).nickname) event["stdout"].write("Top '%s' users: %s" % (word, ", ".join(top_10))) else: event["stderr"].write("That word is not being tracked")
def _duck_stats(self, server, setting, description, channel_query): channel_query_str = "" if not channel_query == None: channel_query = server.irc_lower(channel_query) channel_query_str = " in %s" % channel_query stats = server.find_all_user_channel_settings(setting) user_stats = {} for channel, nickname, value in stats: if not channel_query or channel_query == channel: if not nickname in user_stats: user_stats[nickname] = 0 user_stats[nickname] += value top_10 = utils.top_10(user_stats, convert_key=lambda nickname: server.get_user(nickname).nickname) return "Top duck %s%s: %s" % (description, channel_query_str, ", ".join(top_10))