Improve markov chain text generator.

This commit is contained in:
AB
2020-02-28 09:53:00 +00:00
parent cded7272d2
commit 40364735e0
2 changed files with 16 additions and 4 deletions

View File

@ -165,8 +165,14 @@ class DataBase:
result = self.execute(sql) result = self.execute(sql)
return(result) return(result)
def get_random_message(self): def get_random_message(self, conf_id=None, count=1):
sql = "SELECT text FROM xxx_message ORDER BY RANDOM() LIMIT 1" if not conf_id:
print('get random message from all DB')
sql = "SELECT text FROM xxx_message ORDER BY RANDOM() LIMIT %s" % count
else:
print('get random message from %s ' % conf_id)
sql = """SELECT x.text FROM xxx_message x LEFT JOIN relations r ON r.msg_id == x.id
WHERE r.conf_id = '%s' ORDER BY RANDOM() DESC LIMIT 1""" % conf_id
result = self.execute(sql) result = self.execute(sql)
return(result[0][0]) return(result[0][0])

View File

@ -196,8 +196,14 @@ class MessageWorker:
count = max_sen count = max_sen
except: except:
count = 5 count = 5
for i in range(0, count): try:
rand_messages.append(self.db.get_random_message()) use_all = bool(msg['message']['text'][8:])
except:
use_all = False
if use_all:
rand_messages.append(self.db.get_random_message(count=count))
else:
rand_messages.append(self.db.get_random_message(conf_id, count=count))
rand_text = " ".join(rand_messages) rand_text = " ".join(rand_messages)
gen_text = get(rand_text) gen_text = get(rand_text)
try: try: