[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
|