aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-09-20 18:08:22 +0100
committerGravatar jesopo2019-09-20 18:08:22 +0100
commit3dfee55d42f86014c04d93773980e4314308ddd6 (patch)
tree15f2a9dbd4bff303d7eb81db756e76498c5166d7
parent.lower() markov words (diff)
signature
add !markovfor
-rw-r--r--modules/markov.py31
1 files changed, 24 insertions, 7 deletions
diff --git a/modules/markov.py b/modules/markov.py
index f9d4b989..2a93ffc7 100644
--- a/modules/markov.py
+++ b/modules/markov.py
@@ -43,14 +43,31 @@ class Module(ModuleManager.BaseModule):
@utils.hook("received.command.markov")
@utils.kwarg("channel_only", True)
- def generate(self, event):
- if not event["target"].get_setting("markov", False):
- raise utils.EventError("Markov chains not enabled in this channel")
- out = self._generate(event["target"].id)
- if not out == None:
- event["stdout"].write(out)
+ @utils.kwarg("help", "Generate a markov chain for the current channel")
+ def markov(self, event):
+ self._markov_for(event["target"], event["stdout"], event["stderr"])
+
+ @utils.hook("received.command.markov")
+ @utils.kwarg("min_args", 1)
+ @utils.kwarg("permission", "markovfor")
+ @utils.kwarg("help", "Generate a markov chain for a given channel")
+ @utils.kwarg("usage", "<channel>")
+ def markov_for(self, event):
+ if event["args_split"][0] in event["server"].channels:
+ channel = event["server"].channels.get(event["args_split"][0])
+ self._markov_for(channel, event["stdout"], event["stderr"])
+ else:
+ event["stderr"].write("Unknown channel")
+
+ def _markov_for(self, channel, stdout, stderr):
+ if not channel.get_setting("markov", False):
+ stderr.write("Markov chains not enabled in this channel")
else:
- event["stderr"].write("Failed to generate markov chain")
+ out = self._generate(channel.id)
+ if not out == None:
+ stdout.write(out)
+ else:
+ stderr.write("Failed to generate markov chain")
def _generate(self, channel_id):
first_words = self.bot.database.execute_fetchall("""SELECT third_word,