pesterchum/oyoyo/services.py

126 lines
2 KiB
Python

# NickServ basic functions
_nickservfuncs = (
"register",
"group",
"glist",
"identify",
"access",
"drop",
"recover",
"release",
"sendpass",
"ghost",
"alist",
"info",
"list",
"logout",
"status",
"update",
)
# NickServ SET functions
_nickservsetfuncs = (
"display",
"password",
"language",
"url",
"email",
"icq",
"greet",
"kill",
"secure",
"private",
"hide",
"msg",
"autoop",
)
# ChanServ basic functions
_chanservfuncs = (
"register",
"identify",
"sop",
"aop",
"hop",
"vop",
"access",
"levels",
"akick",
"drop",
"sendpass",
"ban",
"unban",
"clear",
"owner",
"deowner",
"protect",
"deprotect",
"op",
"deop",
"halfop",
"dehalfop",
"voice",
"devoice",
"getkey",
"invite",
"kick",
"list",
"logout",
"topic",
"info",
"appendtopic",
"enforce",
)
_chanservsetfuncs = (
"founder",
"successor",
"password",
"desc",
"url",
"email",
"entrymsg",
"bantype",
"mlock",
"keeptopic",
"opnotice",
"peace",
"private",
"restricted",
"secure",
"secureops",
"securefounder",
"signkick",
"topiclock",
"xop",
)
def _addServ(serv, funcs, prefix=""):
def simplecmd(cmd_name):
if prefix:
cmd_name = prefix.upper() + " " + cmd_name
def f(cli, *args):
print(cmd_name, " ".join(args))
# cli.send(cmd_name, serv.name, *args)
return f
for t in funcs:
setattr(serv, t, simplecmd(t.upper()))
class NickServ:
def __init__(self, nick="NickServ"):
self.name = nick
_addServ(self, _nickservfuncs)
_addServ(self, _nickservsetfuncs, "set")
class ChanServ:
def __init__(self, nick="ChanServ"):
self.name = nick
_addServ(self, _chanservfuncs)
_addServ(self, _chanservsetfuncs, "set")