Thread: [Pybot-commits] CVS: pybot/pybot/modules help.py,1.1,1.2 messages.py,1.1.1.1,1.2 modulecontrol.py,1.
Brought to you by:
niemeyer
From: Gustavo N. <nie...@us...> - 2001-11-14 15:28:46
|
Update of /cvsroot/pybot/pybot/pybot/modules In directory usw-pr-cvs1:/tmp/cvs-serv24657/pybot/modules Modified Files: help.py messages.py modulecontrol.py permission.py plock.py social.py Log Message: - Added help in messages module. - Added handling of load levels, allowing one to control module loading order at startup. - Reduced load level of help module. Index: help.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/help.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** help.py 2001/11/13 20:39:25 1.1 --- help.py 2001/11/14 15:28:41 1.2 *************** *** 22,26 **** HELP = [ ("""\ ! You may ask for help using "[show] help [about] <keyword>".\ """,) ] --- 22,26 ---- HELP = [ ("""\ ! You may ask for help using "[show] help [about] <something>".\ """,) ] *************** *** 28,32 **** class Help: def __init__(self, bot): ! self.data = options.getsoft("Help.data", {}) mm.register("register_help", self.mm_register_help) mm.register("unregister_help", self.mm_unregister_help) --- 28,32 ---- class Help: def __init__(self, bot): ! self.data = options.getsoft("Help.data", []) mm.register("register_help", self.mm_register_help) mm.register("unregister_help", self.mm_unregister_help) *************** *** 34,38 **** # [show] help [about] <keyword> ! self.re1 = re.compile(r"(?:show\s+)?help(?:\s+about)?(?:\s+(?P<keyword>\S+))?\s*[.!]*$", re.I) def unload(self): --- 34,38 ---- # [show] help [about] <keyword> ! self.re1 = re.compile(r"(?:show\s+)?help(?:\s+about)?(?:\s+(?P<something>.+?))?\s*[.!]*$", re.I) def unload(self): *************** *** 46,58 **** if m: if mm.hasperm(0, msg.server.servername, msg.target, msg.user, "help"): ! keyword = m.group("keyword") ! if keyword: ! text = self.data.get(keyword) else: ! text = HELP ! if text: ! for line in text: msg.answer("%:", *line) ! else: msg.answer("%:", ["No", "Sorry, no", "Sorry, but there's no"], "help about that", [".", "!"]) else: --- 46,62 ---- if m: if mm.hasperm(0, msg.server.servername, msg.target, msg.user, "help"): ! something = m.group("something") ! if something: ! found = 0 ! for pattern, text in self.data: ! if pattern.match(something): ! found = 1 ! for line in text: ! msg.answer("%:", *line) else: ! found = 1 ! for line in HELP: msg.answer("%:", *line) ! if not found: msg.answer("%:", ["No", "Sorry, no", "Sorry, but there's no"], "help about that", [".", "!"]) else: *************** *** 60,73 **** return 0 ! def mm_register_help(self, defret, keywords, text): ! for keyword in keywords: ! self.data[keyword] = text ! def mm_unregister_help(self, defret, keywords): ! for keyword in keywords: ! try: ! del self.data[keyword] ! except KeyError: ! pass def __loadmodule__(bot): --- 64,80 ---- return 0 ! def mm_register_help(self, defret, pattern, text): ! self.data.append((re.compile(pattern, re.I), text)) ! def mm_unregister_help(self, defret, text): ! for i in range(len(self.data)-1,-1,-1): ! if self.data[i][1] == text: ! del self.data[i] ! ! ! # Make sure it is loaded first to let mm.register_help() ! # available to everyone. ! __loadlevel__ = 90 ! def __loadmodule__(bot): Index: messages.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/messages.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** messages.py 2001/11/02 17:20:26 1.1.1.1 --- messages.py 2001/11/14 15:28:41 1.2 *************** *** 17,25 **** # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! from pybot import hooks, options import string import time import re class Messages: def __init__(self, bot): --- 17,32 ---- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! from pybot import hooks, options, mm import string import time import re + HELP = [ + ("""\ + You may leave a message to another user with "[priv[ate]] message (to|for) \ + <nick>: <message>". I'll let <nick> know about your message when he join \ + or speak something in one of the channels I'm in.\ + """,)] + class Messages: def __init__(self, bot): *************** *** 31,34 **** --- 38,44 ---- # Match '[priv[ate]] message (to|for) <nick>: <message>' self.re1 = re.compile(r"(?P<private>priv(?:ate)?\s+)?message\s+(?:to|for)\s+(?P<nick>\S+?)\s*:\s+(?P<message>.*)$", re.I) + + # Match '[leav(e|ing)] message[s]' + mm.register_help(0, "(?:leav(?:e|ing)\s+)?messages?", HELP) def unload(self): Index: modulecontrol.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/modulecontrol.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** modulecontrol.py 2001/11/02 17:20:23 1.1.1.1 --- modulecontrol.py 2001/11/14 15:28:41 1.2 *************** *** 23,28 **** self.modules = options.gethard("ModuleControl.modules", []) hooks.register("Message", self.message) ! for module in self.modules: ! modls.load(module) def unload(self): --- 23,27 ---- self.modules = options.gethard("ModuleControl.modules", []) hooks.register("Message", self.message) ! modls.loadlist(self.modules) def unload(self): Index: permission.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/permission.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** permission.py 2001/11/02 17:20:26 1.1.1.1 --- permission.py 2001/11/14 15:28:41 1.2 *************** *** 37,41 **** def message(self, msg): var = [] ! if msg.match(var, 6, "%", "give", 0, "~", ["permission", "perm"], "to", [("user", 1, "~"), None], [(["on", "at", None], [(2, "~this", "channel"), ("channel", 3, "^[#&+!][^,^G]+$")]), None], [(["on", "at", None], [(4, "~this", "server"), ("server", 5, "~")]), None], ["!", ".", None]): if self.mm_hasperm(0, msg.server.servername, msg.target, msg.user, None): if var[1] or var[2] or var[3] or var[4]: --- 37,41 ---- def message(self, msg): var = [] ! if msg.match(var, 6, "%", "give", 0, "~", ["permission", "perm"], "to", [("user", 1, "~"), None], [(["on", "at", None], [(2, "~this", "channel"), ("channel", 3, "^[#&+!][^,^G]+$")]), None], [(["on", "at", "to", None], [(4, "~this", "server"), ("server", 5, "~")]), None], ["!", ".", None]): if self.mm_hasperm(0, msg.server.servername, msg.target, msg.user, None): if var[1] or var[2] or var[3] or var[4]: Index: plock.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/plock.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plock.py 2001/11/13 20:39:25 1.2 --- plock.py 2001/11/14 15:28:41 1.3 *************** *** 83,91 **** self.re5 = re.compile(r"plock\s+(?P<package>[\w_-]+(?:(?:\s*,?\s*and\s+|[, ]+)[\w_-]+)*)\s*(?:!*\?[?!]*)$") ! mm.register_help(0, ["plock", "unplock"], HELP) def unload(self): hooks.unregister("Message", self.message) ! mm.unregister_help(0, ["plock", "unplock"]) def getnick(self, server, email): --- 83,92 ---- self.re5 = re.compile(r"plock\s+(?P<package>[\w_-]+(?:(?:\s*,?\s*and\s+|[, ]+)[\w_-]+)*)\s*(?:!*\?[?!]*)$") ! # Match '[un]plock[ing] | <package|pkg> lock[ing] ! mm.register_help(0, "(?:un)?plock(?:ing)?|(?:package|pkg)\s+lock(?:ing)?", HELP) def unload(self): hooks.unregister("Message", self.message) ! mm.unregister_help(0, HELP) def getnick(self, server, email): Index: social.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/social.py,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** social.py 2001/11/02 17:20:24 1.1.1.1 --- social.py 2001/11/14 15:28:41 1.2 *************** *** 33,38 **** self.re2 = re.compile(r'(?P<nick>\w+)\s*!+$', re.I) ! # Match '[thank[']s|thank you] [!|.]' ! self.re3 = re.compile(r'thank(?:\'?s)?\s+you(?:\s+(?P<nick>\w+))\s*[!.]*', re.I) # Match 'are you ok?|how are you [doing]?' --- 33,38 ---- self.re2 = re.compile(r'(?P<nick>\w+)\s*!+$', re.I) ! # Match '[thank[']s|thank you|thx|tnk[']s] [!|.]' ! self.re3 = re.compile(r'(?:thank|thx|tnk)(?:\'?s|\s+you)(?:\s+(?P<nick>\w+))\s*[!.]*', re.I) # Match 'are you ok?|how are you [doing]?' *************** *** 51,54 **** --- 51,57 ---- self.re8 = re.compile(r'.*(?:gay|stupid|fuck|idiot|imbecile|cretin)', re.I) + # Match 'h[e|u|a]h' + self.re9 = re.compile(r'h[eua]h', re.I) + def unload(self): hooks.unregister("Message", self.message) *************** *** 96,99 **** --- 99,106 ---- if self.re8.match(msg.line): msg.answer("%:", ["Be polite while talking to me!", "I should talk to your mother!", "Hey! What's this?", "I'll pretend to be blind."]) + return 0 + + if self.re9.match(msg.line): + msg.answer("%:", ["Heh", "Huh"], ["?", "!?", "!?!?", ".."]) return 0 |