Пример #1
0
def webhook_handler():
    body = request.json
    goto_list = ['state_init', 'oneweek_state4', 'ask_temp_state5', 'ask_rain_state6', 'ask_pheno_state7']

    if body['object'] == "page":
        event = body['entry'][0]['messaging'][0]
        sender_id = event['sender']['id']

        if sender_id in global_config.id_list[0]:
            machine.state = global_config.get_state(sender_id)
            print('\nFSM STATE: ' + machine.state)
            if machine.state in goto_list:
                machine.go_to(event)
            elif machine.state == 'finish_state9':
                machine.go_back(event)
            else:
                machine.advance(event)
        else:
            global_config.set_id(sender_id)
            print('\nNew user: '******'state_init')
            print('\nFSM STATE: ' + machine.state)
            machine.state = 'state_init'
            machine.go_to(event)
        return 'OK'
Пример #2
0
    def on_enter_oneweek_state4(self, event):
        print("I'm entering state4")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'oneweek_state4')
        send.forecast_1week(sender_id, global_config.get_zone(sender_id))
        self.go_to(event)
Пример #3
0
    def on_enter_ask_pheno_state7(self, event):
        print("I'm entering state7")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'ask_pheno_state7')
        send.forecast_3day(sender_id, global_config.get_zone(sender_id), 'Wx')
        self.go_to(event)
Пример #4
0
    def on_enter_ask_temp_state5(self, event):
        print("I'm entering state5")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'ask_temp_state5')
        send.forecast_3day_temp(sender_id, global_config.get_zone(sender_id))
        self.go_to(event)
Пример #5
0
    def on_enter_realtime_state3(self, event):
        print("I'm entering state3")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'realtime_state3')
        send.send_quick_replies(sender_id, "你想知道\"溫度\"還是\"降雨機率\"還是\"天氣狀態\"?",
                                "state3")
Пример #6
0
    def on_enter_finish_state9(self, event):
        print("I'm entering state9")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'finish_state9')
        send.send_start(sender_id, "歡迎下次再來詢問天氣~")
        send.send_button_message(sender_id, "氣象開放資料平台")
        self.go_back(event)
Пример #7
0
    def on_enter_ask_rain_state6(self, event):
        print("I'm entering state6")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'ask_rain_state6')
        send.forecast_3day(sender_id, global_config.get_zone(sender_id),
                           'PoP6h')
        self.go_to(event)
Пример #8
0
    def on_enter_ask_interval_state2(self, event):
        print("I'm entering state2")

        sender_id = event['sender']['id']
        user_zone = global_config.get_zone(sender_id)
        send.send_start(sender_id, "你選的是 {0}".format(user_zone))
        global_config.set_state(sender_id, 'ask_interval_state2')
        send.send_quick_replies(sender_id, "你想問\"現在\"還是未來\"一週\"的天氣?", "state2")
Пример #9
0
    def on_enter_ask_oneweek_state8(self, event):
        print("I'm entering state8")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'ask_oneweek_state8')
        send.send_start(sender_id, "你還想知道未來一週的天氣嗎?")
Пример #10
0
    def on_enter_ask_zone_state1(self, event):
        print("I'm entering state1")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'ask_zone_state1')
        send.send_start(sender_id, "你想知道台南的哪個地區呢?\n")
Пример #11
0
    def on_enter_start_state0(self, event):
        print("I'm entering state0")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'start_state0')
        send.send_start(sender_id, "嗨~\n有什麼想問的嗎?")
Пример #12
0
    def on_enter_state_init(self, event):
        print("I'm entering state init")

        sender_id = event['sender']['id']
        global_config.set_state(sender_id, 'state_init')