def buttletemplate_weather_south2(id): message = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( # thumbnail_image_url='https://example.com/image.jpg', title='南部縣市', text='Please select', actions=[ MessageAction( label='臺南市', text='臺南市' ), MessageAction( label='高雄市', text='高雄市' ), MessageAction( label='屏東縣', text='屏東縣' ), MessageAction( label='嘉義縣', text='嘉義縣' ), ] ) ) line_bot_api.push_message(id,message)
def buttletemplate_weather_middle(id): message = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( # thumbnail_image_url='https://example.com/image.jpg', title='中北部縣市', text='Please select', actions=[ MessageAction( label='臺中市', text='臺中市' ), MessageAction( label='新竹市', text='新竹市' ), MessageAction( label='新竹縣', text='新竹縣' ), MessageAction( label='苗栗縣', text='苗栗縣' ) ] ) ) line_bot_api.push_message(id,message)
def make_button(): # message_template = TextSendMessage( # text='変換方法を選んでください', # quick_reply=QuickReply( # items=[ # QuickReplyButton( # action=MessageAction(label="クロスハッチング", text="クロスハッチング") # ), # QuickReplyButton( # action=MessageAction(label="東京喰種風", text="東京喰種風") # ), # QuickReplyButton( # action=MessageAction(label="ステンドグラス風", text="ステンドグラス風") # ), # QuickReplyButton( # action=MessageAction(label="ポスター風", text="ポスター風") # ), # ] # ) # ) buttons = ButtonsTemplate(title='画風変換', text='画風を選択してください', actions=[ MessageAction(label='クロスハッチング', text='クロスハッチング'), MessageAction(label="東京喰種風", text="東京喰種風"), MessageAction(label="ステンドグラス風", text="ステンドグラス風"), MessageAction(label="ポスター風", text="ポスター風"), ]) template_message = TemplateSendMessage(alt_text='ERROR', template=buttons) return template_message
def buttletemplate(id): message = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( # thumbnail_image_url='https://example.com/image.jpg', title='Menu', text='Please select', actions=[ MessageAction( label='社會', text='社會' ), MessageAction( label='政治', text='政治' ), MessageAction( label='國際', text='國際' ), MessageAction( label='娛樂', text='娛樂' ) ] ) ) line_bot_api.push_message(id,message)
def sendBack_buy(event, backdata): #處理Postback try: #text1 = '感謝您的購買,我們將盡快為您處理。\n(action 的值為 ' + backdata.get('action') + ')' #text1 += '\n(可將處理程式寫在此處。)' message = TextSendMessage( text='您還滿意這次的服務嗎?', quick_reply=QuickReply( items=[ QuickReplyButton( action=MessageAction(label="非常滿意", text="非常滿意") ), QuickReplyButton( action=MessageAction(label="滿意", text="滿意") ), QuickReplyButton( action=MessageAction(label="普通", text="普通") ), QuickReplyButton( action=MessageAction(label="有待改善", text="有待改善") ), ] ) ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
def price(): mes = BubbleContainer( header=BoxComponent(layout='baseline', contents=[ TextComponent(text='Q5:價格預算', weight='bold', size='xxl', flex=2, align='center') ]), body=BoxComponent( layout='vertical', spacing='xs', contents=[ ButtonComponent(style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='100~350元', text='100~350元')), ButtonComponent(margin='xl', style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='351~600元', text='351~600元')), ButtonComponent(margin='xl', style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='600元以上', text='600元以上')) ])) message = FlexSendMessage(alt_text="hello", contents=mes) return message
def select_weather_area(id): message = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( # thumbnail_image_url='https://example.com/image.jpg', title='選擇區域', text='Please select', actions=[ MessageAction( label='北部', text='北部' ), MessageAction( label='中部', text='中部' ), MessageAction( label='南部', text='南部' ), MessageAction( label='東部', text='東部' ) ] ) ) line_bot_api.push_message(id,message)
def build_rabbit_adopt_content(): container = BubbleContainer( direction='ltr', body=BoxComponent( layout='vertical', contents=[ TextComponent(text='你還沒有兔子', weight='bold', size='xl'), SeparatorComponent(), BoxComponent(layout='horizontal', spacing='sm', contents=[ ButtonComponent( style='primary', height='sm', color='#95B9B4', action=MessageAction(label='領養兔子', text='領養兔子'), ), ButtonComponent(style='primary', height='sm', color='#95B9B4', action=MessageAction( label='沒事了', text='沒事了')) ]) ], ), ) return container
def create_buttons_template(): """嫁いまなにしてる""" ## ラズパイへ url = '{address}/linebot'.format(address=NGROK_ADDRESS) # url = '{address}/linebot'.format(address=NGROK_ADDRESS) headers = {"content-type": "application/json"} r = requests.get(url, headers=headers) data = r.json() # print(data[0]) # print(data[1]) return TemplateSendMessage( alt_text='感情衛生ひまわり', template=ButtonsTemplate( # thumbnail_image_url='https://storage.googleapis.com/smartse-team3/shipnaku_3.jpg', thumbnail_image_url= 'https://storage.googleapis.com/smartse-team3/{filename}'.format( filename=data[1]), # thumbnail_image_url='{address}/get_image'.format(address=NGROK_ADDRESS), title='感情衛生ひまわり', text=data[0], actions=[ MessageAction(label='rc_graph', text='rc_graph'), MessageAction(label='line_graph', text='line_graph'), MessageAction(label='heartbeat', text='heartbeat') ]))
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 sendMoon(event): try: message =[ TextSendMessage( text = '感謝您購買月餅,我們將盡快為您製作。' ), TextSendMessage( text='您還滿意這次的服務嗎?', quick_reply=QuickReply( items=[ QuickReplyButton( action=MessageAction(label="非常滿意", text="非常滿意") ), QuickReplyButton( action=MessageAction(label="滿意", text="滿意") ), QuickReplyButton( action=MessageAction(label="普通", text="普通") ), QuickReplyButton( action=MessageAction(label="有待改善", text="有待改善") ), ] ) ) ] line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(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 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 chain(): mes = BubbleContainer( header=BoxComponent(layout='baseline', contents=[ TextComponent(text='Q4:想購買的通路', weight='bold', size='xxl', flex=2, align='center') ]), body=BoxComponent( layout='vertical', spacing='xs', contents=[ ButtonComponent(style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='家樂福', text='家樂福')), ButtonComponent(margin='xl', style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='全聯', text='全聯')), ButtonComponent(margin='xl', style='secondary', color='#FFEE99', height='sm', action=MessageAction(label='Costco', text='Costco')) ])) message = FlexSendMessage(alt_text="hello", contents=mes) return message
def sendRobotService(event): #當點選到機器人導覽服務的時候會產出五項快速選單 try: message =TextSendMessage( text='請選擇要導覽的項目:', quick_reply=QuickReply( items=[ QuickReplyButton( action=MessageAction(label="景點查詢", text="景點查詢") ), QuickReplyButton( action=MessageAction(label="遊記查詢", text="遊記查詢") ), QuickReplyButton( action=MessageAction(label="交通查詢", text="交通查詢") ), QuickReplyButton( action=MessageAction(label="路線查詢", text="路線查詢") ), QuickReplyButton( action=MessageAction(label="天氣查詢", text="天氣查詢") ), ] ) ) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token,TextSendMessage(text='發生錯誤!'))
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 daftar_absen_carousel(): absens_query = """ SELECT name FROM sqlite_master WHERE type = 'table'""" absens = sqlite_select_all(absens_query) print(absens) carousel_columns = [] for absen_id in absens: absen_id = list(absen_id) absen_id = str(absen_id[0]) print(absen_id) select_all_in_absen_query = "SELECT val FROM " + absen_id select_all_in_absen = sqlite_select_all(select_all_in_absen_query) data_list = [] for data_in_absen in select_all_in_absen: data_in_absen = list(data_in_absen) data_in_absen = str(data_in_absen[0]) data_list.append(data_in_absen) print(data_in_absen) carousel_columns.append( CarouselColumn( title=data_list[2], text=data_list[3] + "(oleh " + data_list[4] + ")", actions=[ MessageAction(label='Hadir', text='#absen ' + data_list[1] + ' Hadir'), MessageAction(label='Izin', text='#absen ' + data_list[1] + ' Izin'), MessageAction(label='Sakit', text='#absen ' + data_list[1] + ' Sakit'), ]), ) print(data_list) # daftar_absen_template = TemplateSendMessage( # alt_text='Pesan Absen', # template=ButtonsTemplate( # title="Daftar Absen", # text="Tekan absen di bawah untuk memunculkan opsi kehadiran.", # actions=actions_template # ) # ) daftar_absen_template = TemplateSendMessage( alt_text='Pesan Daftar Absen', template=CarouselTemplate(columns=carousel_columns)) return daftar_absen_template
def _generate_dist_venues(self, dist_venues): actions = [] columns = [] if (len(dist_venues) / 4) <= 1.0: for venue in dist_venues: actions.append( MessageAction(label=venue['title'], text=venue['title'])) template_message = TemplateSendMessage( alt_text='請問你是要問' + dist_venues[0]['dist'] + '的哪個館呢?', template=ButtonsTemplate(title=dist_venues[0]['dist'], text='以下是' + dist_venues[0]['dist'] + '有提供資訊的展館', actions=actions)) return template_message else: empty_action = PostbackAction(label='空白按鈕', data='empty') for venue in dist_venues: actions.append( MessageAction(label=venue['title'], text=venue['title'])) if (len(actions) % 3 == 0): column = CarouselColumn(title=venue['dist'], text='以下是' + venue['dist'] + '有提供資訊的展館', actions=actions) columns.append(column) actions = [] while len(actions) % 3 != 0: actions.append(empty_action) column = CarouselColumn(title=venue['dist'], text='以下是' + venue['dist'] + '有提供資訊的展館', actions=actions) columns.append(column) carousel_template = CarouselTemplate(columns=columns) template_message = TemplateSendMessage( alt_text='請問你是要問' + dist_venues[0]['dist'] + '的哪個館呢?', template=carousel_template) return template_message
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 scense4(subject, next_tag): # 場景名: question_loop_False reply = [] reply_items = [] reply_word = f"您覺得 {subject} 對 {next_tag} 有興趣嗎?有/無(換一題)" reply_items.append(QuickReplyButton(action=MessageAction(label="有", text="有"))) reply_items.append(QuickReplyButton(action=MessageAction(label="無,換一題", text="無"))) messages2 = TextSendMessage(reply_word, quick_reply=QuickReply(items=reply_items)) reply.append(messages2) return reply
def message_init(event): user = User.query.filter_by(line_id=line_bot_api.get_profile( event.source.user_id).user_id).first() greeting = setGreeting( datetime.fromtimestamp(event.timestamp // 1000).time().hour) if user: # If user account already exists (i.e., past user) if not user.name: items = [ QuickReplyButton(action=MessageAction( label=line_bot_api.get_profile( event.source.user_id).display_name + "に設定する", text=line_bot_api.get_profile( event.source.user_id).display_name)) ] line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text=greeting + '友達再追加ありがとうございます!'), TextSendMessage( text='このボットは、あなたのことをなんとお呼びすればいいですか?お名前またはニックネームを教えてください。', quick_reply=QuickReply(items=items)) ]) elif not user.email: line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text=user.name + 'さん、' + greeting + '\n友達再追加ありがとうございます!'), TextSendMessage( text='まだメールアドレスが登録されていないようです。頻繁に使用するメールアドレスを入力してください。') ]) else: line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text=user.name + 'さん、' + greeting + '\n友達再追加ありがとうございます!'), TextSendMessage(text='基本操作は画面下のメニューから行なってください。') ]) else: # If new user db.session.add( User(line_id=line_bot_api.get_profile( event.source.user_id).user_id, created_at=datetime.now())) db.session.commit() items = [ QuickReplyButton( action=MessageAction(label=line_bot_api.get_profile( event.source.user_id).display_name + "に設定する", text=line_bot_api.get_profile( event.source.user_id).display_name)) ] line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text=greeting + '友達追加ありがとうございます!'), TextSendMessage( text='このボットは、あなたのことをなんとお呼びすればいいですか?お名前またはニックネームを教えてください。', quick_reply=QuickReply(items=items)) ])
def display_confirm_dialog(self): confirm_template = ConfirmTemplate( text='All the above information is correct or not?', actions=[ MessageAction(label='Yes', text='Yes'), MessageAction(label='No', text='No') ]) template_message = TemplateSendMessage(alt_text='Confirm information', template=confirm_template) self.__message_pusher(template_message)
def get_stock_chart(stock_id: string): text_message = TextSendMessage( text='', quick_reply=QuickReply(items=[ QuickReplyButton(action=MessageAction(label="加入至我的股票", text=f'{stock_id}:加入我的股票')), QuickReplyButton( action=MessageAction(label="查看圖表", text=f'{stock_id}:查看圖表')) ])) return text_message
def handle_location_message(event): if isinstance(event.source, SourceUser) or isinstance(event.source, SourceGroup) or isinstance(event.source, SourceRoom): profile = line_bot_api.get_profile(event.source.user_id) USER_ID = profile.user_id USER_NAME = profile.display_name longitude = str(event.message.longitude) latitude = str(event.message.latitude) # line_bot_api.reply_message( # event.reply_token, # LocationSendMessage( # title=event.message.title, address=event.message.address, # latitude=event.message.latitude, longitude=event.message.longitude # ) # ) #line_single_push(USER_ID, str(event.message.longitude)) line_single_push(USER_ID, '查詢中 請稍候...') res = gym_search(longitude, latitude) if bool(res["isOk"]): res = res["response"] #web url '''web_res = [] for i in range(0, 3): result = gym_detail(res[i]['GymID']) web_res.append(result["web"])''' carousel_template = CarouselTemplate(columns=[ CarouselColumn(thumbnail_image_url=res[0]['Photo1'],text='約 '+str(res[0]['Distance'])+' 公里', title=res[0]['Name'], actions=[ MessageAction(label='查詢即時資訊', text=res[0]['Name']) #URIAction(label='官方網站', uri=web_res[0]) ]), CarouselColumn(thumbnail_image_url=res[1]['Photo1'],text='約 '+str(res[1]['Distance'])+' 公里', title=res[1]['Name'], actions=[ MessageAction(label='查詢即時資訊', text=res[1]['Name']) #URIAction(label='官方網站', uri=web_res[1]) ]), CarouselColumn(thumbnail_image_url=res[2]['Photo1'],text='約 '+str(res[2]['Distance'])+' 公里', title=res[2]['Name'], actions=[ MessageAction(label='查詢即時資訊', text=res[2]['Name']) #URIAction(label='官方網站', uri=web_res[2]) ]) ]) template_message = TemplateSendMessage( alt_text='附近的運動中心', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) else: line_bot_api.reply_message( event.reply_token, TextSendMessage(text='附近暫無運動中心'))
def random_idea_reply_messages(idea, user): messages = [] messages.append( TextSendMessage(text='こんなアイデアがあるよ!\n-----\n' + idea + '\n-----')) messages.append( TemplateSendMessage(alt_text='表示できない状態です。スマートフォンから見てください!', template=ConfirmTemplate( text='いいねしますか?', actions=[ MessageAction(label='いいね!', text='いいね!'), MessageAction(label='評価しない', text='評価しない') ]))) return messages
def on_enter_exam(self, event): buttons_template = ButtonsTemplate(title='Q1', text='其他人考得怎麽樣呢?', actions=[ MessageAction(label='大家都一樣爛', text='大家都一樣爛'), MessageAction(label='只有我這麽爛', text='只有我這麽爛') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) reply_token = event.reply_token send_button_message(reply_token, template_message)
def on_enter_homework(self, event): buttons_template = ButtonsTemplate(title='Q1', text='可不可以‘參考’別人的作業呢?', actions=[ MessageAction(label='作業可以偷偷抄', text='作業可以偷偷抄'), MessageAction(label='助教抓抄襲超嚴格的', text='助教抓抄襲超嚴格的') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) reply_token = event.reply_token send_button_message(reply_token, template_message)
def on_enter_project(self, event): buttons_template = ButtonsTemplate(title='Q1', text='其他隊員怎麽樣呢?', actions=[ MessageAction(label='全部和我一樣廢', text='全部和我一樣廢'), MessageAction(label='隊内有超神卷哥卷姐', text='隊内有超神卷哥卷姐') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) reply_token = event.reply_token send_button_message(reply_token, template_message)
def test_confirm_template(self): arg = { 'type': 'confirm', 'text': 'Are you sure?', 'actions': [ MessageAction(label='Yes', text='yes...'), MessageAction(label='No', text='no...'), ] } self.assertEqual( self.serialize_as_dict(arg, type=self.CONFIRM), ConfirmTemplate(**arg).as_json_dict() )
def on_enter_friend(self, event): buttons_template = ButtonsTemplate(title='Q2', text='有沒有認識系上卷哥卷姐?', actions=[ MessageAction(label='有', text='有'), MessageAction(label='沒有我超邊緣', text='沒有我超邊緣') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) reply_token = event.reply_token send_button_message(reply_token, template_message)