import requests,plugin,subprocess from math import floor @plugin.group("mbtilde"," [args]") def mbtilde(bot,channel,nick,subcmd,*args): for arg in args: if (arg.isdigit() and int(arg)>100 and subcmd not in ("factor","parrot")): bot.say(channel,"no u") return True if subcmd in "add sub mult div mod pow".split() and len(args)!=2: return True elif subcmd in "unscramble factor".split() and len(args)!=1: return True return False @mbtilde.command("help") def help(bot,channel,nick,subcmd,*args): bot.say(channel,"{}: Usage: !{} <{}>".format(nick,bot.cmd,"|".join(sorted(list(mbtilde.subcmds.keys()))))) @mbtilde.command("ask") def ask(bot,channel,nick,subcmd,*args): bot.say(channel,"!tilde") @mbtilde.command("parrot") def parrot(bot,channel,nick,subcmd,*args): bot.say(channel," ".join(args)) @mbtilde.command("add") def add(bot,channel,nick,subcmd,*args): bot.say(channel,str(int(args[0])+int(args[1]))) @mbtilde.command("sub") def sub(bot,channel,nick,subcmd,*args): bot.say(channel,str(int(args[0])-int(args[1]))) @mbtilde.command("mult") def mult(bot,channel,nick,subcmd,*args): bot.say(channel,str(int(args[0])*int(args[1]))) @mbtilde.command("div") def div(bot,channel,nick,subcmd,*args): bot.say(channel,str(floor(int(args[0])/int(args[1])))) @mbtilde.command("mod") def mod(bot,channel,nick,subcmd,*args): bot.say(channel,str(int(args[0])%int(args[1]))) @mbtilde.command("pow") def pow(bot,channel,nick,subcmd,*args): bot.say(channel,str(int(args[0])**int(args[1]))) @mbtilde.command("alphabetize") def alphabetize(bot,channel,nick,subcmd,*args): num = int(args[0])-1 texts = [args[x] for x in range(1,4)] texts.sort() bot.say(channel,texts[num]) @mbtilde.command("unscramble") def unscramble(bot,channel,nick,subcmd,*args): r = requests.get("http://anagramica.com/best/{}".format(args[0])) r.raise_for_status() r = r.json() if len(r["best"])==0: bot.say(channel,args[0]) # elif len(r["best"])==1: # bot.say(channel,r["best"][0]) else: bot.say(channel,r["best"][0]) @mbtilde.command("factor") def factor(bot,channel,nick,subcmd,*args): bot.say(channel,subprocess.check_output(["/usr/bin/factor",str(args[0])]).decode("ascii").split(": ")[1].replace(" ",",").strip()) @mbtilde.command("score") def score(bot,channel,nick,subcmd,*args): bot.say(channel,"!tildescore")