Example #1
0
def state_conferma_input(user, message):
    bot_turn = message is None
    posizioneScelta = get_user_var_value(user, 'VETTORE_DATI', None)
    data = get_user_var_value(user, 'DATA', None)
    gg = get_user_var_value(user, 'POS_SELEZ', None)
    posizioneScelta = posizioneScelta[gg]
    oreA = get_user_var_value(user, 'ORA_INIZIO', None)
    oreB = get_user_var_value(user, 'ORA_FINE', None)

    if bot_turn:
        reply_text = "Confermi di voler prenotare la stanza {} per il giorno {} dalle ore {} alle ore {}:".format(
            posizioneScelta, data, oreA, oreB)
        keyboard = [['SI'], ['NO']]
        send_message(user, reply_text, keyboard)
    else:
        if message.text:
            input_text = message.text
            if input_text == "SI":
                direct_user_to_state(user, 'valida_mail')
            else:
                send_message(user, 'Ti faccio rinserire i dati')
                direct_user_to_state(user, 'data')
        else:
            reply_text = 'Input non riconosciuto, usa la tastiera.'
            send_message(user, reply_text)
Example #2
0
def state_call_metodo(user, message):
    data = get_user_var_value(user, 'DATA', None)
    ora = get_user_var_value(user, 'ORA_INIZIO', None)
    oraFine = get_user_var_value(user, 'ORA_FINE', None)

    dati = asd.ritorna_date(data, ora, oraFine)
    send_message(user, dati)
    if len(dati) > 0:
        direct_user_to_state(user, 'input_scelto')
        set_user_var_value(user, 'VETTORE_DATI', dati)
    else:
        send_message(user, "DATI NON PRESENTI ")
Example #3
0
def state_0(user, message):

    bot_turn = message is None
    if bot_turn:
        registrato = get_user_var_value(user, "REGISTRATO", False)
        if registrato:
            direct_user_to_state(user, 'questionario_associazione')
        else:
            direct_user_to_state(user, 'registrazione_nome')
    else:
        pass
Example #4
0
def state_seconda_conferma(user, message):
    bot_turn = message is None
    stanza_scelta = get_user_var_value(user, 'DATA_NUMERO_DUE', None)
    numero_stanza = get_user_var_value(user, 'DATA_INDICE_DUE', None)

    if bot_turn:
        reply_text = "Confermi di voler prenotare la stanza numero {} per il giorno {} ?:".format(
            numero_stanza, stanza_scelta)
        keyboard = [['SI'], ['NO']]
        send_message(user, reply_text, keyboard)
    else:
        if message.text:
            input_text = message.text
            if input_text == "SI":
                pass
            else:
                pass
        else:
            reply_text = 'Input non riconosciuto, usa la tastiera.'
            send_message(user, reply_text)
def rimuovi_ricetta_da_preferiti(user, ricetta_id):
    r = get_ricetta(ricetta_id)
    if r is None:
        reply_text = "Nessuna ricetta trovata."
    else:
        ricette_preferite = get_user_var_value(user,
                                               'RICETTE_PREFERITE',
                                               init_value=[])
        ricette_preferite.remove(ricetta_id)
        ricette_preferite = sorted(set(ricette_preferite))
        reply_text = ('Ricetta rimossa da preferiti ({}).'.format(r['Title']))
    send_message(user, reply_text, markdown=True)
def aggiungi_ricetta_in_preferiti(user, ricetta_id):
    r = get_ricetta(ricetta_id)
    if r is None:
        reply_text = "Nessuna ricetta trovata."
    else:
        ricette_preferite = get_user_var_value(user,
                                               'RICETTE_PREFERITE',
                                               init_value=[])
        ricette_preferite.append(ricetta_id)
        ricette_preferite = sorted(set(ricette_preferite))
        reply_text = ('Ricetta aggiunta in preferiti ({}).'.format(r['Title']))
    send_message(user, reply_text, markdown=True)
def send_ricetta(user, ricetta_id):
    r = get_ricetta(ricetta_id)
    if r is None:
        reply_text = "Nessuna ricetta trovata."
    else:
        ricette_preferite = get_user_var_value(user,
                                               'RICETTE_PREFERITE',
                                               init_value=[])
        aggiungi_rimuovi = '/rimuoviRicettaDaPreferiti' if r[
            'RecipeID'] in ricette_preferite else '/aggiungiRicettaInPreferiti'
        reply_text = ("*Titolo*: {}\n"
                      "*Ingredienti*: {}\n"
                      "*Preparatione*: {}\n\n"
                      "{}{}").format(r['Title'], r['Ingredient'],
                                     r['Preparation'], aggiungi_rimuovi,
                                     r['RecipeID'])
    send_message(user, reply_text, markdown=True)
def state_preferiti(user, message):
    bot_turn = message is None
    if bot_turn:
        ricette_preferite = get_user_var_value(user, 'RICETTE_PREFERITE')
        if ricette_preferite:
            ricette_trovate = []
            for r_id in ricette_preferite:
                r = get_ricetta(r_id)
                ricette_trovate.append('• /ricetta{} {}'.format(
                    r['RecipeID'], r['Title']))
            ricette_trovate_str = '\n'.join(ricette_trovate)
            reply_text = "Ricette preferite:\n\n{}\n\nPremi su una ricetta per visualizzarla.".format(
                ricette_trovate_str)
            keyboard = [['🗑 Reset preferiti'], ['🔙 Indietro']]
        else:
            reply_text = 'Nessuna ricetta preferita trovata'
            keyboard = [['🔙 Indietro']]
        send_message(user, reply_text, keyboard)
    else:
        if message.text:
            input_text = message.text
            if input_text == '🔙 Indietro':
                direct_user_to_state(user, '0')
            elif input_text == '🗑 Reset preferiti':
                set_user_var_value(user, 'RICETTE_PREFERITE', [])
                reply_text = "Ricette preferite eliminate."
                send_message(user, reply_text)
                direct_user_to_state(user, '0')
            elif input_text.startswith('/aggiungiRicettaInPreferiti'):
                ricetta_id = input_text.split('/aggiungiRicettaInPreferiti')[1]
                aggiungi_ricetta_in_preferiti(user, ricetta_id)
                repeatState(user)
            elif input_text.startswith('/rimuoviRicettaDaPreferiti'):
                ricetta_id = input_text.split('/rimuoviRicettaDaPreferiti')[1]
                rimuovi_ricetta_da_preferiti(user, ricetta_id)
                repeatState(user)
            elif input_text.startswith('/ricetta'):
                ricetta_id = input_text.split('/ricetta')[1]
                send_ricetta(user, ricetta_id)
            else:
                reply_text = 'Input non riconosciuto, usa la tastiera.'
                send_message(user, reply_text)
        else:
            reply_text = 'Input non riconosciuto, usa la tastiera.'
            send_message(user, reply_text)
Example #9
0
def state_lista_strutture_ORE_finale(user, message):
    bot_turn = message is None
    if bot_turn:
        reply_text = "Inserisci ora finale per la ricerca [00:00]"
        send_message(user, reply_text)
    else:
        if message.text:
            input_text = message.text
            if controllo_ora(user, input_text):

                oraInizialeRicerca = get_user_var_value(
                    user, 'DATA_RICERCA_STRUTTURA', None)
                oraFinaleRicerca = input_text
                send_message(user, 'Sto elaborando la richiesta...')
                vettoreFull = asd.ricerca_valori_dati_iniziali(
                    oraInizialeRicerca, oraFinaleRicerca)
                messaggio = ""
                stanze_giorno_str = ""
                for stanze_giorno in vettoreFull:
                    try:
                        valore_data = str.split('/')
                        invio = "Data " + stanze_giorno
                        send_message(user, invio)
                    except:
                        stanze_giorno_str = ", ".join(stanze_giorno) + "\n\n"
                    if len(messaggio) > 1000:
                        send_message(user, messaggio)
                        messaggio = ""
                    messaggio += stanze_giorno_str
                if len(messaggio) > 0:
                    send_message(user, messaggio)
                direct_user_to_state(user, 'prendi_seconda_data')
            else:
                direct_user_to_state(user, 'lista_strutture_ORE_finale')
        else:
            reply_text = 'Input non riconosciuto, usa la tastiera.'
            send_message(user, reply_text)