import plugin from dictdata import DictData wrote = DictData("wrote.json") def get_wordcount(nick): return wrote.get(nick,0) @plugin.command("wrote") def _wrote(bot,channel,nick,*args): args = list(args) if len(args)!=1: bot.say(channel,"Usage: !wrote ") if args[0].isdigit(): wrote[nick]=get_wordcount(nick)+int(args[0]) else: bot.say(channel,"{}: _{}_ has written {!s} words".format(nick,args[0],get_wordcount(args[0]))) @plugin.command("highscore") def highscore(bot,channel,nick,*args): count = 5 if len(args)==1: c = int(args[0]) if c>10: # cap count at 10 c = 10 elif c<1: # floor count at 1 c = 1 check = [(k,wrote[k]) for k in wrote.value.keys()] check.sort(key=lambda x: -x[1]) ret = [] for user in check[:5]: ret.append("_{}_ ({!s} words)".format(*user)) bot.say(channel,nick+": "+", ".join(ret))