def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text # if mtext != '@傳送文字': # line_bot_api.reply_message(event.reply_token,TextSendMessage(text=mtext)) if mtext == '@傳送文字': func.sendText(event) if mtext == '@傳送聲音': func.sendVoice(event) if mtext == '@傳送影片': func.sendVedio(event) if mtext == '@使用說明': func.sendUse(event) if mtext == '@北歐貿易': func.neuWeb(event) else: func.sendTWder(event, mtext) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '@傳送文字': func.sendText(event) elif mtext == '@傳送圖片': func.sendImage(event) elif mtext == '@傳送貼圖': func.sendStick(event) elif mtext == '@傳送位置': func.sendPosition(event) elif mtext == '@傳送聲音': func.sendAudio(event) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: #依序處理所有事件 if isinstance(event, MessageEvent): #檢查是否為訊息事件 mtext = event.message.text user_id = event.source.user_id profile = line_bot_api.get_profile(user_id) print(profile.display_name) print(profile.user_id) print(profile.picture_url) if mtext == '抽': func.sendImage(event) #event裡面有回郵的郵票 elif mtext == '文字': func.sendText(event) elif mtext == '貼圖': func.sendStick(event) elif mtext == '多傳': func.sendMulti(event) elif mtext == '位置': func.sendPosition(event) elif mtext == '選單': func.sendQuickreply(event) else: func.replyText(event) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: user_id = event.source.user_id if not (users.objects.filter(uid=user_id).exists()): unit = users.objects.create(uid=user_id) unit.save() if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '@功能介紹': func.sendText(event) elif mtext == '@製作團隊': func.sendText1(event) elif mtext == '@特別感謝': func.sendText2(event) elif mtext == '@國內相關組織': func.sendQuickreply(event) elif mtext == '@晶晶茶鋪': func.sendImage(event) elif mtext == '@傳送聲音': func.sendVoice(event) elif mtext == '@傳送影片': func.sendVedio(event) elif mtext == '@傳送貼圖': func.sendStick(event) elif mtext == '@多項傳送': func.sendMulti(event) elif mtext == '@傳送位置': func.sendPosition(event) elif mtext == '@法律資訊': func.sendQuickreply(event) elif mtext == '@按鈕樣版': func.sendButton(event) elif mtext == '@系統整體滿意度調查': func.sendConfirm(event) elif mtext == '@轉盤樣板': func.sendCarousel(event) elif mtext == '@圖片轉盤': func.sendImgCarousel(event) elif mtext == '@購買披薩': func.sendPizza(event) elif mtext == '@yes': func.sendyes(event) elif mtext == '@no': func.sendNo(event) elif mtext == '@圖片地圖': func.sendImgmap(event) elif mtext == '@日期時間': func.sendDatetime(event) elif mtext == '@彈性配置': func.sendFlex(event) elif mtext[:3] == '###' and len(mtext) > 3: func.manageForm(event, mtext, user_id) elif mtext == '@使用說明': func.sendUse(event) elif mtext == '@房間預約': func.sendBooking(event, user_id) elif mtext == '@取消訂房': func.sendCancel(event, user_id) elif mtext == '@關於我們': func.sendAbout(event) elif mtext == '@位置資訊': func.sendPosition(event) elif mtext == '@聯絡資訊': func.sendContact(event) elif mtext == '@辨別洗錢小知識': func.sendMulti2(event) # func.sendMulti2-->INSERT 2 elif mtext == '@圖片': func.sendImage(event) elif mtext == '@重要資訊': func.sendButton(event) elif mtext == '@國內相關組織': func.sendQuickreply(event) elif mtext == '@國外相關組織': func.sendButtonb(event) elif mtext == '@其他資訊': func.sendCarousel(event) elif mtext[:3] == '###' and len( mtext) > 3: #處理LIFF傳回的FORM資料 func.manageForm(event, mtext, user_id) elif mtext[:6] == '123456' and len(mtext) > 6: #推播給所有顧客 func.pushMessage(event, mtext) if isinstance(event, PostbackEvent): #PostbackTemplateAction觸發此事件 backdata = dict(parse_qsl(event.postback.data)) #取得Postback資料 if backdata.get('action') == 'sell': func.sendData_sell(event, backdata) if backdata.get('action') == 'yes': func.sendYes(event, event.source.user_id) else: line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text)) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '@傳送文字': func.sendText(event) elif mtext == '@傳送圖片': func.sendImage(event) elif mtext == '@傳送聲音': func.sendVoice(event) elif mtext == '@傳送影片': func.sendVedio(event) elif mtext == '@傳送貼圖': func.sendStick(event) elif mtext == '@多項傳送': func.sendMulti(event) elif mtext == '@傳送位置': func.sendPosition(event) elif mtext == '@快速選單': func.sendQuickreply(event) elif mtext == '@按鈕樣板': func.sendButton(event) elif mtext == '@確認樣板': func.sendConfirm(event) elif mtext == '@轉盤樣板': func.sendCarousel(event) elif mtext == '@圖片轉盤': func.sendImgCarousel(event) elif mtext == '@購買披薩': func.sendPizza(event) elif mtext == '@yes': func.sendYes(event) elif mtext == '@圖片地圖': func.sendImgmap(event) elif mtext == '@日期時間': func.sendDatetime(event) elif mtext == '@彈性配置': func.sendFlex(event) elif mtext[:3] == '###' and len(mtext) > 3: func.manageForm(event, mtext) if isinstance(event, PostbackEvent): #PostbackTemplateAction觸發此事件 backdata = dict(parse_qsl(event.postback.data)) #取得data資料 if backdata.get('action') == 'sell': func.sendData_sell(event, backdata) else: line_bot_api.reply_message(event.reply_token,TextSendMessage(text=event.message.text)) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '#我的推薦#': func.sendText(event) elif mtext == '#模擬上妝#': func.openCameraRoll(event) elif mtext == '#教學文章#': # func.sendStick(event) func.sendText(event) elif mtext == '#情境小幫手#': func.sendMulti(event) elif mtext == '#熱門排行#': func.sendPosition(event) if mtext == '#聯絡我們# ': func.sendQuickreply(event) elif isinstance(event.message,ImageMessage): #line_bot_api.reply_message(event.reply_token,TextSendMessage(text='Image has upload')) message_content = line_bot_api.get_message_content(event.message.id) print(message_content) # with open('C:/Users/Big data/Desktop/db104_2_project/templates/' + event.message.id + '.jpg','wb')as fd: with open('C:/Users/Big data/Desktop/db104_2_project/static/123.jpg','wb')as fd: for chunk in message_content.iter_content(): fd.write(chunk) temp_pic = 'C:/Users/Big data/Desktop/db104_2_project/static/123.jpg' temp_pic_1 = 'C:/Users/Big data/Desktop/db104_2_project/static/456.jpg' # parser1 = argparse.ArgumentParser() # parser1.add_argument('--static', type=str,default=os.path.join(path=temp_pic_1),help='path to the no_makeup image') # args = parser1.parse_args() #line_bot_api.reply_message(event.reply_token, TextSendMessage(text='good')) while True : if os.path.isfile(temp_pic): face_cut.detect_face_landmarks(temp_pic) time.sleep(1) main_gan.make_upup(temp_pic_1) time.sleep(1) func.sendMulti_send_image(event) #line_bot_api.reply_message(event.reply_token,ImageSendMessage(original_content_url='https://2a9944ea.ngrok.io/static/result.jpg', preview_image_url='https://2a9944ea.ngrok.io/static/result.jpg') ,) #time.sleep(5) # time.sleep(8) # send_res = send_image() # print(send_res) else: time.sleep(1) break return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: user_id = event.source.user_id if not (users.objects.filter(uid=user_id).exists()): unit = users.objects.create(uid=user_id) unit.save() if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '@傳送文字': func.sendText(event) elif mtext == '@傳送圖片': func.sendImage(event) elif mtext == '@傳送聲音': func.sendVoice(event) elif mtext == '@傳送影片': func.sendVedio(event) elif mtext == '@傳送貼圖': func.sendStick(event) elif mtext == '@多項傳送': func.sendMulti(event) elif mtext == '@傳送位置': func.sendPosition(event) elif mtext == '@快速選單': func.sendQuickreply(event) elif mtext == '@按鈕樣板': func.sendButton(event) elif mtext == '旅遊數據分析': func.sendButtonp(event) elif mtext == '景點查詢': func.sendButtonq(event) elif mtext == '交通一點通': func.sendButtonr(event) elif mtext == '旅遊即時報': func.sendButtons(event) elif mtext == '天氣小幫手': func.sendButtont(event) elif mtext == '2020旅遊調查': func.sendButtonu(event) elif mtext == '播報警廣事故路況': func.sendButtonv(event) elif mtext == '@確認樣板': func.sendConfirm(event) elif mtext == '@轉盤樣板': func.sendCarousel(event) elif mtext == '@圖片轉盤': func.sendImgCarousel(event) elif mtext == '@購買披薩': func.sendPizza(event) elif mtext == '@yes': func.sendYes(event) elif mtext == '@圖片地圖': func.sendImgmap(event) elif mtext == '@日期時間': func.sendDatetime(event) elif mtext == '@彈性配置': func.sendFlex(event) elif mtext[:3] == '###' and len(mtext) > 3: func.manageForm(event, mtext, user_id) elif mtext == '@使用說明': func.sendUse(event) elif mtext == '@房間預約': func.sendBooking(event, user_id) elif mtext == '@取消訂房': func.sendCancel(event, user_id) elif mtext == '@關於我們': func.sendAbout(event) elif mtext == '@位置資訊': func.sendPosition(event) elif mtext == '@聯絡我們': func.sendContact(event) elif mtext == '聯絡警廣': func.sendContactp(event) elif mtext[:3] == '###' and len( mtext) > 3: #處理LIFF傳回的FORM資料 line_bot_api.reply_message( event.reply_token, TextSendMessage(text="##########")) func.manageForm(event, mtext, user_id) elif mtext[:4] == 'Call' and len(mtext) > 4: #推播給所有顧客 func.pushMessage(event, mtext) if isinstance(event, PostbackEvent): #PostbackTemplateAction觸發此事件 backdata = dict(parse_qsl(event.postback.data)) #取得Postback資料 if backdata.get('action') == 'sell': func.sendData_sell(event, backdata) if backdata.get('action') == 'yes': func.sendYes(event, event.source.user_id) #else: #line_bot_api.reply_message(event.reply_token,TextSendMessage(text=event.message.text)) return HttpResponse() else: return HttpResponseBadRequest()
def callback(request): print("### callback.resquest: " , request) print("### callback.resquest傳輸的方式: ", request.method) if request.method == 'POST': signature = request.META['HTTP_X_LINE_SIGNATURE'] body = request.body.decode('utf-8') try: events = parser.parse(body, signature) except InvalidSignatureError: return HttpResponseForbidden() except LineBotApiError: return HttpResponseBadRequest() for event in events: print("### callback.resquest.POST.event(事件觸發格式): ", event) # 判斷使用者在linechat的對話之上一句是否為"'我要告御狀'" # 供告御狀的回覆用(elif mtext != "'我要告御狀'") # 取得時間(至十分) ISOTIMEFORMAT = '%Y%m%d%H%M' # 指定時間格式 time = (datetime.datetime.now().strftime(ISOTIMEFORMAT))[:-1] print("### callback.time: " + time) # 存擋路徑 path = Path() + event.source.user_id + "_" + time print("###存檔路徑:", path[:-11]) # :讀取暫存檔內容 if os.path.isfile(path): f = open(path) text = f.readlines() f.close() print("### callback" +str(text)) # Postback事件觸發 if isinstance(event, PostbackEvent): print("### callback.isinstanc.Postback觸發_start") print("### event.postback.data:" ,event.postback.data) if event.postback.data == 'fuzzySearch': print("### callbacki.isinstance.PostbackEvent.fuzzySearch_start") # 創建file,供func.sendText.ExtraFood使用 f = open(path,"w") f.write('ExtraFood') #####內文為'嘴饞紀錄' f.close #print("### func.UserData."吃了什麼跟我說說") message = TextSendMessage(text = "吃了什麼跟我說說\n(打在對話框送出即可)") #print("### func.UserData."吃了什麼跟我說說") line_bot_api.reply_message(event.reply_token,message) print("### func.UserData.吃了什麼跟我說說") # 事件觸發 if isinstance(event, MessageEvent): print("### callback.isinstanc.事件觸發") # 照片事件觸發 if isinstance(event.message, ImageMessage) and (os.path.isfile(path)) and text == ['img']: os.remove(path) # 刪除資料夾,避免干擾 print("### callback.isinstanc.照片事件觸發_start") message_content = line_bot_api.get_message_content(event.message.id) print("### callback.isinstanc.照片事件觸發.message_content", message_content) sendImage.Image(event) print("### callback.isinstanc.照片事件觸發_end") #line_bot_api.reply_message(event.reply_token, message) # 文字事件觸發 if isinstance(event.message, TextMessage): print("### callback.isinstanc.文字事件觸發") mimange = event.message print("### event.message:", (event.message)) print("### TextMessage:", TextMessage) #文字訊息 mtext = event.message.text print("### views.callback_start\n") print("### callback.isinstanc.文字事件觸發,輸入訊息:" + mtext) # testi 問卷用 if mtext[:3] == "###": os.remove(path) # 刪除資料夾,避免干擾 print("### views.callback.問卷_start\n") list_ = ["userId", "sex", "age", "height", "weight", "bodyFat", "exerciseFrequency"] QA = 5 #message = (event.source.user_id + "/"+ mtext[3:]+ "/" + time) message = (mtext) print(message, "_end") print(type(message)) from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers=['35.221.199.161:9092']) future = producer.send('ttt', bytes(mtext, encoding="utf8")) result = future.get(timeout=30) line_bot_api.reply_message(event.reply_token,message) #json.load(filename) #json.loadds(string) # 圖文選單 if mtext == "我升級了,我要更新狀態值 ლ(´ڡ`ლ)": print("### views.callback.'基本資料'\n") if os.path.isfile(path): # 為避免暫存檔干擾 os.remove(path) QuickReplyButton.UserData(event) elif mtext == '人家要吃飯飯~ ♥(´∀` )': print("### callback.time(hr).'人家要吃飯飯~ ♥(´∀` )'") # 取得時間(hr) ISOTIMEFORMAT = '%H' # 指定時間格式 time = (datetime.datetime.now().strftime(ISOTIMEFORMAT)) print("### callback.time.'人家要吃飯飯~ ♥(´∀` )': " + time) if 10 >= int(time) >= 4: BreakfastPush.BreakfastPush(event) elif 17 > int(time) > 10: LunchPush.LunchPush(event) elif 23 > int(time) >= 17: DinnerPush.DinnerPush(event) else: message = TextSendMessage(text = "乖~這時候就別吃了吧~") print("### views.callback.'乖~這這時候就別吃了吧~'_start\n") line_bot_api.reply_message(event.reply_token,message) print("### views.callback.'乖~這這時候就別吃了吧~'_end\n") elif mtext == "人家想知道吃進了多少熱量嘛~ ( ̄¬ ̄)~": print("### views.callback.人家想知道吃進了多少熱量嘛~ ( ̄¬ ̄)~_start\n") func.sendText(event) print("### views.callback.人家想知道吃進了多少熱量嘛~ ( ̄¬ ̄)~_end\n") elif mtext == "我鼓起勇氣,面對過去的自己 (*•̀ㅂ•́)ﻭ": print("### views.callback.'我鼓起勇氣,面對過去的自己 (*•̀ㅂ•́)ﻭ'_start\n") if os.path.isfile(path): # 為避免暫存檔干擾 os.remove(path) func.sendText(event) print("### views.callback.'我鼓起勇氣,面對過去的自己 (*•̀ㅂ•́)ﻭ'_end\n") elif mtext == "呼叫姿勢王 ٩(♡ε♡ )۶": if os.path.isfile(path): # 為避免暫存檔干擾 os.remove(path) sendCarousel.Pose(event) elif mtext == '我不想再當單身狗了(〓 ̄(∵エ∵) ̄〓)': print("### views.callback.我不想再當單身狗了_start\n") if os.path.isfile(path): # 為避免暫存檔干擾 os.remove(path) func.sendText(event) print("### views.callback.我不想再當單身狗了(〓 ̄(∵エ∵) ̄〓)_end\n") elif mtext == "我要告狀!(╬ಠ益ಠ)": print("### views.callback.我要告狀!(╬ಠ益ಠ)_start\n") func.sendText(event) print("### views.callback.我要告狀!(╬ಠ益ಠ)_end\n") # 基本資料之快速選單的回覆 elif mtext == "讓我記錄這美好的body吧~": print("### views.callback.讓我記錄這美好的body吧~") func.sendText(event) # 告御狀的回覆 elif mtext != "我要告狀!(╬ಠ益ಠ)" and (os.path.isfile(path)) and text == ['ErrorReport']: print("### views.callback.mtext != '我要告御狀'_start\n") func.sendErrorReport(event) print("### views.callback.mtext != '我要告御狀'_end\n") # 嘴饞紀錄的回覆 elif mtext != "人家想知道吃進了多少熱量嘛~ ( ̄¬ ̄)~" and (os.path.isfile(path)) and text == ['ExtraFood']: print("### views.callback.mtext != 人家想知道吃進了多少熱量嘛~ _start\n") func.fuzzySearch(event) print("### views.callback.mtext != 人家想知道吃進了多少熱量嘛~ ( ̄¬ ̄)~_end\n") # 飲食建議回覆 elif mtext[:9] == "我想吃查理大師的 ": print("### views.callback.mtext =" + mtext[:9] + " _start") func.pushSearch(event) print("### views.callback.mtext =" + mtext[:9] + " _start") return HttpResponse() print("### view.callback_end\n") else: return HttpResponseBadRequest()