# 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")