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)
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 ")
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
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)
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)