78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
import requests,plugin,subprocess
|
|
from math import floor
|
|
|
|
@plugin.group("mbtilde","<operation> [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")
|