def on_event(cls, page, user, event):
     t = i18n.translator(user)
     # Get the response
     response = event.quick_reply_payload
     # If the answer is not valid
     if not response:
         page.send(
             user.facebook_id,
             t("Il faut que tu répondes en utilisant les boutons!"),
             quick_replies=cls.buttons,
         )
         return Transition.STAY
     if response != "BUTTONS_OK":
         page.send(
             user.facebook_id,
             t("Tu dois cliquer sur le bouton «Ok»"),
             quick_replies=cls.buttons,
         )
         return Transition.STAY
     page.send(
         user.facebook_id,
         t("Voilà, tu sais maintenant répondre en utilisant les boutons, on peut donc y aller avec les questions."
           ),
     )
     return Transition.MOVE("recruitment.Age")
예제 #2
0
 def on_event(cls, page, user, event):
     t = i18n.translator(user)
     page.send(
         user.facebook_id,
         t("Salut {name} 🤗 Lorsque tu auras des envies fortes de fumer je serai là pour te donner une aide d'urgence. Tu peux venir vers moi tous les jours de la semaine à n'importe quelle heure du jour ou de la nuit!", {"name": user.first_name}) + "\n\n" + t("Mais n'oublie pas que je suis un robot conversationnel, ce qui veut dire que bien que je puisse t'apporter une aide d'urgence en quelques secondes, je reste limité dans la compréhension du language. Si tu as des questions à poser, ou si tu vois que je ne peux pas t'aider, il faut te tourner vers le groupe Facebook! 🙂"),
     )
     return Transition.MOVE("cessation.Initialize")
예제 #3
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     page.send(user.facebook_id, t(random.choice(cls.texts)))
     with cls.storage(user) as s:
         s["helped"][-1]["stop_datetime"] = datetime.now().isoformat()
     time.sleep(2)
     return Transition.MOVE("cessation.RequireHelp")
예제 #4
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     sep = "-" * 50 + "\n"
     page.send(
         user.facebook_id, sep + t(random.choice(cls.texts)), quick_replies=i18n.translate_buttons(cls.buttons, lang=user.language)
     )
     return Transition.STAY
 def on_event(cls, page, user, event):
     t = i18n.translator(user)
     page.send(
         user.facebook_id,
         (t("Bienvenue {name}, je suis HELP. 👋",
            {"name": user.first_name})),
     )
     return Transition.MOVE("recruitment.Welcome")
예제 #6
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     page.send(
         user.facebook_id,
         t(random.choice(cls.texts)) + " " + t(random.choice(cls.say_it)),
         quick_replies=i18n.translate_buttons([random.choice(cls.buttons)], lang=user.language),
     )
     return Transition.STAY
예제 #7
0
 def to_question(cls, proposed, user, num=5):
     t = i18n.translator(user)
     question = "\n".join(
         ["{}) {}".format(chr(97 + i), t(proposed[i][1])) for i in range(num)]
     )
     question += '\n'
     question += t("Autre) Je m'engage à m'occuper autrement durant 4 minutes")
     return question
예제 #8
0
 def on_event(cls, page, user, event):
     t = i18n.translator(user)
     # Get the response
     response = event.message.get("text")
     with cls.storage(user) as s:
         s["helped"][-1]["distraction_other"] = response
     page.send(user.facebook_id, t(random.choice(cls.thanks)))
     time.sleep(2)
     return Transition.MOVE("cessation.Closing")
예제 #9
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     proposed = random.sample(cls.choices, len(cls.choices))
     with cls.storage(user) as s:
         s["last_proposed"] = proposed
     page.send(
         user.facebook_id,
         t(random.choice(cls.texts)) + "\n\n" + cls.to_question(proposed, user),
         quick_replies=cls.to_buttons(proposed, user),
     )
     return Transition.STAY
예제 #10
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     sep = "(¯`·._.·(¯`·._.·(¯`·._.··._.·´¯)·._.·´¯)·._.·´¯)"
     advice = t(random.choice(cls.advices))
     keyword = t('Conseil')
     text = "{sep}\n\n{0}:\n\n{1}\n\n{sep}".format(keyword, advice, sep=sep)
     page.send(user.facebook_id, text)
     with cls.storage(user) as s:
         s["helped"][-1]["motivator_content"] = advice
     time.sleep(2)
     return Transition.MOVE("cessation.Distract")
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     with cls.storage(user) as s:
         score = fagerstrom.compute_score(s)
         category = fagerstrom.compute_category(s)
         s["fs_result_score"] = score
         s["fs_result_category"] = category
     page.send(
         user.facebook_id,
         t(
             "Certaines de ces questions font partie du test de Fagerström, qui mesure la dépendance à la nicotine. Selon tes réponses tu es dans la catégorie:\n\n\t→ {category}",
             {"category": t(category)},
         ),
     )
     return Transition.MOVE("recruitment.End")
예제 #12
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     sep = "ƸӜƷ.•°*”˜˜”*°•.ƸӜƷ•°*”˜˜”*°•.ƸӜƷ"
     selected = random.choice(cls.quotes)
     quote = t(selected[0])
     author = selected[1]
     if author:
         text = "{sep}\n\n«{0}»\n\n[{1}]\n\n{sep}".format(quote, author, sep=sep)
     else:
         text = "{sep}\n\n«{0}»\n\n{sep}".format(quote, sep=sep)
     page.send(user.facebook_id, text)
     with cls.storage(user) as s:
         s["helped"][-1]["motivator_content"] = quote
     time.sleep(2)
     return Transition.MOVE("cessation.Distract")
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     page.send(
         user.facebook_id,
         t("Avant d'aller plus loin, voilà une brève explication sur l'utilisation des boutons pour répondre. Il se peut que tous les boutons ne soient pas affichés en même temps sur ton écran. Pour cela tu peux les faire défiler comme illustré sur l'image ci-dessous."
           ),
     )
     page.send(
         user.facebook_id,
         Attachment.Image(os.environ["SERVER_URL"] + "/static/buttons.gif"),
     )
     page.send(
         user.facebook_id,
         t("Pour montrer que tu as bien compris, appuie maintenant sur le bouton «Ok» qui se situe à la fin de la liste des boutons."
           ),
         quick_replies=cls.buttons,
     )
     return Transition.STAY
예제 #14
0
 def on_event(cls, page, user, event):
     t = i18n.translator(user)
     # Get the response
     response = event.quick_reply_payload
     # If the answer is not valid
     if not response or not response.startswith("DISTRACT_"):
         with cls.storage(user) as s:
             proposed = s["last_proposed"]
         page.send(
             user.facebook_id,
             t("Merci de répondre en utilisant les boutons"),
             quick_replies=cls.to_buttons(proposed, user),
         )
         return Transition.STAY
     # Save it
     with cls.storage(user) as s:
         s["helped"][-1]["distraction"] = response
     if response == "DISTRACT_OTHER":
         return Transition.MOVE("cessation.Other")
     return Transition.MOVE("cessation.Choice")
예제 #15
0
 def on_enter(cls, page, user, prev):
     return Transition.MOVE("tracker.End")
     t = i18n.translator(user)
     group = "cigarettes"
     with cls.storage(user) as s:
         if group not in s:
             page.send(
                 user.facebook_id,
                 t("Pour faire un essai, clique sur le bouton «Je fume» ci-dessous. Réponds ensuite aux questions qui suivront, au hasard pour cette fois."
                   ),
                 quick_replies=i18n.translate_buttons(cls.buttons,
                                                      lang=user.language),
             )
         else:
             page.send(
                 user.facebook_id,
                 t("Pour enregistrer une cigarette clique sur le bouton «Je fume» ci-dessous."
                   ),
                 quick_replies=i18n.translate_buttons(cls.buttons,
                                                      lang=user.language),
             )
     return Transition.STAY
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     # page.send(
     #     user.facebook_id,
     #     t(
     #         "Merci d'avoir répondu à ces questions. Dans quelques jours on va suivre ensemble ta consommation de cigarette pour établir ton profil de fumeur! D'ici là reste informé en suivant le groupe privé Facebook, et si l'envie t'en prends, n'hésite pas à partage ton résultat du test de Fagerström sur le groupe pour en discuter avec les autres!"
     #     ),
     # )
     # page.send(user.facebook_id, t("À bientôt! 🤗"))
     # return Transition.STAY
     # page.send(
     #     user.facebook_id,
     #     t(
     #         "Merci d'avoir répondu à ces questions. Dans quelques jours tu "
     #         "vas arrêter de fumer et je serai là quand tu auras besoin d'un "
     #         "coup de pouce. D'ici là reste informé en suivant le groupe "
     #         "privé Facebook. À bientôt! 🤗"
     #     ),
     # )
     page.send(user.facebook_id,
               t("Merci d'avoir répondu à ces questions."))
     time.sleep(4)
     return Transition.MOVE("cessation.Wait")
예제 #17
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     page.send(user.facebook_id, t(random.choice(cls.texts)))
     time.sleep(2)
     return Transition.MOVE("cessation.Closing")
예제 #18
0
 def on_enter(cls, page, user, prev):
     t = i18n.translator(user)
     page.send(
         user.facebook_id, t(random.choice(cls.questions)) + t(" (1 message maximum)")
     )
     return Transition.STAY