bot6/commands.py

51 lines
2.0 KiB
Python
Raw Normal View History

2021-09-16 17:35:06 +00:00
from util import Util
class Command:
def __init__(self,sock,config):
2021-09-16 17:35:06 +00:00
self.sock=sock
self.config=config
self.util=Util(sock,config)
2021-09-16 17:35:06 +00:00
def mesg(self,msg): self.util.mesg(msg)
2021-09-19 16:56:17 +00:00
def err_perm(self,level="admin"): mesg("Error: insufficient privileges, you lack {level} access")
2021-09-16 17:35:06 +00:00
def exec_cmd(self,command,extra=[None]):
if extra!=[None]:
eval(f"self.{command}(self.prefix,self.cmd,self.pm,self.line,self.admin,extra)")
else:
eval(f"self.{command}(self.prefix,self.cmd,self.pm,self.line,self.admin)")
def echo(self,prefix,cmd,pm,line,admin):
"""simple echo command"""
self.util.mesg(cmd.split(" ",1)[1])
def help(self,prefix,cmd,pm,line,admin,extra):
mesg=self.mesg
2021-09-21 17:41:31 +00:00
prefixes="\""+"\", \"".join(extra[0])+"\""
2021-09-16 17:35:06 +00:00
enabled_commands=extra[1]
admin_commands=", ".join(extra[2])
try: topic=extra[3]
except IndexError: topic=None
2021-09-21 17:41:31 +00:00
try: self_nick=extra[4]
except IndexError: self_nick=None
2021-09-16 17:35:06 +00:00
abs_topics={
2021-09-21 17:41:31 +00:00
"prefixes":f"available prefixes are {prefixes} or \"{self_nick}\""
2021-09-16 17:35:06 +00:00
}
if topic==None:
mesg(f"available topics: "+", ".join(enabled_commands+list(abs_topics.keys())))
if admin:
mesg(f"admin commands: {admin_commands}")
else:
try: mesg(f"{topic}: "+eval(f"self.{topic}.__doc__"))
2021-09-21 17:41:31 +00:00
# except Exception as e:
except (TypeError,AttributeError):
# mesg(str( e.__class__.__name__ ))
2021-09-16 17:35:06 +00:00
if topic in abs_topics:
mesg(f"{topic}: "+abs_topics[topic])
else:
mesg(f"no help available for \"{topic}\"...")
except Exception as e: mesg(str(e.__class__)+" "+str(e))
2021-09-19 16:56:17 +00:00
def reload(self,prefix,cmd,pm,line,admin):
mesg=self.mesg
if admin:
mesg("reloading...")
self.util.reload()
mesg("reloaded!")
else:
err_perm()