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輸入各個名字看詳細窩~" )
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"
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'
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在初夏的東港靜靜地等待您的到來。")
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詳細搜尋: 秧苗 結穗 白米")
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()
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"
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"
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()
def on_enter_graph(self, event): print("I'm entering graph") reply_token = event.reply_token send_image_message(reply_token, "") self.go_back()
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 希望能和大家在玫瑰小鎮-萬金度過一個不一樣的聖誕節。")
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()
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"
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()
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)
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()
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 在這裡,艾兒將重新出發,與眾人一同譜出空氣少女的全新故事。")
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()
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()
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"
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"
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"
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()
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()
def on_enter_abandon(self, event): url = 'https://imgur.com/i2XqFa1.jpg' send_image_message(event.reply_token, url)
def on_enter_cat_parasite(self, event): url = 'https://imgur.com/HNacUf3.jpg' send_image_message(event.reply_token, url)
def on_enter_cat_vaccine(self, event): url = 'https://imgur.com/9ZpaqNY.jpg' send_image_message(event.reply_token, url)
def on_enter_dog_parasite(self, event): url = 'https://imgur.com/MoberGh.jpg' send_image_message(event.reply_token, url)
def on_enter_dog_vaccine(self, event): url = 'https://imgur.com/vcgX4yN.jpg' send_image_message(event.reply_token, url)
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()