Example #1
0
 def on_enter_3boss(self, event):
     sender_id = event['sender']['id']
     send_image_message(sender_id, "https://i.imgur.com/nNSTF8L.jpg")
     send_text_message(
         sender_id,
         "這裡有「空氣少女注意報」、「迷路小瑪在萬金」以及「初夏的東港之櫻」、「東津萌米」\n你問好像有四個?\n三巨頭有四個人是很正常的啦~\n輸入各個名字看詳細窩~"
     )
Example #2
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")
        response = machine.advance(event)
        if response == False:
            if event.message.text == 'fsm':
                send_image_message(event.reply_token,
                                   ' https://6dea8cc2a2cb.ngrok.io/show-fsm')

            else:
                send_text_message(event.reply_token,
                                  "不知道要吃什麼?輸入'start'來尋找成大周邊美食!")

    return "OK"
Example #3
0
def webhook_handler():
    global mode
    signature = request.headers['X-Line-Signature']
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f'Request body: {body}')

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f'\nFSM STATE: {machine.state}')
        print(f'REQUEST BODY: \n{body}')
        response = machine.advance(event)
        if response == False:
            if event.message.text.lower() == 'fsm':
                send_image_message(event.reply_token,
                                   'https://i.imgur.com/j75C7Jo.png?1')
            elif event.message.text == '訂購':
                send_text_message(
                    event.reply_token,
                    '!!線上訂購請點以下連結\nhttps://docs.google.com/forms/d/e/1FAIpQLSdA2XJr4gzZOMetY-DJbEmCCpGLSoAy5o3xsCi0aMYP7dANEA/viewform?usp=sf_link\n\n有任何問題都可聯絡李老闆\n手機:09-58975339'
                )
            elif event.message.text == '柚心園' or event.message.text == '回首頁' or machine.state == 'user' or (
                (machine.state == 'answer' or machine.state == 'question')
                    and event.message.text == '2'):
                title = '歡迎光臨~~ 柚心園'
                text = '以下資訊提供給您,請『點選』'  #text不能太長
                btn = [  #不可超過4個選項
                    MessageTemplateAction(label='商品資訊', text='商品資訊'),
                    MessageTemplateAction(label='訂購', text='訂購'),
                    MessageTemplateAction(label='問答', text='問答'),
                    MessageTemplateAction(label='MENU', text='菜單'),
                ]
                url = 'https://i.imgur.com/5Yi13jZ.gif'
                send_button_message(event.reply_token, title, text, btn, url)
                machine.go_back()
            elif machine.state == 'answer' or machine.state == 'sale_address':
                send_text_message(event.reply_token,
                                  '!!繼續問答請輸入『1』!!\n!!離開請輸入『2』')
            elif machine.state == 'show_pomelo_discount' or machine.state == 'input_health_introduction' or machine.state == 'input_menu':
                send_text_message(event.reply_token, '您的選項不在列表中,請您重新輸入')
            elif machine.state == 'show_pomelo_taboo' or machine.state == 'input_health_information' or machine.state == 'show_pomelo_benefit':
                send_text_message(event.reply_token, '您的選項不在列表中,請您重新輸入')
            elif machine.state == 'input_menu':
                send_text_message(event.reply_token, '請重新選擇!!!')
            else:
                send_text_message(event.reply_token, '請重新選擇!!!')

    return 'OK'
Example #4
0
 def on_enter_sakura(self, event):
     sender_id = event['sender']['id']
     send_text_message(
         sender_id, "初夏的東港之櫻\nhttps://zh-tw.facebook.com/sergestid.shrimp/")
     send_image_message(sender_id,
                        "http://simon.moe/project/images/shrimp/01.jpg")
     send_text_message(sender_id, "於蔚藍海水中舞躍的櫻花蝦\n在初夏的東港靜靜地等待您的到來。")
Example #5
0
 def on_enter_rice(self, event):
     sender_id = event['sender']['id']
     send_text_message(sender_id, "東津萌米\nhttp://simon.moe/rice/")
     send_image_message(sender_id,
                        "http://simon.moe/project/images/rice/banner.jpg")
     send_text_message(
         sender_id, "「穗姬」意指此品種稻米猶如白米中的公主般,品種優良、米粒晶亮且口感絕佳。\n詳細搜尋: 秧苗 結穗 白米")
Example #6
0
 def on_enter_right(self, event):
     print("I'm entering right")
     reply_token = event.reply_token
     image_url = "https://memes.tw/user-template-thumbnail/03f01617946e73cbcb2259e47a4a69ca.jpg"
     #message = ImageSendMessage(original_content_url=image_url, preview_image_url=image_url)
     send_image_message(reply_token, image_url)
     self.go_back()
Example #7
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")
        response = machine.advance(event)
        if response == False:
            if event.message.text=="show-fsm":
                #machine.get_graph().draw("fsm.png", prog="dot", format="png")
                send_image_message(event.reply_token,"https://upload.cc/i1/2019/12/10/F01oDE.png")
                #send_text_message(event.reply_token, "hi")
            else:
                send_text_message(event.reply_token, "沒有此指令\n可以使用指令:\n即時出境航班\n即時入境航班\n查詢特定航班\n查詢特定機場")

    return "OK"
Example #8
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")
        response = machine.advance(event)
        if response == False:
            if event.message.text.lower() == 'fsm':
                show_fsm()
                url = 'https://imgur.com/aispSB6.jpg'
                send_image_message(event.reply_token, url)
            else:
                send_text_message(event.reply_token, "Not Entering any State")

    return "OK"
Example #9
0
    def on_enter_show_fsm(self, event):
        print("I'm entering state2")

        reply_token = event.reply_token
        send_image_message(
            reply_token,
            'https://https://line-bot-f74089046.herokuapp.com/show-fsm')
        self.go_back()
Example #10
0
    def on_enter_graph(self, event):
        print("I'm entering graph")

        reply_token = event.reply_token
        
        
        send_image_message(reply_token, "")
        self.go_back()
Example #11
0
 def on_enter_magi(self, event):
     sender_id = event['sender']['id']
     send_text_message(
         sender_id,
         "迷路小瑪在萬金\nhttps://zh-tw.facebook.com/MAGI.in.Wanchin.Basilica/")
     send_image_message(sender_id,
                        "http://simon.moe/project/images/magi/01.jpg")
     send_text_message(
         sender_id, "喜愛著美麗的萬金聖母聖殿與在地獨特的人文氣息\n 希望能和大家在玫瑰小鎮-萬金度過一個不一樣的聖誕節。")
Example #12
0
    def on_enter_about(self, event):
        print("I'm entering about")

        sender_id = event['sender']['id']
        send_image_message(sender_id, "https://i.imgur.com/RqwhJzY.jpg")
        send_text_message(sender_id, "我就是一隻鴨肉飯")
        send_three_template(sender_id, "不過你可以試著問我", "帶我去你的粉專吧", "想吃東西嗎",
                            "幫我想我等等要吃什麼")
        self.go_back()
Example #13
0
def webhook_handler():
    global mode
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    log.info("Request body: " + body)

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")

        if mode == 1:
            if event.message.text.lower() == 'choose':
                mode = 0
                send_text_message(event.reply_token,
                                  '輸入『choose』返回主頁面。\n隨時輸入『chat』可以跟機器人聊天。\n')
                continue
            else:
                send_text_message_AI(event.reply_token, event.message.text)
                continue
        else:
            if event.message.text.lower() == 'chat':
                mode = 1
                send_text_message(event.reply_token, '進入聊天模式!')
                continue
            else:
                response = machine.advance(event)

        if response == False:
            if event.message.text.lower() == 'fsm':
                send_image_message(event.reply_token,
                                   'https://f74062044.herokuapp.com/show-fsm')
            elif machine.state != 'user' and event.message.text.lower(
            ) == 'restart':
                send_text_message(event.reply_token,
                                  '輸入『choose』返回主頁面。\n隨時輸入『chat』可以跟機器人聊天。\n')
                machine.go_back()
            elif machine.state == 'user':
                send_text_message(event.reply_token,
                                  '輸入『choose』返回主頁面。\n隨時輸入『chat』可以跟機器人聊天。\n')
            elif machine.state == 'choose':
                send_text_message(event.reply_token, '輸入您想要的休閑活動')
    return "OK"
Example #14
0
    def on_enter_weekExpense(self, event):
        reply_token = event["replyToken"]
        week = datetime.datetime.now().strftime("%U")
        weekInfo = self.db.getWeekInfo(week)
        expense, income = self.db.infoParser(weekInfo)

        # send image message
        url = plotExpenseOrIncome(expense, "支出", "week-expense.png")
        send_image_message(reply_token, url)
        self.go_back()
Example #15
0
    def on_enter_show_img(self, event):
        url = ''
        if diet_type == 0:
            url = 'https://i.imgur.com/qwFvFt0.png'
        elif diet_type == 1:
            url = 'https://i.imgur.com/PhkKYBi.png'
        else:
            url = 'https://i.imgur.com/v01jDp9.png'

        send_image_message(event.reply_token, url)
Example #16
0
    def on_enter_weekRatio(self, event):
        reply_token = event["replyToken"]
        week = datetime.datetime.now().strftime("%U")
        weekInfo = self.db.getWeekInfo(week)
        expense, income = self.db.infoParser(weekInfo)

        # send image message
        url = plotRatio(expense, income, "week-ratio.png")
        print(url)
        send_image_message(reply_token, url)
        self.go_back()
Example #17
0
 def on_enter_air(self, event):
     sender_id = event['sender']['id']
     send_text_message(
         sender_id,
         "空氣少女注意報\nhttps://www.facebook.com/273597940165501/photos/a.273602300165065/273600903498538/?type=3"
     )
     send_image_message(sender_id,
                        "http://simon.moe/project/images/air/01.jpg")
     send_text_message(
         sender_id,
         "Rinascimento,意思是義大利文的文藝復興 \n 在這裡,艾兒將重新出發,與眾人一同譜出空氣少女的全新故事。")
Example #18
0
    def on_enter_monthExpense(self, event):
        reply_token = event["replyToken"]
        month = datetime.datetime.now().strftime("%m")
        monthInfo = self.db.getMonthInfo(month)
        expense, income = self.db.infoParser(monthInfo)

        # send image message
        url = plotExpenseOrIncome(expense, "支出", "month-expense.png")
        print(url)
        send_image_message(reply_token, url)
        self.go_back()
Example #19
0
    def on_enter_theather3(self,event):
        print("I'm entering state theather3")

        sender_id=event['sender']['id']
        url="http://www.atmovies.com.tw/showtime/t06608/a06/" #台南國賓影城
        res=requests.get(url)
        soup=BeautifulSoup(res.text,"html.parser")

        aa = soup.select("#theaterShowtimeTable > li.filmTitle > a")
        t1 = [a.text for a in aa]

        r="just for today\n"
        j=0
        k=0
        bb=soup.select("#theaterShowtimeTable > li:nth-of-type(2) > ul:nth-of-type(2) > li")
        t2 = [b.text for b in bb]
        #print(t2)
       
        cc=soup.select("#theaterShowtimeTable > li:nth-of-type(2) > ul:nth-of-type(2) > li.filmVersion")
        t3 = [c.text for c in cc]
        #print(t3)

        for i in range(len(t2)):
            n=ord(t2[i][0])-48
            if n==0 or n==1 or n==2 or n==3 or n==4 or n==5 or n==6 or n==7 or n==8 or n==9:
                    if t2[i]!="4DX" and t2[i]!='3D版':
                        if k%2==0:
                            if aa[j-1].text==aa[j].text:
                                if aa[j-1].text==m:
                                    r+="\n"+t2[i]+"  "   
                                j=j+1
                            else:
                                if aa[j-1].text==m:
                                    r+="\n"+aa[j].text+t2[i]+"  "    
                        else:
                            if aa[j-1].text==m:    
                                r+=t2[i]+"  "
            else:
                if k%2==0:
                        if aa[j].text==m:
                            r+="\n"+aa[j].text+"\n"
                        j=j+1    
                k=k+1  

        if r=="just for today\n":
            r="The movie you choose is not broadcast on this theather"        
        send_image_message(sender_id,"http://www.ambassador.com.tw/external/events/shinefilm2018/images/cinema_a2.jpg")
        send_text_message(sender_id,r)
        self.go_back()
Example #20
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")

        response = machine.advance(event)

        if response == False:

            if event.message.text.lower() == 'fsm':
                send_image_message(event.reply_token, fsm_host)
                #send_image_message(event.reply_token, 'https://41e22cc69ba9.ngrok.io/show-fsm')
                #send_image_message(event.reply_token, 'https://f64061070.herokuapp.com/show-fsm')

            elif event.message.text.lower() == "re":
                send_text_message(event.reply_token, "restart")
                machine.go_back(event)
            elif machine.state == "user":
                send_text_message(
                    event.reply_token,
                    "輸入「show fsm」獲得此line bot 的fsm。\n輸入「person」進入資料庫。\n輸入「re」會回到最開始"
                )
            elif machine.state == "update":
                send_text_message(event.reply_token, "請選擇條件\n")
            else:
                send_text_message(event.reply_token, "Not Entering any State")

    return "OK"
Example #21
0
def callback():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        if event.message.text.lower() == 'fsm':
            if machine.state != "user":
                machine.go_back()
            send_image_message(
                event.reply_token,
                'https://github.com/anson0221/Line-Chat-Bot/blob/master/fsm.png?raw=true'
            )
            continue

        response = True
        for state in final_states:
            if machine.state == state:
                response = False  # cannot advance
                break

        if response:
            machine.advance(event)
        else:
            machine.go_back()
            machine.advance(event)

    return "OK"
Example #22
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")
        response = machine.advance(event)
        if response == False:
            if event.message.text == "fsm1":
                send_image_message(event.reply_token,
                                   'https://i.ibb.co/9HxHDnz/fsm.png?')
            elif event.message.text == "fsm2":
                send_image_message(event.reply_token,
                                   'https://i.ibb.co/G5ZbQSm/fsm.png?')
            elif machine.state == 'user':
                send_text_message(
                    event.reply_token,
                    "輸入「新文章」查看近日新文章。\n輸入「熱門文章」查看近日爆文。\n輸入「經典文章」查看Marvel版精選好文。\n隨時輸入「fsm」可以查看狀態圖。"
                )
            elif machine.state == 'newest_page':
                send_text_message(event.reply_token,
                                  "使用者欲觀看文章分類\n請輸入「經驗」、「創作」、「翻譯」、「不分類」")

            #send_text_message(event.reply_token, "Not Entering any State")

    return "OK"
Example #23
0
    def on_enter_theather2(self,event):
        print("I'm entering state theather2")

        sender_id=event['sender']['id']
        url="http://www.atmovies.com.tw/showtime/t06610/a06/" #南紡
        res=requests.get(url)
        soup=BeautifulSoup(res.text,"html.parser")
        tt = soup.find_all(class_="filmTitle")

        aa = soup.select("#theaterShowtimeTable > li.filmTitle > a")
        t1 = [a.text for a in aa]

        r="just for today\n"
        j=0
        k=0
        bb=soup.select("#theaterShowtimeTable > li:nth-of-type(2) > ul:nth-of-type(2) > li")
        t2 = [b.text for b in bb]

        cc=soup.select("#theaterShowtimeTable > li:nth-of-type(2) > ul:nth-of-type(2) > li.filmVersion")
        t3 = [c.text for c in cc]

        for i in range(len(t2)):
            n=ord(t2[i][0])-48
            if n==0 or n==1 or n==2 or n==3 or n==4 or n==5 or n==6 or n==7 or n==8 or n==9:
                if t2[i]!="4DX" and t2[i]!='3D版':
                    if aa[j-1].text==m:
                            r+=t2[i]+"  "
            else:
                if k%2==0:
                    if aa[j].text==m:
                        r+="\n"+aa[j].text+"("+cc[j].text+")"+"\n"
                    j=j+1    
                k=k+1
        if r=="just for today\n":
            r="The movie you choose is not broadcast on this theather"        
        send_image_message(sender_id,"http://iphoto.ipeen.com.tw/photo/map_cache/new/5/7/7/1201775/600x360.png")
        send_text_message(sender_id,r)
        self.go_back()
Example #24
0
 def on_enter_meme(self, event):
     pick = random.randint(0, 8)
     if pick == 0:
         url = 'https://i.imgur.com/8WTPDr3.png'
     elif pick == 1:
         url = 'https://i.imgur.com/cVUaO2w.jpg'
     elif pick == 2:
         url = 'https://i.imgur.com/7XNk23T.png'
     elif pick == 3:
         url = 'https://i.imgur.com/sON6KEx.png'
     elif pick == 4:
         url = 'https://i.imgur.com/7Yom7qI.png'
     elif pick == 5:
         url = 'https://i.imgur.com/hTOOBVD.png'
     elif pick == 6:
         url = 'https://i.imgur.com/LsCkGNq.png'
     elif pick == 7:
         url = 'https://i.imgur.com/WPukVvs.png'
     elif pick == 8:
         url = 'https://i.imgur.com/PBcQAkD.png'
     reply_token = event.reply_token
     send_image_message(reply_token, url)
     self.go_back()
Example #25
0
 def on_enter_abandon(self, event):
     url = 'https://imgur.com/i2XqFa1.jpg'
     send_image_message(event.reply_token, url)
Example #26
0
 def on_enter_cat_parasite(self, event):
     url = 'https://imgur.com/HNacUf3.jpg'
     send_image_message(event.reply_token, url)
Example #27
0
 def on_enter_cat_vaccine(self, event):
     url = 'https://imgur.com/9ZpaqNY.jpg'
     send_image_message(event.reply_token, url)
Example #28
0
 def on_enter_dog_parasite(self, event):
     url = 'https://imgur.com/MoberGh.jpg'
     send_image_message(event.reply_token, url)
Example #29
0
 def on_enter_dog_vaccine(self, event):
     url = 'https://imgur.com/vcgX4yN.jpg'
     send_image_message(event.reply_token, url)
Example #30
0
 def on_enter_cheerup(self, event):
     print("I'm entering cheerup")
     reply_token = event.reply_token
     send_image_message(reply_token, cheerup_data[random.randint(0, 3)])
     self.go_back()