1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 19:44:20 +00:00

Fix Markov errors

This commit is contained in:
Steffo 2019-01-28 20:45:31 +01:00
parent cb15abe56c
commit cd82f3a8af
2 changed files with 26 additions and 13 deletions

View file

@ -10,11 +10,21 @@ def safely_format_string(string, **kwargs):
return string.format_map(SafeDict(**kwargs))
# Generic errors
class ROYALNET:
class ERRORS:
TELEGRAM_NOT_LINKED = "⚠ Il tuo account Telegram non è registrato a Royalnet! Registrati con `/register@royalgamesbot <nomeutenteryg>`."
# Markov strings
class MARKOV:
class ERRORS:
NO_MODEL = "⚠ La catena di Markov non è disponibile."
GENERATION_FAILED = "⚠ <code>markovify</code> non è riuscito a generare una frase. Prova di nuovo?\n E' un'avvenimento sorprendentemente raro..."
SPECIFIC_WORD_FAILED = "⚠ <code>markovify</code> non è riuscito a generare una frase partendo da questa parola. Provane una diversa..."
MISSING_WORD = "⚠ La parola specificata non è presente nella catena di Markov. Provane una diversa..."
# Matchmaking service strings
class MATCHMAKING:
TICKER_TEXT = {

View file

@ -653,25 +653,28 @@ def cmd_calendar(bot: Bot, update: Update):
@catch_and_report
def cmd_markov(bot: Bot, update: Update):
if model is None:
bot.send_message(update.message.chat.id, "⚠️ Il modello Markov non è disponibile.")
bot.send_message(update.message.chat.id, strings.MARKOV.ERRORS.NO_MODEL)
return
try:
_, first_word = update.message.text.split(" ", 1)
except ValueError:
first_word = update.message.text.split(" ")[1]
except IndexError:
# Any word
sentence = model.make_sentence(tries=1000)
if sentence is None:
bot.send_message(update.message.chat.id, "⚠ Complimenti! Hai vinto la lotteria di Markov!\n"
"O forse l'hai persa.\n"
"Non sono riuscito a generare una frase, riprova.")
bot.send_message(update.message.chat.id, strings.MARKOV.ERRORS.GENERATION_FAILED)
return
bot.send_message(update.message.chat.id, sentence)
else:
return
# Specific word
try:
sentence = model.make_sentence_with_start(first_word, tries=1000)
if sentence is None:
bot.send_message(update.message.chat.id, "⚠ Non è stato possibile generare frasi partendo da questa"
" parola.")
return
bot.send_message(update.message.chat.id, sentence)
except KeyError:
bot.send_message(update.message.chat.id, strings.MARKOV.ERRORS.MISSING_WORD)
return
if sentence is None:
bot.send_message(update.message.chat.id, strings.MARKOV.ERRORS.SPECIFIC_WORD_FAILED)
return
bot.send_message(update.message.chat.id, sentence)
@catch_and_report