Vediamo la prima funzione utilizzata all’interno del BOT Factotum.

Il suo scopo è quello di prendere in input il testo digitato dall’utente all’interno della chat, spezzare la frase nelle singole parole che la compongono e confrontare le parole con le 3 HOT WORD inserite come variabili all’interno del programma stesso (e quindi a “compile time” e non a “run time”).

    """
    === FORMULA_RISPOSTA ===
    Funzione per analizzare il testo digitato dall'utente nella chat
    e formulare la risposta più appropriata sulla base delle 3 HOT_WORD definite
    a livello di programma
    ========================
    """
    def formula_risposta(bot, chat_id, msg, domanda):
        print("Funzione FORMULA_RISPOSTA: START")
        print("Funzione FORMULA_RISPOSTA: La domanda è ",domanda)

        parole=domanda.split(" ")
        parole_chiave=[]
        risposta=""
        for i in parole:
          if i in HOT_WORD1:
              parole_chiave.append(i)
              bot.sendMessage(chat_id,"Trovata la HOT_WORD1")
          if i in HOT_WORD2:
              parole_chiave.append(i)
              bot.sendMessage(chat_id,"Trovata la HOT_WORD2")
              #bot.sendDocument(chat_id, open('file_name.pdf', 'rb'))
          if i in HOT_WORD3:
              parole_chiave.append(i)
              bot.sendMessage(chat_id,"Trovata la HOT_WORD3")
              #bot.sendMessage(chat_id, "https://www.google.it")

        if len(parole_chiave)==0:
          bot.sendMessage(chat_id,"Spiacente, non sono riuscito a individuare la richiesta.")
        return

Le HOT_WORD non sono altro che liste che contengono le parole chiave che fanno attivare il BOT. Nel BOT di esempio sono descritte nel seguente modo:

HOT_WORD1=["pippo","Pippo","PIPPO"]
HOT_WORD2=["pluto","Pluto","PLUTO"]
HOT_WORD3=["paperino","Paperino","PAPERINO"]