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): user_id = event.source.user_id if not (users.objects.filter(uid=user_id).exists()): unit = users.objects.create(uid=user_id) unit.save() mtext = event.message.text if 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[: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') == 'yes': func.sendYes(event, event.source.user_id) 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): 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("###################### events ################## : " ,event ) if isinstance(event, MessageEvent): if isinstance(event.message, TextMessage): mtext = event.message.text if mtext == '#我的推薦#': write_in_TextMessage(events) # 先抓取 UserId 號碼,看看資料庫有沒有存在 # 如果 count = 1 代表存在 user_Data = my_recommend.search_db(event) if user_Data[6] == 1 and user_Data[1] != None : my_recommend.sendCarousel(event ,user_Data) #轉盤樣板 elif user_Data[6] == 0 or user_Data[1] == None : my_recommend.fill_in_the_form(event) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='系統維護,請稍等!')) return HttpResponse() elif mtext == "#清除我的推薦資料#": write_in_TextMessage(events) my_recommend.delete_commend_form(event) return HttpResponse() elif mtext == "#我的推薦選單#" : write_in_TextMessage(events) my_recommend.send_commend_Quickreply(event) return HttpResponse() elif mtext == '#模擬上妝#': write_in_TextMessage(events) onekey_makeup.openCameraRoll(event) #多元按鈕樣板 return HttpResponse() elif mtext == '#教學文章#': write_in_TextMessage(events) learn_paper.sendQuickreply(event) #快速按鈕 return HttpResponse() elif mtext == '#請用一句話描述化妝的情境或想要強化的部位#': ## 還沒寫 write 進去函式在寫 situation_helper.sendCarousel_f(event ,events) return HttpResponse() elif mtext == '#熱門排行#': write_in_TextMessage(events) func.Top_Ranking_Position(event) return HttpResponse() elif mtext == '#眉睫#' or mtext == '#眼影#' or mtext == '#眼線#' or mtext == '#面頰#' or mtext == '#唇彩#' : write_in_TextMessage(events) func.Top_Ranking_List(event) return HttpResponse() elif mtext == '#人氣最高#' or mtext == '#推薦指數最高#' : write_in_TextMessage(events) # 查詢 userid 有沒有先點選過 部位 user_Data = func.Top_Ranking_search_user(event) print("sear_user的user_Data : " ,user_Data) # 查詢 function 在這邊寫 if user_Data[2] == 1 : func.Top_Ranking_fetch(event ,user_Data) elif user_Data[2] == 0 : line_bot_api.reply_message(event.reply_token, TextSendMessage(text='您沒點選部位,請重新點選功能。')) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='有錯誤,請重新點選功能')) return HttpResponse() elif mtext == '#聯絡我們#': #位置提供 write_in_TextMessage(events) func.sendPosition(event) return HttpResponse() elif mtext == '#眼妝_c#' or mtext == '#臉部_c#' or mtext == '#唇部_c#': write_in_TextMessage(events) learn_paper.sendLearn_paper(event , mtext) return HttpResponse() elif isinstance(event.message,ImageMessage): #PostbackEvent # line_bot_api.reply_message(event.reply_token,TextSendMessage(text='spark沒開,先不給你照片,哈哈')) # return HttpResponse() 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: user_id = event.message.id user_id = str(user_id) + str(random.randrange(10 ,99)) print(user_id) with open('E:/db104_2_project/static/{}.jpg' .format(user_id),'wb')as fd: for chunk in message_content.iter_content(): fd.write(chunk) temp_pic = 'E:/db104_2_project/static/{}.jpg'.format(user_id) # 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() content = face_cut.detect_face_landmarks(temp_pic) #main_gan.make_upup(temp_pic_1) print(type(content) ,content) # 步驟1. 設定要連線到Kafka集群的相關設定 props = { # Kafka集群在那裡? 'bootstrap.servers': '10.120.38.7:9092', # <-- 置換成要連接的Kafka集群 'error_cb': error_cb # 設定接收error訊息的callback函數 } # 步驟2. 產生一個Kafka的Producer的實例 producer = Producer(props) # 步驟3. 指定想要發佈訊息的topic名稱 topicName = 'test' msgCounter = 0 try: # produce(topic, [value], [key], [partition], [on_delivery], [timestamp], [headers]) producer.produce(topicName, content ) msgCounter += 4 print('Send ' + str(msgCounter) + ' messages to Kafka') except BufferError as e: # 錯誤處理 sys.stderr.write('%% Local producer queue is full ({} messages awaiting delivery): try again\n' .format(len(producer))) except Exception as e: print(e) # 步驟5. 確認所在Buffer的訊息都己經送出去給Kafka了 producer.flush() onekey_makeup.sendMulti_send_image(event ,content) # time.sleep(8) # send_res = send_image() # print(send_res) else: print("到這呢???") return HttpResponse() elif events[0].type == "follow": my_recommend.follow_in_the_form(event) return HttpResponse() print("到文字func後會,跑到這,如果拿掉下面那行,會跑到 儲存輸入文字") # return HttpResponse() #viewsget.get_resquest(events) print("儲存輸入文字") # if events[0].message.type == "text": # write_in_TextMessage(events) # else: # print(events[0].message.type) # print("不能存") # pass write_in_TextMessage(events) return HttpResponse() else: print("不是POST") return HttpResponseBadRequest()