[pybot-commits] CVS: pybot/pybot/modules help.py,1.6,1.7 infopack.py,1.8,1.9
Brought to you by:
niemeyer
From: Gustavo N. <nie...@us...> - 2003-08-25 20:44:42
|
Update of /cvsroot/pybot/pybot/pybot/modules In directory sc8-pr-cvs1:/tmp/cvs-serv30662/pybot/modules Modified Files: help.py infopack.py Log Message: Integrated infopack help into main help. Index: help.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/help.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** help.py 24 Aug 2003 19:30:53 -0000 1.6 --- help.py 25 Aug 2003 20:44:23 -0000 1.7 *************** *** 65,76 **** match = pattern.match(something) if match: - found = 1 if callable(text): ! text(msg, match) elif type(text) in (ListType, TupleType): for line in text: line = line.replace("\n", " ").strip() msg.answer("%:", line) else: text = text.replace("\n", " ").strip() msg.answer("%:", text) --- 65,77 ---- match = pattern.match(something) if match: if callable(text): ! found |= text(msg, match) elif type(text) in (ListType, TupleType): + found = 1 for line in text: line = line.replace("\n", " ").strip() msg.answer("%:", line) else: + found = 1 text = text.replace("\n", " ").strip() msg.answer("%:", text) *************** *** 80,84 **** alltriggers = [] for pattern, text, triggers in self.data: ! alltriggers.extend(triggers) if alltriggers: alltriggers.sort() --- 81,88 ---- alltriggers = [] for pattern, text, triggers in self.data: ! if len(triggers) == 1 and callable(triggers[0]): ! alltriggers.extend(triggers[0]()) ! else: ! alltriggers.extend(triggers) if alltriggers: alltriggers.sort() *************** *** 104,107 **** --- 108,112 ---- pattern = pattern.replace(" ?", r"\s*") pattern = pattern.replace(" ", r"\s+") + pattern = pattern+"\s*$" self.data.append((re.compile(pattern, re.I), text, triggers)) Index: infopack.py =================================================================== RCS file: /cvsroot/pybot/pybot/pybot/modules/infopack.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** infopack.py 24 Aug 2003 19:30:53 -0000 1.8 --- infopack.py 25 Aug 2003 20:44:24 -0000 1.9 *************** *** 49,65 **** def __init__(self, filename): self._filename = filename self._info = {} self._triggers = [] self._masks = [] self._defaults = [] ! self._help = [] - def help(self): - return self._help - def load(self): ! self._info = {} ! self._triggers = [] ! self._masks = [] values = [] file = open(self._filename) --- 49,77 ---- def __init__(self, filename): self._filename = filename + self.reset() + + def reset(self): self._info = {} self._triggers = [] self._masks = [] self._defaults = [] ! self._help_patterns = [] ! self._help_triggers = [] ! self._help_text = [] ! ! def help_match(self, line): ! for pattern in self._help_patterns: ! if pattern.match(line): ! return 1 ! return 0 ! ! def help_triggers(self): ! return self._help_triggers ! ! def help_text(self): ! return self._help_text def load(self): ! self.reset() values = [] file = open(self._filename) *************** *** 80,84 **** self._masks.append(line[2:].rstrip()) elif line[0] == "H": ! self._help.append(line[2:].rstrip()) elif line[0] == "D": value = line[2:].split(":", 1) --- 92,102 ---- self._masks.append(line[2:].rstrip()) elif line[0] == "H": ! self._help_text.append(line[2:].rstrip()) ! elif line[0] == "h": ! tokens = line[2:].rstrip().split(":", 1) ! if tokens[0]: ! self._help_triggers.append(tokens[1]) ! if tokens[1]: ! self._help_patterns.append(re.compile(tokens[0])) elif line[0] == "D": value = line[2:].split(":", 1) *************** *** 88,94 **** def loadcore(self): ! self._info = {} ! self._triggers = [] ! self._masks = [] values = [] file = open(self._filename) --- 106,110 ---- def loadcore(self): ! self.reset() values = [] file = open(self._filename) *************** *** 101,105 **** self._masks.append(line[2:].rstrip()) elif line[0] == "H": ! self._help.append(line[2:].rstrip()) elif line[0] == "D": value = line[2:].split(":", 1) --- 117,127 ---- self._masks.append(line[2:].rstrip()) elif line[0] == "H": ! self._help_text.append(line[2:].rstrip()) ! elif line[0] == "h": ! tokens = line[2:].rstrip().split(":", 1) ! if tokens[0]: ! self._help_triggers.append(tokens[0]) ! if tokens[1]: ! self._help_patterns.append(re.compile(tokens[1])) elif line[0] == "D": value = line[2:].split(":", 1) *************** *** 111,117 **** def unload(self): ! self._info = {} ! self._triggers = [] ! self._phrases = [] def reload(self): --- 133,137 ---- def unload(self): ! self.reset() def reload(self): *************** *** 204,208 **** # infopack <name> ! mm.register_help("infopack (?P<name>\S+)", self.help) mm.register_perm("infopackadmin", PERM_INFOPACKADMIN) --- 224,232 ---- # infopack <name> ! mm.register_help("infopack (?P<name>\S+)", self.help_infopack) ! ! # .+ ! mm.register_help("(?P<something>.+)", self.help_match, ! self.help_triggers) mm.register_perm("infopackadmin", PERM_INFOPACKADMIN) *************** *** 214,221 **** mm.unregister_perm("infopackadmin") ! def help(self, msg, match): name = match.group("name") try: ! help = self.packs[name].help() except KeyError: msg.answer("%:", "There's no infopack with that name.") --- 238,245 ---- mm.unregister_perm("infopackadmin") ! def help_infopack(self, msg, match): name = match.group("name") try: ! help = self.packs[name].help_text() except KeyError: msg.answer("%:", "There's no infopack with that name.") *************** *** 223,226 **** --- 247,267 ---- for line in help: msg.answer("%:", line) + return 1 + + def help_match(self, msg, match): + something = match.group("something") + found = 0 + for pack in self.packs.values(): + if pack.help_match(something): + found = 1 + for line in pack.help_text(): + msg.answer("%:", line) + return found + + def help_triggers(self): + alltriggers = [] + for pack in self.packs.values(): + alltriggers.extend(pack.help_triggers()) + return alltriggers def message(self, msg): |