-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmarkov.py
executable file
·42 lines (39 loc) · 1.3 KB
/
markov.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import core as octeon
import markovify as markov
PLUGINVERSION = 2
# Always name this variable as `plugin`
# If you dont, module loader will fail to load the plugin!
plugin = octeon.Plugin()
file = open('./markovModel.json')
model = markov.NewlineText.from_json(file.read())
file.close()
tempmodel, saveindex = '', 0
@plugin.message(regex=".*") # You pass regex pattern
def generate_chain(bot, update):
global model
global saveindex
if(update.message.text.startswith('/')):
return None
tempmodel = markov.NewlineText(update.message.text)
model = markov.combine([model, tempmodel])
saveindex += 1
if saveindex >= 9:
save()
return None
@plugin.command(command="/markov",
description="generates a message with markov chains",
inline_supported=False,
hidden=False)
def generate_message(bot, update, user, args):
generatedmessage = model.make_sentence(tries = 50)
if generatedmessage == None:
return octeon.message(text="message generation failed")
return octeon.message(text = generatedmessage)
def save():
global saveindex
saveindex = 0
json = model.to_json()
file = open('./markovModel.json','w')
file.write(json)
file.close()
return None