diff --git a/modules/Markov.py b/modules/Markov.py index 1b7f191..85bc7b7 100644 --- a/modules/Markov.py +++ b/modules/Markov.py @@ -54,7 +54,7 @@ class Markov(Module): # set up regexes, for replying to specific stuff trainpattern = '^!markov\s+train\s+(.*)$' learnpattern = '^!markov\s+learn\s+(.*)$' - replypattern = '^!markov\s+reply(\s+(.*)$|$)' + replypattern = '^!markov\s+reply(\s+min=(\d+))?(\s+max=(\d+))?(\s+(.*)$|$)' self.trainre = re.compile(trainpattern) self.learnre = re.compile(learnpattern) @@ -148,11 +148,19 @@ class Markov(Module): match = self.replyre.search(what) if match: + min_size = 15 + max_size = 100 + if match.group(2): - line = match.group(2) - return self._reply_to_line(line) + min_size = int(match.group(2)) + if match.group(4): + max_size = int(match.group(4)) + + if match.group(5) != '': + line = match.group(6) + return self._reply_to_line(line, min_size=min_size, max_size=max_size) else: - return self._reply() + return self._reply(min_size=min_size, max_size=max_size) def _learn_line(self, line): """Create Markov chains from the provided line."""