1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-30 15:04:18 +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)) return string.format_map(SafeDict(**kwargs))
# Generic errors
class ROYALNET: class ROYALNET:
class ERRORS: class ERRORS:
TELEGRAM_NOT_LINKED = "⚠ Il tuo account Telegram non è registrato a Royalnet! Registrati con `/register@royalgamesbot <nomeutenteryg>`." 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 # Matchmaking service strings
class MATCHMAKING: class MATCHMAKING:
TICKER_TEXT = { TICKER_TEXT = {

View file

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