diff options
| author | 2019-09-20 17:18:39 +0100 | |
|---|---|---|
| committer | 2019-09-20 17:18:47 +0100 | |
| commit | 81cf1ab58f4f1cb385196ea4b61d5b95561833ea (patch) | |
| tree | 9c72849f42166d2b55d2b02eec7b138ba97ce474 /modules | |
| parent | '_on_load' -> 'on_load' (diff) | |
| signature | ||
add a command to generate markov chains (!markov)
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/markov.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/modules/markov.py b/modules/markov.py index 29aa1ab9..888768ef 100644 --- a/modules/markov.py +++ b/modules/markov.py @@ -43,7 +43,18 @@ class Module(ModuleManager.BaseModule): words, frequencies = list(zip(*words)) return random.choices(words, weights=frequencies, k=1)[0] - def generate(self, channel_id): + @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) + else: + event["stderr"].write("Failed to generate markov chain") + + def _generate(self, channel_id): first_words = self.bot.database.execute_fetchall("""SELECT third_word, frequency FROM markov WHERE channel_id=? AND first_word IS NULL AND second_word IS NULL AND third_word NOT NULL""", [channel_id]) |
