def pushMgsReqToLF(sub, date, userId, sec, leavetype): from getApplicationData import getLFId, getIDFromMatchUser, getName, getLname, getUserId lfid = getLFId(sub) studentid = getIDFromMatchUser(userId) name = getName("Students", studentid) lname = getLname("Students", studentid) to = getUserId("LF", lfid) print(lfid) print(to) if leavetype == 'Business': line_bot_api.push_message( to, TemplateSendMessage( alt_text='Confirm template', template=ConfirmTemplate( text='นักศึกษา ' + str(name) + ' ' + str(lname) + ' ' + str(sec) + '\nรหัส: ' + str(studentid) + ' ขอลากิจ\nวิชา ' + str(sub) + '\nวันที่ ' + str(date), actions=[ MessageAction(label='อนุมัติ', text='อนุมัติคำขอลา ของนักศึกษารหัส:' + str(studentid)), MessageAction( label='ไม่อนุมัติ', text='ไม่อนุมัติคำขอลา ของนักศึกษารหัส:' + str(studentid)) ]))) else: lfid = getLFId(sub) studentid = getIDFromMatchUser(userId) name = getName("Students", studentid) lname = getLname("Students", studentid) to = getUserId("LF", lfid) print(lfid) print(to) if leavetype == 'Sick': line_bot_api.push_message( to, TemplateSendMessage( alt_text='Confirm template', template=ConfirmTemplate( text='นักศึกษา ' + str(name) + ' ' + str(lname) + ' ' + str(sec) + '\nรหัส: ' + str(studentid) + ' ขอลาป่วย\nวิชา ' + str(sub) + '\nวันที่ ' + str(date), actions=[ MessageAction( label='อนุมัติ', text='อนุมัติคำขอลา ของนักศึกษารหัส:' + str(studentid)), MessageAction( label='ไม่อนุมัติ', text='ไม่อนุมัติคำขอลา ของนักศึกษารหัส:' + str(studentid)) ]))) return 'send success'
def handle_message(event): text = event.message.text if text == 'confirm': carousel_template = CarouselTemplate(columns=[ CarouselColumn( text='忘れずに服用できていますか?', title='服薬状況', actions=[ # URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='はい', data='はい', text='はい'), PostbackAction(label='いいえ', data='いいえ', text='いいえ') ]), CarouselColumn( text='副作用と疑われる症状は出ていませんか?', title='副作用について', actions=[ PostbackAction( label='はい、出ていません', data='はい、出ていません', text='はい、出ていません'), PostbackAction( label='いいえ、出ています', data='いいえ、出ています', text='いいえ、出ています') ]), ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'confirm2': confirm_template = ConfirmTemplate(text='病状はいかがですか?', actions=[ PostbackAction(label='軽快している', data='軽快している', text='軽快している'), PostbackAction(label='改善してない', data='改善してない', text='改善してない') ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'confirm3': confirm_template = ConfirmTemplate(text='Do it?', actions=[ MessageAction(label='Yes', text='Yes!'), MessageAction(label='No', text='No!'), ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message)
def postback_data(event): global interest if event.postback.data == 'iphone,': interest = interest + event.postback.data confirm_template_message = TemplateSendMessage( alt_text='你有用過iPhone嗎?', template=ConfirmTemplate( text='你有用過或正在使用iPhone嗎?', actions=[ PostbackAction(label='有', display_text='我有用過iPhone', data='have,'), PostbackAction(label='沒有', display_text='我沒有用過iPhone', data='not_have,') ])) line_bot_api.reply_message(event.reply_token, confirm_template_message) elif event.postback.data == 'switch,': interest = interest + event.postback.data confirm_template_message = TemplateSendMessage( alt_text='你有用過Switch嗎?', template=ConfirmTemplate( text='你現在有自己的Switch嗎?', actions=[ PostbackAction(label='有', display_text='我有Switch', data='have,'), PostbackAction(label='沒有', display_text='我沒有Switch', data='not_have,') ])) line_bot_api.reply_message(event.reply_token, confirm_template_message) elif interest == 'iphone,': interest = interest + event.postback.data price_asking = TextSendMessage("現在請你猜猜看現在一台\n" "iPhone 11 Pro 64G\n" "售價大概多少錢呢?") line_bot_api.reply_message(event.reply_token, price_asking) elif interest == 'switch,': interest = interest + event.postback.data price_asking = TextSendMessage("現在猜猜看現在一台\n" "Switch紅藍款 (主機only)\n" "售價大概多少錢呢?") line_bot_api.reply_message(event.reply_token, price_asking) return interest
def handle_text_message(event): text = event.message.text if text == 'profile' : if isinstance(event.source, SourceUser): profile = line_bot_api.get_profile(event.source.user_id) line_bot_api.reply_message( event.reply_token, [ TextSendMessage(text='Display name: ' + profile.display_name), TextSendMessage(text='Status message: ' + profile.status_message) ] ) else: line_bot_api.reply_message( event.reply_token, TextSendMessage(text="Bot can't use profile API without user ID")) elif text == 'bye': if isinstance(event.source, SourceGroup): line_bot_api.reply_message( event.reply_token, TextSendMessage(text='Leaving group')) line_bot_api.leave_group(event.source.group_id) elif isinstance(event.source, SourceRoom): line_bot_api.reply_message( event.reply_token, TextSendMessage(text='Leaving group')) line_bot_api.leave_room(event.source.room_id) else: line_bot_api.reply_message( event.reply_token, TextSendMessage(text="Bot can't leave from 1:1 chat")) elif text == 'confirm': confirm_template = ConfirmTemplate(text='Do it?', actions=[ MessageAction(label='Yes', text='Yes!'), MessageAction(label='No', text='No!'), ]) template_message = TemplateSendMessage( alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'ยกเลิก': result=cancelall() line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result)) elif text == 'กลับ': result=rollback() line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result)) elif text == 'ย้อน': result=rollback() line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result)) elif text == 'ย้อนกลับ': result=rollback() line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result)) elif text == 'ราคาน้ำมัน': result=gesprice() line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result)) else: result=userAction(text) line_bot_api.reply_message( event.reply_token, TextSendMessage(text=result))
def sendCancel(event, user_id): #取消訂房 try: if teamUp.objects.filter(bid=user_id).exists(): #已有訂房記錄 teamUpdata = teamUp.objects.get(bid=user_id) #讀取訂房資料 place = teamUpdata.place amount = teamUpdata.amount timein = teamUpdata.timein text1 = "您的揪團資料如下:" text1 += "\n場地:" + place text1 += "\n人數:" + amount + " 人" text1 += "\n日期:" + timein.replace("T", "\n時間:") message = [ TextSendMessage( #顯示訂房資料 text=text1), TemplateSendMessage( #顯示確認視窗 alt_text='取消揪團確認', template=ConfirmTemplate( text='你確定要取消揪團嗎?', actions=[ PostbackTemplateAction( #按鈕選項 label='是', data='action=yes'), PostbackTemplateAction(label='否', data='action=no') ])) ] else: #沒有訂房記錄 message = TextSendMessage(text='您目前沒有揪團!') line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,\ TextSendMessage(text='sendCancel發生錯誤!'))
def confirm(cls, line_bot, event, message, data): employee_id, patient_id = data['V'] patient = Patient.objects.get(pk=patient_id) text = '留言內容:\n%s' % message pass_context = '收到針對個案 %s 的留言訊息\n%s' % (patient.name, message) token = get_random_string(8) cache.set('_line:temp:%s:%s' % (event.source.user_id, token), (employee_id, pass_context), 3600) line_bot.reply_message( event.reply_token, TemplateSendMessage(alt_text='請使用手機檢視內容', template=ConfirmTemplate( text=text[:160], actions=[ PostbackTemplateAction( '確定', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_PASS_NOTE, 'V': token })), PostbackTemplateAction( '重填', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_SEND_NOTE, 'V': (employee_id, patient_id, token) })) ])))
def clean(cls, line_bot, event, patient_id): token = get_random_string(8) cache.set('_line:temp:%s:%s' % (event.source.user_id, token), patient_id, 300) line_bot.reply_message( event.reply_token, TemplateSendMessage(alt_text='確定清除留言板?', template=ConfirmTemplate( text='確定清除留言板?', actions=[ PostbackTemplateAction( '確定', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_CLEAN_CONFIRM_NOTE, 'V': (token, True) })), PostbackTemplateAction( '取消', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_CLEAN_CONFIRM_NOTE, 'V': (token, False) })) ])))
def confirm(cls, line_bot, event, message, data): patient_id = data['V'] text = '留言內容:\n%s' % message token = get_random_string(8) cache.set('_line:temp:%s:%s' % (event.source.user_id, token), (patient_id, message), 3600) line_bot.reply_message( event.reply_token, TemplateSendMessage(alt_text='請使用手機檢視內容', template=ConfirmTemplate( text=text[:160], actions=[ PostbackTemplateAction( '確定', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_COMMIT_NOTE, 'V': token })), PostbackTemplateAction( '重填', json.dumps({ 'T': T_SIMPLE_QUERY, 'stage': STAGE_WRITE_NOTE, 'V': (patient_id, token) })) ])))
def handle_postback(event): user_id = event.source.user_id if '餐廳位置' in event.postback.data: message = ImageSendMessage( original_content_url=event.postback.data.replace('餐廳位置',''), preview_image_url=event.postback.data.replace('餐廳位置','') ) line_bot_api.reply_message(event.reply_token, message) elif '我想去吃' in event.postback.data: food_nearby(user_id,event.postback.data.replace('我想去吃','')) elif event.postback.data == '獲得導覽資訊': Confirm_template = TemplateSendMessage( alt_text='是否開啟藍芽與Line Beacon', template=ConfirmTemplate( title='是否開啟藍芽與Line Beacon', text='若要使用導覽功能則必須開啟藍芽與Line Beacon,是否同意?\n若點選同意,則請再「隱私設定」中的「提供使用者資料」中開啟Line Beacon', actions=[ URITemplateAction( label='我同意', uri='line://nv/settings/privacy' ), PostbackTemplateAction( label='我不同意', data='我不同意開啟藍芽' ) ] ) ) line_bot_api.reply_message(event.reply_token,Confirm_template) elif event.postback.data == '我不同意開啟藍芽': Text = '如果之後想要開啟,請再點選導覽按鈕' line_bot_api.reply_message(event.reply_token,TextSendMessage(text=Text)) elif '預約活動:' in event.postback.data: Text = '已為您預約'+event.postback.data.replace('預約活動:','') line_bot_api.reply_message(event.reply_token,TextSendMessage(text=Text))
def __search_store(self): place_result = self.google_map_api.place_search( store_name=self.text) # 店家資料搜尋 if place_result: rate = f"{place_result.get('rating')}顆星" if place_result.get( "rating") else "尚無評價" reply = f"{place_result['name']}\n評價: {rate}\n{place_result['url']}" redis.set(f"{self.group_id}:save_store", place_result, 30) # 店家資訊暫存 redis.set(f"{self.group_id}:add", False, 60) # 暫時關閉店家查詢功能 else: reply = "Google地圖搜尋無結果" self.line_bot_api.reply_message( self.event.reply_token, [ TextMessage(text=reply), TemplateSendMessage( alt_text="店家查詢確認", template=ConfirmTemplate( text="確定是這家嗎?", actions=[ MessageAction(label="對", text="Yes"), MessageAction(label="我要再查一次", text="Again"), ], ), ), ], )
def push_turn_off_confirm(self): see_you_message = TextSendMessage("でかけるのですか?行ってらっしゃいませ。") environment_information = self.get_environment() information_message = TextSendMessage(environment_information) confirm_template_message = TemplateSendMessage( alt_text='エアコン消しておきますか?', template=ConfirmTemplate( text='エアコン消しておきますか?', actions=[ PostbackTemplateAction( label='承認', text='承認', data='ac_off_approval' ), PostbackTemplateAction( label='否認', text='否認', data='ac_off_disapproval' ) ] ) ) send_messages = [see_you_message, information_message, confirm_template_message] self.line_bot_api.push_message(self.my_line_user_id, send_messages) return True
def push_turn_on_confirm(self): welcome_back_message = TextSendMessage("もうすぐ家ですね。おかえりなさい。") environment_information = self.get_environment() information_message = TextSendMessage(environment_information) confirm_template_message = TemplateSendMessage( alt_text='エアコンつけておきますか?', template=ConfirmTemplate( text='エアコンつけておきますか?', actions=[ PostbackTemplateAction( label='承認', text='承認', data='ac_on_approval' ), PostbackTemplateAction( label='否認', text='否認', data='ac_on_disapproval' ) ] ) ) send_messages = [welcome_back_message, information_message, confirm_template_message] self.line_bot_api.push_message(self.my_line_user_id, send_messages) return True
def sendCancel(event, user_id): #取消訂房 try: if booking.objects.filter(bid=user_id).exists(): #已有訂房記錄 bookingdata = booking.objects.get(bid=user_id) #讀取訂房資料 roomtype = bookingdata.roomtype amount = bookingdata.roomamount in_date = bookingdata.datein out_date = bookingdata.dateout text1 = "您預訂的房間資料如下:" text1 += "\n房間型式:" + roomtype text1 += "\n房間數量:" + amount text1 += "\n入住日期:" + in_date text1 += "\n退房日期:" + out_date message = [ TextSendMessage( #顯示訂房資料 text=text1), TemplateSendMessage( #顯示確認視窗 alt_text='取消訂房確認', template=ConfirmTemplate( text='你確定要取消訂房嗎?', actions=[ PostbackTemplateAction( #按鈕選項 label='是', data='action=yes'), PostbackTemplateAction(label='否', data='action=no') ])) ] else: #沒有訂房記錄 message = TextSendMessage(text='您目前沒有訂房記錄!') line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def bookTicketsMessage(step=0): if step == 1: message = TextSendMessage(text='''請告知我您註冊的使用者名稱''') elif step == 2: message = TextSendMessage(text='''請告知我去程乘車的日期,請按照格式輸入 EX:20180911''') elif step == 3: message = TextSendMessage(text='''請告知我您的起站 EX:台北''') elif step == 4: message = TextSendMessage(text='''請告知我您的訖站 EX:台北''') elif ((step == 5) or (step == 11)): message = TemplateSendMessage( alt_text="車種確認", template=ConfirmTemplate(text="請確認預定車種", actions=[ PostbackTemplateAction( label="1-自強號", text="1-自強號", data='action=buy&itemid=1'), MessageTemplateAction(label="2-莒光號", text="2-莒光號") ])) elif ((step == 6) or (step == 12)): message = TextMessage(text='''欲搭乘時間範圍的開始時間,請以整點為單位 EX:0900''') elif ((step == 7) or (step == 13)): message = TextMessage( text='''欲搭乘時間範圍的結束時間,請以整點為單位,最晚時間到23:59 EX:0900''') elif ((step == 8) or (step == 14)): message = TextSendMessage(text='''請告知我您欲搭乘的車次代碼,請按照格式輸入 EX:122''') elif (step == 9): message = TextSendMessage( text='''請告知您的訂票數 EX:1 (如超過6張票以上,請分兩次訂票),如果是預定來回票,票數會自動購買相同數量。''') elif step == 10: message = TextSendMessage(text='''請告知我回程乘車的日期,請按照格式輸入 EX:20180911''') return message
def composeConfirm(alt_text, text, option1, option2): if option1['type'] == "postback": opt1_payload = PostbackTemplateAction( label=option1['label'], # text=option1['text'], data=option1['data'] ) elif option1['type'] == "message": opt1_payload = MessageTemplateAction( label=option1['label'], text=option1['text'] ) if option2['type'] == "postback": opt2_payload = PostbackTemplateAction( label=option2['label'], # text=option2['text'], data=option2['data'] ) elif option2['type'] == "message": opt2_payload = MessageTemplateAction( label=option2['label'], text=option2['text'] ) payload = TemplateSendMessage( alt_text=alt_text, template=ConfirmTemplate( text=text, actions=[opt1_payload, opt2_payload] ) ) return payload
def handle_image_message(event): message_content = line_bot_api.get_message_content(event.message.id) data = apiMl.getObjectDetection(message_content.content) textStr = '' if data['qty_bottle'] > 0: textStr += 'Bottle : \n' textStr += ' Amount ' + str(data['qty_bottle']) + '\n' textStr += ' Price ' + str(data['prc_bottle']) + '\n' if data['qty_can'] > 0: textStr += 'Can : \n' textStr += ' Amount ' + str(data['qty_can']) + '\n' textStr += ' Price ' + str(data['prc_can']) + ' Baht\n' if data['qty_glass'] > 0: textStr += 'Glass : \n' textStr += ' Amount ' + str(data['qty_glass']) + '\n' textStr += ' Price ' + str(data['prc_glass']) + ' Baht\n' textStr += 'Total Price : ' + str(data['Total']) + ' Baht \n' textStr += '\n Confirm order? ' print(textStr) confirm_template = ConfirmTemplate(text=textStr, actions=[ PostbackAction(label='Confirm', data='location'), PostbackAction(label='cancel', data='getridch', text='cancel'), ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message)
def start(event,value,number): try: if number < 10: value+=1 number+=1 if value >20:#題庫20 繞回第一題 value=1 food = models.Topic.objects.get(id="t" + str(value)) message=TemplateSendMessage( alt_text='無法顯示', template=ButtonsTemplate( thumbnail_image_url=staticurl+"/topic/t"+str(value)+".jpg", title=food.name, text='請問您對此道料理的喜好?', actions=[PostbackTemplateAction(label="喜歡",text="@喜歡",data="data=like&value="+str(value)+"&number="+str(number)+"&like=1"), PostbackTemplateAction(label="不喜歡",text="@不喜歡",data="data=like&value="+str(value)+"&number="+str(number)+"&like=0")]#用0來判斷user 喜好之後的要做事情 ) ) line_bot_api.reply_message(event.reply_token,message) elif number == 10: message=TemplateSendMessage( alt_text='無法顯示', template=ConfirmTemplate( text='恭喜完成調查!', actions=[MessageTemplateAction(label="開始分析",text="@為您推薦"), MessageTemplateAction(label="剛剛有選錯...",text="@清空資料")]#用0來判斷user 喜好之後的要做事情 ) ) line_bot_api.reply_message(event.reply_token,message) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text="發生錯誤~")) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text="發生錯誤~~"))
def handle_text_message(event): text = event.message.text template_conf = ConfirmTemplate( text='Udah makan?', actions=[ MessageTemplateAction(label='Udah', text='makan_sudah'), MessageTemplateAction(label='Belom', text='makan_belom') ]) if text.lower() == 'halo': line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='Halo juga!!'), TemplateSendMessage(alt_text='Udah makan?', template=template_conf) ]) elif text == 'makan_sudah': line_bot_api.reply_message( event.reply_token, TextSendMessage(text='Alhamdulillah, sudah makan.')) elif text == 'makan_belom': line_bot_api.reply_message(event.reply_token, TextSendMessage(text='Kuy makan !!')) elif text == 'joox_help': line_bot_api.reply_message( event.reply_token, TextSendMessage( text= '[Joox Help]\nKetik joox nama_lagu\nKetik angka\nJika batal, ketik 99' )) elif text == 'yt_help': line_bot_api.reply_message( event.reply_token, TextSendMessage(text='[YouTube Help]\nKetik yt.video nama_lagu')) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='Tidak ada perintah')) '''if text == 'profile':
def education(reply_token): message1 = TextSendMessage( text= "在大學時期,我修習了許多資訊工程的核心課程,如「資料結構與演算法、演算法設計與分析、作業系統、計算機結構、線性代數」等,在這些課程中我學習了基礎的程式設計的觀念與作業實作。\n" + "之後也在學校的「CS+X」課程中學習應用方面的網頁相關語言HTML、CSS、JavaScript及遊戲設計使用Unity和資料庫使用MongoDB。" ) message2 = TextSendMessage( text= "在當研究生的這段期間,除了跟指導老師吳家麟做區塊鏈方面的研究外,我還修習了電機系李宏毅的「機器學習」及資工系林軒田的「機器學習基石」課程\n" + "在李宏毅的機器學習課程中我學到用keras實作DNN、CNN、RNN等Deep learning的技術,也用python實作word embedding、t-SNE、auto-encoder、K-means等處理資料的方式。\n" + "在林軒田的機器學習基石的課程中則是透過數學證明,為機器學習背後的數學理論打下基礎。") message3 = TextSendMessage( text="在課餘時會跟著教授參與金融科技、區塊鏈等的研討會,也定期追蹤R-ladies Taipei的社團動態\n" + "聽前輩分享研究成果或是現在的趨勢,除了可以對未來研究方向有幫助之外,也讓自己隨時與世界接軌,充實自己。") confirm_template = ConfirmTemplate(text='是否需要附上成績單?', actions=[ MessageTemplateAction(label='Yes', text='Yes!'), MessageTemplateAction(label='No', text='No!'), ]) template_message = TemplateSendMessage(alt_text='學業', template=confirm_template) line_bot_api.reply_message( reply_token, [message1, message2, message3, template_message])
def send_E2_4F_classroom(event, line_bot_api): # 確認按鈕模板 try: print(event) Confirm_template = TemplateSendMessage( alt_text="This is E2 4F classroom confirm template", template=ConfirmTemplate( title='This is a ConfirmTemplate', text='請問要檢查E2工程二館\n4F哪一側?', # 要問的問題,或是文字敘述 # action 最多只能兩個喔! actions=[ MessageAction( label='西側', # 顯示名稱 text='西側' # 點擊後,回傳的文字 ), MessageAction( label='東側', # 顯示名稱 text='東側' # 點擊後,回傳的文字 ) ])) print("1235952") line_bot_api.reply_message(event.reply_token, Confirm_template) except: line_bot_api.reply_message( event.reply_token, TextSendMessage(text='發生錯誤!send_E2_4F_classroom'))
def button_yoyaku_ymd(label): # 現在日時の取得 get_day = datetime.datetime.now() if get_day.hour + 9 > 18: get_date = str(get_day.year) + "-" + str( get_day.month).zfill(2) + "-" + str(get_day.day + 1).zfill(2) max_date = str(get_day.year) + "-" + str(get_day.month + 1).zfill( 2) + "-" + str(get_day.day + 1).zfill(2) else: get_date = str(get_day.year) + "-" + str( get_day.month).zfill(2) + "-" + str(get_day.day).zfill(2) max_date = str( get_day.year) + "-" + str(get_day.month + 1).zfill(2) + "-" + str( get_day.day).zfill(2) message_template = TemplateSendMessage( alt_text="a", template=ConfirmTemplate(text=label, actions=[ DatetimePickerAction( type="datetimepicker", label="日付選択", data="select_day_yoyaku", mode="date", initial=get_date, max=max_date, min=get_date), PostbackAction(label="予約状況確認", data="menu_yoyaku") ])) return message_template
def handle_postback(event): if event.postback.data == 'datetime_postback': selectedDate = datetime.datetime.strptime( event.postback.params['date'], '%Y-%m-%d') dateNewFormat = datetime.date.strftime(selectedDate, "%d %B %Y") line_bot_api.reply_message(event.reply_token, TextSendMessage(text= 'To-do List pada ' + dateNewFormat + ':\n'\ '- 07.00 - 09.00 = WBD\n'\ '- 09.00 - 11.00 = AI')) elif event.postback.data == 'todolist_datetime_postback': global toDoListString dateAndTime = event.postback.params['datetime'].split("T") selectedDate = datetime.datetime.strptime(dateAndTime[0], '%Y-%m-%d') dateNewFormat = datetime.date.strftime(selectedDate, "%d %B %Y") toDoListString += '\ntanggal: ' + dateNewFormat + '\nPukul : ' + dateAndTime[ 1] + '\nberhasil ditambahkan' line_bot_api.push_message(event.source.user_id, TextSendMessage(text=toDoListString)) confirm_template = ConfirmTemplate( text= 'Apakah ingin mengaktifkan reminder untuk to-do list yang baru ditambahkan?', actions=[ PostbackAction(label='Yes', data='reminderON'), PostbackAction(label='No', data='reminderOFF'), ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message) elif event.postback.data == 'reminderON': line_bot_api.push_message( event.source.user_id, TextSendMessage(text="Reminder berihasil diaktifkan")) elif event.postback.data == 'reminderOFF': line_bot_api.push_message( event.source.user_id, TextSendMessage(text="Reminder tidak diaktifkan"))
def final_ticket(line_bot, event, message, data): patient_id, catalog_id = data['V'] text = '詢問問題內容:\n%s' % message line_bot.reply_message( event.reply_token, TemplateSendMessage(alt_text='請使用手機檢視問題', template=ConfirmTemplate( text=text[:160], actions=[ PostbackTemplateAction( '確定', json.dumps({ 'T': T_PATIENT, 'stage': STAGE_SUBMIT, 'V': (patient_id, catalog_id, message) })), PostbackTemplateAction( '重填', json.dumps({ 'T': T_PATIENT, 'stage': STAGE_REPORT, 'V': (patient_id, catalog_id) })) ])))
def confirm_image_add(): confirm_template = ConfirmTemplate(text='写真はもうありませんか', actions=[ PostbackAction(label='もう大丈夫', data='もう大丈夫', text='もう大丈夫'), PostbackAction(label='まだある', data='まだある', text='まだある'), ]) confirm_message = TemplateSendMessage( alt_text='confirm_image_add', template=confirm_template) return confirm_message
def confirm_image_upload(): confirm_template = ConfirmTemplate(text='お部屋の画像やこうしたいイメージなどはございますか?', actions=[ MessageAction(label='写真がある', text='写真がある'), MessageAction(label='特にない', text='写真は特にない'), ]) confirm_message = TemplateSendMessage( alt_text='お部屋のイメージを教えてください', template=confirm_template) return confirm_message
def handle_unbind(self): return TemplateSendMessage( alt_text='確定解除綁定?', template=ConfirmTemplate( text='真的要走嗎 QQ ~如果要再回來的話,重新註冊分數還會在喔!', actions=[ PostbackTemplateAction(label='確認', data='CONFIRM_DELETE'), PostbackTemplateAction(label='取消', data='CANCEL_DELETE'), ]))
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): text = event.message.text if Keyword.objects.filter(key=text): key = Keyword.objects.get(key=text) if key.response_type == 1: message = TextSendMessage(text=key.response) message2 = StickerSendMessage(package_id = "2" , sticker_id = "149") line_bot_api.reply_message(event.reply_token,[message2, message]) elif key.response_type == 2: response = key.response.split(';') choices = response[1].split(',') action=[] for choice in choices: action.append(MessageTemplateAction( label=choice, text=choice)) message = TemplateSendMessage( alt_text='Confirm template', template=ConfirmTemplate( text=response[0], actions = action ) ) line_bot_api.reply_message(event.reply_token,message) else: url = "https://crobott.herokuapp.com/chatterbot/" r = json.loads(requests.post(url, json={'text': text}).content.decode()) message = TextSendMessage(text=r['text']) line_bot_api.reply_message(event.reply_token,message) else: message = TextSendMessage(text="抱歉Crobot目前沒辦法解讀非文字訊息!但我會隨機生成貼圖QQ") message2 = StickerSendMessage(package_id = "2" , sticker_id = random.randint(140,179)) line_bot_api.reply_message(event.reply_token,[message, message2]) return HttpResponse() else: return HttpResponseBadRequest()
def ask_for_registration(self): return TemplateSendMessage(alt_text='註冊之後就可以開始玩囉!', template=ConfirmTemplate( text='註冊之後就可以開始玩囉!', actions=[ MessageTemplateAction(label='開始註冊', text='開始註冊'), PostbackTemplateAction( label='取消', data='NOREGISTER'), ]))
def createConfirmMessage(): confirm_template = ConfirmTemplate( text='あなたはこの質問にYesと答える...', actions=[ MessageTemplateAction(label='Yes', text='Yes...ハッ!?'), MessageTemplateAction(label='Yes!!', text='Yes!!...ハッ!?') ]) template_message = TemplateSendMessage(alt_text='これはテストコンファームです', template=confirm_template) return template_message
def reply_connect(reply_token): lba.reply_message(reply_token, TemplateSendMessage( alt_text='接続しますか?', template=ConfirmTemplate( text='接続しますか?', actions=[ PostbackTemplateAction(label='はい', data='connect'), PostbackTemplateAction(label='いいえ', data='no_connect'), ] ) ))