cosmicbot/commands/wrote.py

34 lines
856 B
Python

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 <name/number>")
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))