from db import MatchmakingStatus
class SafeDict(dict):
def __missing__(self, key):
return '' + key + '
'
def safely_format_string(string, **kwargs):
return string.format_map(SafeDict(**kwargs))
# Generic telegram errors
class TELEGRAM:
class ERRORS:
CRITICAL_ERROR = "β’ ERRORE CRITICO!\nIl bot ha ignorato il comando.\nUna segnalazione di errore Γ¨ stata automaticamente mandata a @Steffo.\n\nDettagli dell'errore:\n
{exc_info}" TELEGRAM_NOT_LINKED = "β Il tuo account Telegram non Γ¨ registrato a Royalnet! Registrati con `/register@royalgamesbot
/register {username}
"
NOT_FOUND = "β Non esiste nessun account Royalnet con quel nome."
ALREADY_EXISTING = "β Questo account Γ¨ giΓ collegato a un account Royalnet."
# Markov strings
class MARKOV:
class ERRORS:
NO_MODEL = "β La catena di Markov non Γ¨ disponibile."
GENERATION_FAILED = "β markovify
non Γ¨ riuscito a generare una frase. Prova di nuovo?\n E' un'avvenimento sorprendentemente raro..."
SPECIFIC_WORD_FAILED = "β markovify
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 = {
"match_ready": "π΅ Hai detto che sei pronto per giocare!",
"match_wait_for_me": "π Hai chiesto agli altri di aspettarti.",
"match_maybe": "β Hai detto che forse ci sarai.",
"match_someone_else": "π¬ Hai detto che vuoi aspettare che venga qualcun altro.",
"match_ignore": "β Non hai intenzione di partecipare.",
"match_close": "π© Hai notificato tutti che la partita sta iniziando.",
"match_cancel": "π Hai annullato la partita."
}
GAME_START = {
MatchmakingStatus.READY: "π΅ Che {match_title} abbia inizio!",
MatchmakingStatus.WAIT_FOR_ME: "π Sbrigati! {match_title} sta per iniziare!",
MatchmakingStatus.SOMEONE_ELSE: "β {match_title} sta iniziando. Se vuoi partecipare, fai in fretta!",
MatchmakingStatus.MAYBE: "π¬ {match_title} sta per iniziare, e ci sono {active_players} giocatori."
}
BUTTONS = {
"match_ready": "π΅ Sono pronto per iniziare!",
"match_wait_for_me": "π Ci sarΓ², aspettatemi!",
"match_maybe": "β Forse vengo, se non ci sono fate senza di me.",
"match_someone_else": "π¬ Solo se viene anche qualcun altro...",
"match_ignore": "β Non ci sarΓ².",
"match_close": "π© ADMIN: Avvia la partita",
"match_cancel": "π ADMIN: Annulla la partita"
}
class ERRORS:
INVALID_SYNTAX = "β Sintassi del comando errata.\nSintassi: /mm [minplayers-][maxplayers] per {gamename} \\n[descrizione]" NOT_ADMIN = "β Non sei il creatore di questo match!" MATCH_CLOSED = "β Il matchmaking per questa partita Γ¨ terminato!" UNAUTHORIZED = "β Non sono autorizzato a inviare messaggi a {mention}.\nPer piacere, {mention}, inviami un messaggio in privata!" # Diario search class DIARIO_SEARCH: class ERRORS: INVALID_SYNTAX = "β Non hai specificato un termine da cercare!\nSintassi:
/search {termine}"