def handle_message(event): # QuickMenu options optionList = ['<News>', '<Weather>'] infoItems = [ QuickReplyButton( action=MessageAction(label=f"{option}", text=f"{option}")) for option in optionList ] # Call up the Informant if event.message.text == "Informant": line_bot_api.reply_message( event.reply_token, TextSendMessage(text="What information do you want?", quick_reply=QuickReply(infoItems))) # News columns elif event.message.text == "<News>": js = fetchNews("jp", "general") newsColumns = [ CarouselColumn(thumbnail_image_url=articles["urlToImage"], title=articles["source"]["name"], text="Powered by NewsAPI.org", actions=[ URITemplateAction(label="Check", uri=articles["url"]) ]) for articles in js["articles"] ] newsCarousel = TemplateSendMessage( alt_text='news carousel', template=CarouselTemplate(columns=newsColumns)) line_bot_api.reply_message(event.reply_token, messages=newsCarousel) # Weather location prompt elif event.message.text == "<Weather>": line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text="Send your location information."), TextSendMessage(text='line://nv/location') ])
def response_message(event): # import pdb; pdb.set_trace() print(event) # notesのCarouselColumnの各値は、変更してもらって結構です。 notes = [ CarouselColumn( thumbnail_image_url= "https://cdn-ak.f.st-hatena.com/images/fotolife/m/mon3221/20171209/20171209094534.png", title="寝坊確認", text="田久保が寝ているかどうかを人感センサーで感知します。", # actions=[{"type": "message","label": "サイトURL","text": "https://renttle.jp/notes/kota/7"}] ), CarouselColumn( thumbnail_image_url="https://renttle.jp/static/img/renttle03.jpg", title="ReleaseNote】創作中の活動を報告する機能を追加しました。", text="創作中や考え中の時点の活動を共有できる機能を追加しました。", actions=[{ "type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/6" }]), CarouselColumn( thumbnail_image_url="https://renttle.jp/static/img/renttle04.jpg", title="【ReleaseNote】タグ機能を追加しました。", text="「イベントを作成」「記事を投稿」「本を登録」にタグ機能を追加しました。", actions=[{ "type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/5" }]) ] messages = TemplateSendMessage( alt_text='template', template=CarouselTemplate(columns=notes), ) line_bot_api.reply_message(event.reply_token, messages=messages)
def createCarousel(titles, links, imgs, push_num): carousel_message = TemplateSendMessage( type = 'template', alt_text = 'TowerSaviors Template', template = CarouselTemplate( type = 'carousel', columns = [ CarouselColumn( thumbnail_image_url = imgs[i], title = helper.activity_order[i], text = titles[i], actions = [ URITemplateAction( type = 'uri', label = 'Detail', uri = links[i] ) ] ) for i in range(push_num) ] ) ) return carousel_message
def __fetch_list(self): favourites = self.__redis.hkeys(self.__userid) if favourites: columns = [] for index in favourites: news = json.loads(self.__redis.hget(self.__userid, index)) columns.append( CarouselColumn(thumbnail_image_url=news['_News__url'], text=news['_News__title'], actions=[ PostbackTemplateAction(label='Read', data='@Read=' + str(index)), PostbackTemplateAction(label='Delete', data='@Delete=' + str(index)) ])) message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=columns)) else: message = TextSendMessage('Empty!') return message
def getMoreKnowledge(): result = [] res = requests.get( 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/advice-for-public/videos' ) soup = BeautifulSoup(res.text, 'html.parser') videos = soup.find('div', attrs={'id': 'PageContent_C054_Col01'}) for num in range(0, 5): url = videos.select('iframe')[num]['src'] soup_url = BeautifulSoup(requests.get(url).text, 'html.parser') title = prepareTitle(soup_url.title.text) column = CarouselColumn(title=title, text='views:' + str(r.incr(title)), actions=[ URITemplateAction(label='More', uri=url), ]) result.append(column) carousel = TemplateSendMessage(alt_text="5 more pieces of knowledge", template=CarouselTemplate(columns=result)) result_text = 'Find more videos about coronavirus, please click: ' \ 'https://www.who.int/emergencies/diseases/novel-coronavirus-2019/advice-for-public/videos ' result = [carousel, TextSendMessage(text=result_text)] return result
def personal_search_template(sencond=False): _columns = [ CarouselColumn( title='Categories-Job Level', text="Please select category that you want to set requirement", actions=[ MessageAction( label="Job Title", text="PS-title", ), MessageAction(label="Job Level", text="PS-level"), MessageAction(label="Location", text="PS-location") ]), CarouselColumn( title="Categories-Department Level", text="Please select category that you want to set requirement", actions=[ MessageAction(label="Job Network", text="PS-job_network"), MessageAction(label="Job Family", text="PS-job_family"), MessageAction(label="Department", text="PS-department") ]) ] if sencond == True: _columns.insert( 0, CarouselColumn( title="Settings", text="If you complete the personal seeting, press 'Complete'.", actions=[ MessageAction(label="Complete", text="CZ-complete"), MessageAction(label="Show My Setting", text="CZ-showczsetting"), MessageAction(label="Reset My Setting", text="CZ-reset") ])) template = TemplateSendMessage(alt_text='Personal Search Template', template=CarouselTemplate(columns=_columns)) return template
def response_message(event): # notesのCarouselColumnの各値は、変更してもらって結構です。 notes = [ CarouselColumn( thumbnail_image_url= "https://tan-designs.net/wp/wp-content/uploads/2018/01/kabi.jpg", title="もふ?非もふ?", text="直感的にお答え下さい!", actions=[{ "type": "message", "label": "もふ💕", "text": "https://www.google.com" }, { "type": "message", "label": "非もふ⚡", "text": "https://www.google.com" }]) # CarouselColumn(thumbnail_image_url="https://renttle.jp/static/img/renttle03.jpg", # title="ReleaseNote】創作中の活動を報告する機能を追加しました。", # text="創作中や考え中の時点の活動を共有できる機能を追加しました。", # actions=[ # {"type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/6"}]), # # CarouselColumn(thumbnail_image_url="https://renttle.jp/static/img/renttle04.jpg", # title="【ReleaseNote】タグ機能を追加しました。", # text="「イベントを作成」「記事を投稿」「本を登録」にタグ機能を追加しました。", # actions=[ # {"type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/5"}]) ] messages = TemplateSendMessage( alt_text='template', template=CarouselTemplate(columns=notes), ) line_bot_api.reply_message(event.reply_token, messages=messages)
def carousel_homework(content: List[Dict]) -> Dict: default = { # `None` marks the attribute as required 'hwIid': None, 'member': None, 'noOfSet': 3, 'personalTip': '', # TODO: Provide default image and video 'image': 'https://scdn.line-apps.com/n/channel_devcenter/img/flexsnapshot/clip/clip1.jpg', 'video': 'https://www.youtube.com', 'isFinished': False, 'baseMove': '基本動作' } def genItem(i, itemContent): itemContentWD = ChainMap(itemContent, default) colContent = { 'thumbnail_image_url': itemContentWD['image'], 'title': '回家作業 {}:{}'.format(i, itemContentWD['baseMove']), 'text': '{} 組'.format(itemContentWD['noOfSet']), 'default_action': userAction(LINE_USERACTION_TYPES.URI)( label='影片', uri=itemContentWD['video'] ), 'actions': [userAction(LINE_USERACTION_TYPES.POSTBACK)( label='已完成 ❤️', data='action=empty' )] if itemContentWD['isFinished'] else [userAction(LINE_USERACTION_TYPES.POSTBACK)( label='完成', display_text='我完成了 {}'.format(itemContentWD['baseMove']), data='action=finish_homework;hwIid={}'.format(itemContentWD['hwIid']) )] } return CarouselColumn(**colContent) return CarouselTemplate( columns=[genItem(i, itemContent) for i, itemContent in enumerate(content, 1)] )
def resultsTemplate(data): query = parseQuery(data) #TODO クエリからデートコース一覧を取得 # courses = ... location = query["location"][0] timeslot = query["time"][0] budget = query["budget"][0] courses = getCourses(location, timeslot, budget) if len(courses) == 1: courses = courses * 2 if courses: message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=courses)) return message else: return TextSendMessage(text="残念ですがご希望の条件に合ったデートコースが見つかりませんでした。")
def reply_carousel(result, event): rests = result['rest'] print("### {} ###".format(len(rests))) cnt = 0 c_cols = [] for rest in rests: shop_image1 = rest['image_url']['shop_image1'] NO_IMAGE = "https://line-bot-near-ramen.herokuapp.com/static/images/no_image.png" if not shop_image1: shop_image1 = NO_IMAGE address = rest['address'] tel = rest['tel'] shop_url = rest['url'] c_cols.append( CarouselColumn(thumbnail_image_url=shop_image1, title=rest['name'], text=(address[:57] + '...') if len(address) > 60 else address, actions=[ URITemplateAction(label='ぐるなびで詳細を見る', uri=shop_url), URITemplateAction(label=tel, uri='tel:' + tel), ])) cnt += 1 if cnt == 5: break try: carousel_template_message = TemplateSendMessage( alt_text='検索結果', template=CarouselTemplate(columns=c_cols)) line_bot_api.reply_message(event.reply_token, carousel_template_message) except LineBotApiError as e: print(e.status_code) print(e.error.message) print(e.error.details)
def make_carousel_object(result): '''Message Template''' carousel_list = [] for item in result[:10]: description = '\n'.join(['%s: %s' % (title, item[title]) for title in TITLES])[:60] action_list = [ URIAction(label='Company Summary', uri='line://app/1611201899-GaVvEBB3?id='+item['NavisionID']), URIAction(label='Contact List', uri='line://app/1611201899-xj78kWWZ?id='+item['NavisionID']), URIAction(label='Interesting', uri='line://app/1611201899-mkn59qqz?id='+item['NavisionID']), ] obj = CarouselColumn(text=description, title=item['Name'][:40], actions=action_list) carousel_list.append(obj) carousel_template = CarouselTemplate(columns=carousel_list) template_message = TemplateSendMessage( alt_text='Here are the companies/resellers we found', template=carousel_template) return template_message
def get_carousel_template_message(video_sort=Order, carousel_column_amount=5): if carousel_column_amount > 9: return "過多的 columns (必須小於10)" columns = [] for video in get_videos("UC-sM_PLqzgktdUcW2LEKKkQ", video_sort, carousel_column_amount): columns.append( CarouselColumn(thumbnail_image_url=video, title='標題', text='敘述', actions=[ PostbackTemplateAction( label='postback1', text='postback text1', data='action=buy&itemid=1'), MessageTemplateAction(label='message1', text='message text1'), URITemplateAction(label='uri1', uri='http://example.com/1') ])) columns.append(get_video_menu()) return TemplateSendMessage(alt_text='Carousel template', template=CarouselTemplate(columns=columns))
def response_message(event): notes = [CarouselColumn(thumbnail_image_url="https://renttle.jp/static/img/renttle02.jpg", title="【ReleaseNote】トークルームを実装しました。", text="creation(創作中・考え中の何かしらのモノ・コト)に関して、意見を聞けるようにトークルーム機能を追加しました。", actions=[{"type": "message","label": "サイトURL","text": "https://renttle.jp/notes/kota/7"}]), CarouselColumn(thumbnail_image_url="https://renttle.jp/static/img/renttle03.jpg", title="ReleaseNote】創作中の活動を報告する機能を追加しました。", text="創作中や考え中の時点の活動を共有できる機能を追加しました。", actions=[ {"type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/6"}]), CarouselColumn(thumbnail_image_url="https://renttle.jp/static/img/renttle04.jpg", title="【ReleaseNote】タグ機能を追加しました。", text="「イベントを作成」「記事を投稿」「本を登録」にタグ機能を追加しました。", actions=[ {"type": "message", "label": "サイトURL", "text": "https://renttle.jp/notes/kota/5"}])] messages = TemplateSendMessage( alt_text='template', template=CarouselTemplate(columns=notes), ) line_bot_api.reply_message(event.reply_token, messages=messages)
def sendCarousel(event): #轉盤樣板 try: message = TemplateSendMessage( alt_text='其他', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/bQVbKwb.jpg', title='7-11', text='點選服務', actions=[ URITemplateAction(label='官方網站', uri='https://www.7-11.com.tw/'), MessageTemplateAction( label='商家查詢', text='https://emap.pcsc.com.tw/'), URITemplateAction( label='股市查詢', uri='https://stock.pchome.com.tw/stock/sid2912.html' ), ]), ])) line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='發生錯誤!'))
def handle_location(event): result = search_vacant_hotel(event) try: if 'error' in result: if result['error'] == 'not_found': line_bot_api.reply_message( event.reply_token, TextSendMessage(text='空室があるホテルが存在しませんでした。')) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='現在使用出来ません。')) else: hotels = result['hotels'] columns = [ CarouselColumn( thumbnail_image_url=hotel[0]['hotelBasicInfo'] ['hotelImageUrl'], title=hotel[0]['hotelBasicInfo']['hotelName'][:40], text=hotel[0]['hotelBasicInfo']['hotelSpecial'][:60], actions=[ URITemplateAction(label='詳細を見る', uri=hotel[0]['hotelBasicInfo'] ['hotelInformationUrl']) ]) for hotel in hotels ] messages = TemplateSendMessage( alt_text='template', template=CarouselTemplate(columns=columns), ) line_bot_api.reply_message(event.reply_token, messages) except Exception as e: traceback.print_exc() line_bot_api.reply_message(event.reply_token, TextSendMessage(text='時間をおいて再度お試しください。'))
def template_choice(name_list, event, word): # 判斷推薦回去給使用者的個數 if len(name_list) >= 5: name_list = random.sample(name_list, k=5) elif len(name_list) == 0: if word == "search": message = TextSendMessage(text="抱歉,資料庫找不到包含輸入條件的食譜") line_bot_api.reply_message(event.reply_token, message) elif word == "personal": message = TextSendMessage(text="抱歉,資料庫找不到可推薦的食譜") line_bot_api.reply_message(event.reply_token, message) Columnlist = [] for data in name_list: Columnlist.append( CarouselColumn( thumbnail_image_url=str(data['recipe_img_url']), title=str(data["recipe_name"]), text="請選擇", actions=[ PostbackTemplateAction(label="食材", data="data=sendinfo&value=0&name=" + str(data["recipe_name"])), PostbackTemplateAction(label="步驟", data="data=sendinfo&value=1&name=" + str(data["recipe_name"])), PostbackTemplateAction(label="營養成分", data="data=sendinfo&value=2&name=" + str(data["recipe_name"])) ])) message = TemplateSendMessage( alt_text='無法顯示', template=CarouselTemplate(columns=Columnlist)) try: line_bot_api.reply_message(event.reply_token, message) except: line_bot_api.reply_message(event.reply_token, TextSendMessage(text="發生錯誤00"))
def execute(self): carousel_template_message = TemplateSendMessage( alt_text='目錄 template', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/kzi5kKy.jpg', title='選擇服務', text='請選擇', actions=[ MessageAction( label=MyDict.start_template, text=MyDict.start_template ), URIAction( label='影片介紹 阿肥bot', uri='https://youtu.be/1IxtWgWxtlE' ), URIAction( label='如何建立自己的 Line Bot', uri='https://github.com/twtrubiks/line-bot-tutorial' ) ] ), CarouselColumn( thumbnail_image_url='https://i.imgur.com/DrsmtKS.jpg', title='選擇服務', text='請選擇', actions=[ MessageAction( label='other bot', text='imgur bot' ), MessageAction( label=MyDict.oil_price, text=MyDict.oil_price ), URIAction( label='聯絡作者', uri='https://www.facebook.com/TWTRubiks?ref=bookmarks' ) ] ), CarouselColumn( thumbnail_image_url='https://i.imgur.com/h4UzRit.jpg', title='選擇服務', text='請選擇', actions=[ URIAction( label='分享 bot', uri='https://line.me/R/nv/recommendOA/@vbi2716y' ), URIAction( label='PTT正妹網', uri='https://ptt-beauty-infinite-scroll.herokuapp.com/' ), URIAction( label='youtube 程式教學分享頻道', uri='https://www.youtube.com/channel/UCPhn2rCqhu0HdktsFjixahA' ) ] ) ] ) ) self.reply_message(carousel_template_message)
def handle_message(event): global DataAll interval = CalcTime(DataAll[0][6]) if interval[0] > 1 or interval[1] > 300: # line_bot_api.reply_message(event.reply_token, TextSendMessage('更新資料中,請稍後數秒')) DownloadMask() DataAll = LoadData() if event.message.type == 'location': lat = event.message.latitude lon = event.message.longitude ret = GetDistance( np.matrix([[float(x[7]), float(x[8])] for x in DataAll]), np.matrix([[lat, lon]])).argsort(axis=0)[:10] alt_text = "" carousel_data = [] for idx in ret: data = DataAll[int(idx)] alt_text += "{}:\n 成人剩餘{}個、孩童剩餘{}個\n".format( data[1], data[4], data[5]) carousel_data.append([ data[1], "aldut last {}\nchild last {}".format(data[4], data[5]), 'get map', str(data[1]), "address:{},{},{},{}".format(data[7], data[8], data[1], data[2]) ]) line_bot_api.reply_message( event.reply_token, TemplateSendMessage( alt_text=alt_text, template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url= 'https://i.giphy.com/media/Nm8ZPAGOwZUQM/giphy.webp', title=data[0], text=data[1], actions=[ PostbackAction(label=data[2], display_text=data[3], data=data[4]) ]) for data in carousel_data ]))) else: name = event.message.text score = [] cnt = 0 for data in DataAll: score.append((fuzz.partial_token_set_ratio(data[1], name), cnt)) cnt += 1 score.sort(reverse=True) idx = score[0][1] line_bot_api.reply_message( event.reply_token, TextSendMessage(text='{}\n成人剩餘{}個、小孩剩餘{}個'.format( DataAll[idx][1], DataAll[idx][4], DataAll[idx][5])))
def handle_text_message(event): text = event.message.text cancel_message = 'type "cancel" to cancel search' 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, TextMessage(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, TextMessage(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, TextMessage(text='Leaving group')) line_bot_api.leave_room(event.source.room_id) else: line_bot_api.reply_message( event.reply_token, TextMessage(text="Bot can't leave from 1:1 chat")) elif text == 'confirm': confirm_template = ConfirmTemplate(text='Do it?', actions=[ MessageTemplateAction(label='Yes', text='Yes!'), MessageTemplateAction(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 == 'buttons': buttons_template = ButtonsTemplate( title='My buttons sample', text='Hello, my buttons', actions=[ URITemplateAction( label='Go to line.me', uri='https://line.me'), PostbackTemplateAction(label='ping', data='ping'), PostbackTemplateAction( label='ping with text', data='ping', text='ping'), MessageTemplateAction(label='Translate Rice', text='米') ]) template_message = TemplateSendMessage( alt_text='Buttons alt text', template=buttons_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'carousel': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='hoge1', title='fuga1', actions=[ URITemplateAction( label='Go to line.me', uri='https://line.me'), PostbackTemplateAction(label='ping', data='ping') ]), CarouselColumn(text='hoge2', title='fuga2', actions=[ PostbackTemplateAction( label='ping with text', data='ping', text='ping'), MessageTemplateAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage( alt_text='Carousel alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'image_carousel': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerTemplateAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn(image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'imagemap': pass elif text == 'Find egg': #Actionnya masih gak ngerti gimana caranya actionnya text Category: Arabian aja image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://www.theurbanlist.com/content/article/wysiwyg/three-williams-eggs.png', action=PostbackTemplateAction(label='Arabian egg\nRp 25.000,00',data='arabian-egg')), ImageCarouselColumn(image_url='https://www.fritzmag.com.au/wp-content/uploads/2016/12/Get-Your-Googie-On-With-South-Australian-Eggs-2.jpg', action=DatetimePickerTemplateAction(label='Australian egg\nRp 25.000,00', data='australian-egg')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'cancel': line_bot_api.reply_message( event.reply_token, TextMessage(text="Welcome...")) elif text == 'Category: Arabian': #Belum bisa actionnya juga image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://www.theurbanlist.com/content/article/wysiwyg/three-williams-eggs.png', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')), ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'Choose Arabian egg': message = 'Arabian egg\n\nPrice: Rp. 25,000.00\nStore location: Yogya karapitan (Bandung)\nCondition: Good\n\nTo buy this product type "Buy Arabian egg"' line_bot_api.reply_message( event.reply_token, TextSendMessage(text=message)) elif text == 'Findstore Yogya': message = 'Search result for "Yogya"\n1. Yogya Karapitan\n2. Yogya Riau Junction\n3. Yogya Sunda\n4. Yogya Minimarket\n\nType number to choose shope e.g: 1 to choose Yogya Karapitan' line_bot_api.reply_message( event.reply_token, TextSendMessage(text=message)) elif text == '1': message = 'You choose Yogya Karapitan\n\nTo search products, type "Find <product name>\n\nTo view other instructions type "help"' line_bot_api.reply_message( event.reply_token, TextSendMessage(text=message)) elif text == 'list transactions': #Actionnya belum bisa nanti actionnya ke view transaction 15022 aja image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://www.theurbanlist.com/content/article/wysiwyg/three-williams-eggs.png', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')), ImageCarouselColumn(image_url='https://www.fritzmag.com.au/wp-content/uploads/2016/12/Get-Your-Googie-On-With-South-Australian-Eggs-2.jpg', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'view transaction 15022': #Edit aja gambarnya + actionnya juga + labelnya juga masih dummy ini image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://www.theurbanlist.com/content/article/wysiwyg/three-williams-eggs.png', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')), ]) elif text == 'Compare': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn(image_url='https://www.theurbanlist.com/content/article/wysiwyg/three-williams-eggs.png', action=DatetimePickerTemplateAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn(image_url='https://www.fritzmag.com.au/wp-content/uploads/2016/12/Get-Your-Googie-On-With-South-Australian-Eggs-2.jpg', action=DatetimePickerTemplateAction(label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='Choose one of these products to compare with <current_product>', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'Display all': line_bot_api.reply_message( event.reply_token, TextMessage(text="Arabian egg vs Mysterious egg\n\nShell:\nSpike shell vs Smooth shell\n\nShape:\nRound shape vs Oval shape\n\nSize:10inch vs 18inch\n\nColor:\nRed vs Cream.\n\nMysterious egg's exclusive properties:\nDoes not break when thrown with a force.\nIs not known if it's an actual egg.\n\nAustralian egg's exclusive properties:\n-")) elif text == 'Change': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='Mysterious egg', title='1', actions=[ URITemplateAction( label='Go to line.me', uri='https://line.me'), PostbackTemplateAction(label='ping', data='ping') ]), CarouselColumn(text='Arabian egg', title='2', actions=[ PostbackTemplateAction( label='ping with text', data='ping', text='ping'), MessageTemplateAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage( alt_text='Choose which one to replace.', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message)
def setUp(self): self.tested = LineBotApi('channel_secret') self.button_template_message = TemplateSendMessage( alt_text='Buttons template', template=ButtonsTemplate( thumbnail_image_url='https://example.com/image.jpg', title='Menu', text='Please select', actions=[ PostbackTemplateAction( label='postback', text='postback text', data='action=buy&itemid=1' ), MessageTemplateAction( label='message', text='message text' ), URITemplateAction( label='uri', uri='http://example.com/' ) ] ) ) self.button_message = [{ "type": "template", "altText": "Buttons template", "template": { "type": "buttons", "thumbnailImageUrl": "https://example.com/image.jpg", "title": "Menu", "text": "Please select", "actions": [ { "type": "postback", "label": "postback", "text": "postback text", "data": "action=buy&itemid=1" }, { "type": "message", "label": "message", "text": "message text" }, { "type": "uri", "label": "uri", "uri": "http://example.com/" } ] } }] self.confirm_template_message = TemplateSendMessage( alt_text='Confirm template', template=ConfirmTemplate( text='Are you sure?', actions=[ PostbackTemplateAction( label='postback', text='postback text', data='action=buy&itemid=1' ), MessageTemplateAction( label='message', text='message text' ) ] ) ) self.confirm_message = [{ "type": "template", "altText": "Confirm template", "template": { "type": "confirm", "text": "Are you sure?", "actions": [ { "type": "postback", "label": "postback", "text": "postback text", "data": "action=buy&itemid=1" }, { "type": "message", "label": "message", "text": "message text" } ] } }] self.carousel_template_message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://example.com' '/item1.jpg', title='this is menu1', text='description1', actions=[ PostbackTemplateAction( label='postback1', text='postback text1', data='action=buy&itemid=1' ), MessageTemplateAction( label='message1', text='message text1' ), URITemplateAction( label='uri1', uri='http://example.com/1' ) ] ), CarouselColumn( thumbnail_image_url='https://example.com' '/item2.jpg', title='this is menu2', text='description2', actions=[ PostbackTemplateAction( label='postback2', text='postback text2', data='action=buy&itemid=2' ), MessageTemplateAction( label='message2', text='message text2' ), URITemplateAction( label='uri2', uri='http://example.com/2' ) ] ) ] ) ) self.carousel_message = [{ "type": "template", "altText": "Carousel template", "template": { "type": "carousel", "columns": [ { "thumbnailImageUrl": "https://example.com/item1.jpg", "title": "this is menu1", "text": "description1", "actions": [ { "type": "postback", "label": "postback1", "text": "postback text1", "data": "action=buy&itemid=1" }, { "type": "message", "label": "message1", "text": "message text1" }, { "type": "uri", "label": "uri1", "uri": "http://example.com/1" } ] }, { "thumbnailImageUrl": "https://example.com/item2.jpg", "title": "this is menu2", "text": "description2", "actions": [ { "type": "postback", "label": "postback2", "text": "postback text2", "data": "action=buy&itemid=2" }, { "type": "message", "label": "message2", "text": "message text2" }, { "type": "uri", "label": "uri2", "uri": "http://example.com/2" } ] } ] } }]
def handle_message(event): rawText = event.message.text text = rawText.lower().strip() data = rawText.lower().strip().split(' ') sender = event.source.user_id gid = event.source.sender_id profile = line_bot_api.get_profile(sender) if len(data)>=3: #BODOH #WIKIHOW 9, WIKIHOW 10 if data[0]=="bodoh" or data[1]=="bodoh" or data[2]=="bodoh" or data[0]=="bodo" or data[1]=="bodo" or data[2]=="bodo": a = random.randint(0, 1) b = ["https://ktawa.com/wp-content/uploads/2018/05/2761997_201803120735020920.jpg", "https://ktawa.com/wp-content/uploads/2018/09/DXgqnNRVwAA-_6F.jpg"] line_bot_api.reply_message(event.reply_token,ImageSendMessage(original_content_url=b[a],preview_image_url=b[a])) #BAWEL #ANJING 8, PUN 2 elif data[0]=="bawel" or data[1]=="bawel" or data[2]=="bawel": a = random.randint(0, 1) b = ["https://s.kaskus.id/images/2018/03/14/7034635_201803140545070870.jpg", "https://1.bp.blogspot.com/-AHXu8nVDgww/Wr3YdzZvCVI/AAAAAAAABPg/AO7Mnycr_oQx3bdzboe6qyW8WyqjynfXACLcBGAs/s1600/IMG_20180327_222109.jpg"] line_bot_api.reply_message(event.reply_token,ImageSendMessage(original_content_url=b[a],preview_image_url=b[a])) #1 MULT CHOICE elif data[0]=="gaje" or data[0]=="geje" or data[0]=="gj" or data[1]=="gaje" or data[1]=="geje" or data[1]=="gj" or data[2]=="gaje" or data[2]=="geje" or data[2]=="gj": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://cdn.brilio.net/news/2018/04/05/141154/760223-meme-anjing.jpg', preview_image_url='https://cdn.brilio.net/news/2018/04/05/141154/760223-meme-anjing.jpg' )) #2 elif text=="ga nyambung" or text=="g nyambung": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pics.me.me/anjing-kaga-nyambung-31476214.png', preview_image_url='https://pics.me.me/anjing-kaga-nyambung-31476214.png' )) #3 MULT CHOICE elif data[0]=="ngegas" or data[1]=="ngegas" or data[2]=="ngegas": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://img.duniaku.net/2018/03/1521427491-anjing-ngegas.jpg', preview_image_url='https://img.duniaku.net/2018/03/1521427491-anjing-ngegas.jpg' )) #4 elif data[0]=="tolol" or data[1]=="tolol" or data[2]=="tolol" or data[0]=="tll" or data[1]=="tll" or data[2]=="tll": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DYLq_4fU0AA9b-B.jpg', preview_image_url='https://pbs.twimg.com/media/DYLq_4fU0AA9b-B.jpg' )) #5 elif text=="asu kabeh" or text=="anjing semua": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://1.bp.blogspot.com/-nsYjWy0W4AU/VArRtVc7MxI/AAAAAAAAM8k/SnNZKZxfNmA/s1600/bm-image-789062.jpeg', preview_image_url='https://1.bp.blogspot.com/-nsYjWy0W4AU/VArRtVc7MxI/AAAAAAAAM8k/SnNZKZxfNmA/s1600/bm-image-789062.jpeg' )) #6 elif data[0]=="jangkrik" or data[1]=="jangkrik" or data[2]=="jangkrik" or data[0]=="jangkrek" or data[1]=="jangkrek" or data[2]=="jangkrek": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DX95-GUUQAUIT7i.jpg', preview_image_url='https://pbs.twimg.com/media/DX95-GUUQAUIT7i.jpg' )) #7 elif text=="kok anjing" or text=="koq anjg": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DYLLvU3VAAABy7F.jpg', preview_image_url='https://pbs.twimg.com/media/DYLLvU3VAAABy7F.jpg' )) #9 IMG LOST elif text=="/anjing-baper" or text=="baper" or data[0]=="baper" or data[1]=="baper": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://img.duniaku.net/2018/03/1521427445-anjing-baper.jpg', preview_image_url='https://img.duniaku.net/2018/03/1521427445-anjing-baper.jpg' )) #10 elif data[0]=="kalem" or data[1]=="kalem" or data[2]=="kalem": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://scontent-atl3-1.cdninstagram.com/vp/a5162fe74fd29170ddbbfbba71863c1b/5C5537BA/t51.2885-15/e35/29088954_1860060620959017_6436073020644655104_n.jpg', preview_image_url='https://scontent-atl3-1.cdninstagram.com/vp/a5162fe74fd29170ddbbfbba71863c1b/5C5537BA/t51.2885-15/e35/29088954_1860060620959017_6436073020644655104_n.jpg' )) #3 MULT CHOICE elif data[0]=="bego" or data[1]=="bego" or data[2]=="bego" or data[0]=="bege" or data[1]=="bege" or data[2]=="bege" or data[0]=="begek" or data[1]=="begek" or data[2]=="begek": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DYaIxpdU0AE2UcO.jpg', preview_image_url='https://pbs.twimg.com/media/DYaIxpdU0AE2UcO.jpg' )) #4 MULT CHOICE elif data[0]=="ngegas" or data[1]=="ngegas" or data[2]=="ngegas": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2017/10/07/9824467_201710070650410306.jpg', preview_image_url='https://s.kaskus.id/images/2017/10/07/9824467_201710070650410306.jpg' )) #5 MULT CHOICE elif data[0]=="gas" or data[1]=="gas" or data[2]=="gas": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2017/05/01/9437462_201705010152380796.jpg', preview_image_url='https://s.kaskus.id/images/2017/05/01/9437462_201705010152380796.jpg' )) #6 elif data[0]=="gawat" or data[1]=="gawat" or data[2]=="gawat": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://em.wattpad.com/a597dfd0d5b0115078e72028c89b42f412c398e2/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f776174747061642d6d656469612d736572766963652f53746f7279496d6167652f4c346e547651464b426c66765a513d3d2d3532352e313531613331396163343031306232343335303035353539383537312e6a7067?s=fit&w=720&h=720', preview_image_url='https://em.wattpad.com/a597dfd0d5b0115078e72028c89b42f412c398e2/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f776174747061642d6d656469612d736572766963652f53746f7279496d6167652f4c346e547651464b426c66765a513d3d2d3532352e313531613331396163343031306232343335303035353539383537312e6a7067?s=fit&w=720&h=720' )) #6 elif data[0]=="gelut" or data[1]=="gelut" or data[2]=="gelut": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pics.me.me/gelut-29735709.png', preview_image_url='https://pics.me.me/gelut-29735709.png' )) #7 MULT CHOICE elif data[0]=="goblok" or data[1]=="goblok" or data[2]=="goblok" or data[0]=="gblk" or data[1]=="gblk" or data[2]=="gblk" or data[0]=="goblog" or data[1]=="goblog" or data[2]=="goblog" or data[0]=="gblg" or data[1]=="gblg" or data[2]=="gblg": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://i.pinimg.com/236x/d2/55/46/d25546911ab75e65de5d0e5b6f267c5c.jpg', preview_image_url='https://i.pinimg.com/236x/d2/55/46/d25546911ab75e65de5d0e5b6f267c5c.jpg' )) #8 elif data[0]=="bubar" or data[0]=="leren" or data[1]=="bubar" or data[1]=="leren" or data[2]=="bubar" or data[2]=="leren": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DY9OLOLVwAEadK7.jpg', preview_image_url='https://pbs.twimg.com/media/DY9OLOLVwAEadK7.jpg' )) #9 elif text=="ga sante": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DjSIfjUVAAAX5WQ.jpg:large', preview_image_url='https://pbs.twimg.com/media/DjSIfjUVAAAX5WQ.jpg:large' )) #10 elif data[0]=="kecewa" or data[1]=="kecewa" or data[2]=="kecewa": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pics.me.me/kecewa-31619297.png', preview_image_url='https://pics.me.me/kecewa-31619297.png' )) #11 elif data[0]=="keren" or data[0]=="cool" or data[0]=="kewl" or data[1]=="keren" or data[1]=="cool" or data[1]=="kewl" or data[2]=="keren" or data[2]=="cool" or data[2]=="kewl": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://media.keepo.me/20180306164724/511x288--28872329_1460633664058488_1580595060448431199_n.jpg', preview_image_url='https://media.keepo.me/20180306164724/511x288--28872329_1460633664058488_1580595060448431199_n.jpg' )) #12 elif data[0]=="kocak" or data[1]=="kocak" or data[2]=="kocak": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DYL2-5dVoAARtb4.jpg', preview_image_url='https://pbs.twimg.com/media/DYL2-5dVoAARtb4.jpg' )) #13 elif data[1]=="terserah" or data[1]=="serah" or data[1]=="seterah" or data[0]=="terserah" or data[0]=="serah" or data[0]=="seterah" or data[2]=="terserah" or data[2]=="serah" or data[2]=="seterah": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pics.me.me/terserah-lodeh-31686397.png', preview_image_url='https://pics.me.me/terserah-lodeh-31686397.png' )) #14 elif data[0]=="mager" or data[1]=="mager" or data[2]=="mager": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://storage.jualo.com/original/12555347/bengkel-las-aneka-kar-alat-musik-lainnya-12555347.jpg', preview_image_url='https://storage.jualo.com/original/12555347/bengkel-las-aneka-kar-alat-musik-lainnya-12555347.jpg' )) #15 elif data[0]=="pinter" or data[0]=="pintar" or data[0]=="smart" or data[1]=="pinter" or data[1]=="pintar" or data[1]=="smart" or data[2]=="pinter" or data[2]=="pintar" or data[2]=="smart": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DkNtokXVAAA3gdr.jpg', preview_image_url='https://pbs.twimg.com/media/DkNtokXVAAA3gdr.jpg' )) #16 elif data[0]=="sabi" or data[0]=="bisa" or data[1]=="sabi" or data[1]=="bisa" or data[2]=="sabi" or data[2]=="bisa": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DbI1oKdUMAAKHl3.jpg', preview_image_url='https://pbs.twimg.com/media/DbI1oKdUMAAKHl3.jpg' )) #17 elif data[0]=="skip" or data[0]=="sekip" or data[0]=="sqip" or data[0]=="sqiv" or data[1]=="skip" or data[1]=="sekip" or data[1]=="sqip" or data[1]=="sqiv" or data[2]=="skip" or data[2]=="sekip" or data[2]=="sqip" or data[2]=="sqiv": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://4.bp.blogspot.com/-TXgBZ19sxHs/Wr3bhYlQy6I/AAAAAAAABPs/vbC_Be9GFmsWrhytSZXd90D9DaQymyhdQCLcBGAs/s1600/IMG_20180327_222132.jpg', preview_image_url='https://4.bp.blogspot.com/-TXgBZ19sxHs/Wr3bhYlQy6I/AAAAAAAABPs/vbC_Be9GFmsWrhytSZXd90D9DaQymyhdQCLcBGAs/s1600/IMG_20180327_222132.jpg' )) #18 elif data[0]=="siap" or data[0]=="siyap" or data[0]=="shap" or data[0]=="ready" or data[1]=="siap" or data[1]=="siyap" or data[1]=="shap" or data[1]=="ready" or data[2]=="siap" or data[2]=="siyap" or data[2]=="shap" or data[2]=="ready": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://www.teknosaurus.com/wp-content/uploads/2018/03/sayap-e1521330529574.jpg', preview_image_url='https://www.teknosaurus.com/wp-content/uploads/2018/03/sayap-e1521330529574.jpg' )) #20 elif data[0]=="thanks" or data[0]=="thank" or data[0]=="makasih" or data[0]=="trims" or data[0]=="thx" or data[0]=="maaci" or data[1]=="thanks" or data[1]=="thank" or data[1]=="makasih" or data[1]=="trims" or data[1]=="thx" or data[1]=="maaci" or data[2]=="thanks" or data[2]=="thank" or data[2]=="makasih" or data[2]=="trims" or data[2]=="thx" or data[2]=="maaci": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://3.bp.blogspot.com/-2bHJrd2yl7s/Wr3Sy2zDudI/AAAAAAAABNk/DKwqkIkvufUteDl_CQlvfV98EjDNeTJagCLcBGAs/s1600/IMG_20180327_221555.jpg', preview_image_url='https://3.bp.blogspot.com/-2bHJrd2yl7s/Wr3Sy2zDudI/AAAAAAAABNk/DKwqkIkvufUteDl_CQlvfV98EjDNeTJagCLcBGAs/s1600/IMG_20180327_221555.jpg' )) #21 elif data[0]=="kampret" or data[1]=="kampret" or data[2]=="kampret" or data[0]=="kamvret" or data[1]=="kamvret" or data[2]=="kamvret": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://cdn2.boombastis.com/wp-content/uploads/2018/03/7kampret.jpeg', preview_image_url='https://cdn2.boombastis.com/wp-content/uploads/2018/03/7kampret.jpeg ' )) #1 elif data[0]=="terciduk" or data[1]=="terciduk" or data[2]=="terciduk": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DUnGmbTVAAYbI8w.jpg', preview_image_url='https://pbs.twimg.com/media/DUnGmbTVAAYbI8w.jpg' )) #2 elif data[0]=="berkelahi" or data[0]=="tengkar" or data[1]=="berkelahi" or data[1]=="tengkar" or data[2]=="berkelahi" or data[2]=="tengkar": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://ktawa.com/wp-content/uploads/2018/03/DXvYNzGUMAAc6wT.jpg', preview_image_url='https://ktawa.com/wp-content/uploads/2018/03/DXvYNzGUMAAc6wT.jpg' )) #3 elif data[0]=="tabok" or data[1]=="tabok" or data[2]=="tabok": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120552320355.jpg', preview_image_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120552320355.jpg' )) #4 elif data[0]=="kalem" or data[1]=="kalem" or data[2]=="kalem" or data[0]=="calm" or data[1]=="calm" or data[2]=="calm": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120524290806.jpg', preview_image_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120524290806.jpg' )) #5 elif data[0]=="maksiat" or data[1]=="maksiat" or data[2]=="maksiat": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DUnCIAUUMAArpyA.jpg', preview_image_url='https://pbs.twimg.com/media/DUnCIAUUMAArpyA.jpg' )) #6 elif data[0]=="bacot" or data[1]=="bacot" or data[2]=="bacot" or data[0]=="bct" or data[1]=="bct" or data[2]=="bct" or data[0]=="bacod" or data[1]=="bacod" or data[2]=="bacod" or data[0]=="bcd" or data[1]=="bcd" or data[2]=="bcd": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120533550838.jpg', preview_image_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120533550838.jpg' )) #7 elif data[0]=="sabar" or data[1]=="sabar" or data[2]=="sabar": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://i.pinimg.com/750x/f3/83/c3/f383c3106936a4728d924dd7ff945c20.jpg', preview_image_url='https://i.pinimg.com/750x/f3/83/c3/f383c3106936a4728d924dd7ff945c20.jpg' )) #8 elif text=="positive thinking" or text=="pikiran positif": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DU3n1OuV4AE9sZg.jpg', preview_image_url='https://pbs.twimg.com/media/DU3n1OuV4AE9sZg.jpg' )) #9 elif text=="/wkh-bodoh": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://ktawa.com/wp-content/uploads/2018/05/2761997_201803120735020920.jpg', preview_image_url='https://ktawa.com/wp-content/uploads/2018/05/2761997_201803120735020920.jpg' )) #10 elif text=="/wkh-bodo": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://ktawa.com/wp-content/uploads/2018/09/DXgqnNRVwAA-_6F.jpg', preview_image_url='https://ktawa.com/wp-content/uploads/2018/09/DXgqnNRVwAA-_6F.jpg' )) #11 elif data[0]=="bomat" or data[1]=="bomat": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120525540375.jpg', preview_image_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120525540375.jpg' )) #12 elif data[0]=="diam" or data[1]=="diam": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DXgpJPMU8AAxjFm.jpg', preview_image_url='https://pbs.twimg.com/media/DXgpJPMU8AAxjFm.jpg' )) #13 elif data[0]=="kesel" or data[1]=="kesel": line_bot_api.reply_message(event.reply_token,ImageSendMessage( original_content_url='https://pbs.twimg.com/media/DVtT5HfVoAA74P3.jpg', preview_image_url='https://pbs.twimg.com/media/DVtT5HfVoAA74P3.jpg' )) if text=="/menu": line_bot_api.reply_message(event.reply_token,TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://example.com/item1.jpg', title='Meme Shitpost', text='Koleksi Personal Paling Berharga', actions=[ PostbackAction( label='Apa ini?', text='kamus meme', data='action=buy&itemid=1' ), MessageAction( label='Kategori Meme', text='kategori meme' ), URIAction( label='Akun Twitter saya', uri='https://twitter.com/didotbrodot' ) ] ), CarouselColumn( thumbnail_image_url='https://static.family.ca/rendition/17001/1058/595', title='Sound of Nature', text='Anda bertanya, alam menjawab', actions=[ PostbackAction( label='Ini apa?', text='Tuntunan Alam', data='action=buy&itemid=2' ), MessageAction( label='Jompa-Jampi', text='Jompa-Jampi' ), URIAction( label='Akun Twitter saya', uri='https://twitter.com/didotbrodot' ) ] ) ] ) )) if text=="kamus meme": line_bot_api.reply_message(event.reply_token,TextSendMessage(text='Sebuah koleksi pribadi berisikan meme-meme yang dapat memberi warna dalam bercakap online')) if text=="kategori meme": line_bot_api.reply_message(event.reply_token,TemplateSendMessage( alt_text='ImageCarousel template', template=ImageCarouselTemplate( columns=[ ImageCarouselColumn( #image_url='https://asset.kompas.com/crop/0x2:960x642/750x500/data/photo/2018/03/06/2717904116.jpg', image_url='https://i.imgur.com/ywKZuaB.gifv', action=PostbackAction( label='Anjing', text='meme anjing', data='action=buy&itemid=1' ) ), ImageCarouselColumn( image_url='https://forums.lbsg.net/uploads/default/original/2X/7/7c14a99d7de45e3d691ed9cf05deec1ec69d0d78.png', action=PostbackAction( label='Pun', text='meme pun', data='action=buy&itemid=2' ) ), ImageCarouselColumn( image_url='https://s.kaskus.id/images/2018/03/12/7034635_201803120552320355.jpg', action=PostbackAction( label='WikiHow', text='meme wikihow', data='action=buy&itemid=3' ) ), ImageCarouselColumn( image_url='https://i.imgur.com/SBUbHHN.gif', action=PostbackAction( label='Others', text='meme etcetera', data='action=buy&itemid=4' ) ) ] ) )) #MULT CHOICE #ANJING if text=="meme anjing": kamus="Kategori Anjing :\n1. /anjing-ga-jelas :\n'ga jelas', 'gaje', 'geje', 'gj'\n2. /anjing-ga-nyambung :\n'ga nyambung'\n3. /anjing-ngegas :\n'ngegas'\n4. /anjing-tolol :\n'tolol'\n5. /anjing-semua :\n'asu kabeh'\n6. /anjing-jangkrik :\n'jangkrik'\n7. /anjing-kok :\n'kok anjing'\n8. /anjing-bawel :\n'bawel'\n9. /anjing-baper :\n'baper'\n10. /anjing-kalem :\n'kalem'" line_bot_api.reply_message(event.reply_token,TextSendMessage(text=kamus)) #PUN elif text=="meme pun": kamus="Kategori Pun :\n1. /pun-bawel\n2. /pun-bego\n3. /pun-ngegas\n4. /pun-gas\n5. /pun-gawat\n6. /pun-ikan-goblok\n7. /pun-gelut\n8. /pun-bubar\n9. /pun-ikan-goblok\n11. /pun-kancil\n12. /pun-kecewa\n13. /pun-keren\n14. /pun-kocak\n15. /pun-lodeh\n16. /pun-mager\n17. /pun-pinter\n18. /pun-sabi\n19. /pun-sekip\n20. /pun-siyap\n21. /pun-thanks\n22. /pun-kampret" line_bot_api.reply_message(event.reply_token,TextSendMessage(text=kamus)) #WIKIHOW elif text=="meme wikihow": kamus="Meme Wikihow" line_bot_api.reply_message(event.reply_token,TextSendMessage(text=kamus)) #etc # if len(data)>=3: # if data[0]=="cuy": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="a")) # if data[1]=="cuy": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="b")) # if data[2]=="cuy": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="c")) # else: # if text=="cuy": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="d")) # if text=="cuy cuy": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="e")) # if len(data)>=2: # if text=="tyo": # line_bot_api.reply_message(event.reply_token,TextSendMessage(text="e")) #LEAVE GRUP / MPC if text=="/bye": if isinstance(event.source, SourceGroup): line_bot_api.push_message(event.source.group_id, TextSendMessage(text='***Snap!***')) line_bot_api.push_message(event.source.group_id, TextSendMessage(text="Mr. Stark, I don't feel so good" )) line_bot_api.push_message(event.source.group_id, TextSendMessage(text='Parah, '+profile.display_name+' jahat bgt')) line_bot_api.leave_group(event.source.group_id) elif isinstance(event.source, SourceRoom): line_bot_api.push_message(event.source.group_id, TextSendMessage(text='***Snap!***')) line_bot_api.push_message(event.source.group_id, TextSendMessage(text="Mr. Stark, I don't feel so good" )) line_bot_api.push_message(event.source.group_id, TextSendMessage(text='Parah, '+profile.display_name+' jahat bgt')) line_bot_api.leave_room(event.source.room_id)
def handle_message(event): if event.message.text=="讓我飛": sent_Column_list = [] print(event.source.group_id) profile = line_bot_api.get_profile(event.source.user_id) sent_Column=CarouselColumn( thumbnail_image_url=profile.picture_url, title="%s要開飛了"%(profile.display_name), text=" ", actions=[ PostbackTemplateAction( label="幫助他", data='好道具' ), PostbackTemplateAction( label="陷害他", data='壞道具' ), URITemplateAction( label='點我開始!!', uri='line://app/1612063818-VeyxR31w?group_id=%s&pipe_item=%s'%(event.source.group_id,'100') ) ] ) sent_Column_list += [sent_Column] carousel_template_message = TemplateSendMessage( alt_text='飛吧~', template=CarouselTemplate( columns=sent_Column_list ) ) line_bot_api.reply_message(event.reply_token,carousel_template_message) elif event.message.text=='欸嘿': sent_Column_list = [] print(event.source.group_id) conn = sqlite.connect('%sdata/db/%s.db'%(FileRout,event.source.group_id)) c = conn.cursor() user_id_list = c.execute('SELECT user_id FROM info WHERE score = (SELECT MAX(score) FROM info)') user_id_list = user_id_list.fetchall() for item in user_id_list: user_id = item[0] user_score_list = c.execute('SELECT score FROM info WHERE user_id = "%s"'%(item[0])) user_score = user_score_list.fetchall()[0][0] profile = line_bot_api.get_profile(user_id) sent_Column=CarouselColumn( thumbnail_image_url=profile.picture_url, title="哪呢!%s 獲得了"%(profile.display_name), text="%s分"%(user_score), actions=[ PostbackTemplateAction( label="幫助他", data='好道具' ), PostbackTemplateAction( label="陷害他", data='壞道具' ), URITemplateAction( label='點我向他挑戰!!', uri='line://app/1612063818-VeyxR31w?group_id=%s&pipe_item=%s'%(event.source.group_id,'100') ) ] ) sent_Column_list += [sent_Column] # print("in%s"%user_score) conn.commit() conn.close() # print(user_id_list) # print(user_score_list) carousel_template_message = TemplateSendMessage( alt_text='飛吧~', template=CarouselTemplate( columns=sent_Column_list ) ) line_bot_api.reply_message(event.reply_token,carousel_template_message) elif event.message.text=='test': print(event.source.group_id) line_bot_api.reply_message( event.reply_token, TextSendMessage(text=event.message.text))
def handle_message(event): # 抓使用者資訊 profile = line_bot_api.get_profile(event.source.user_id) usern = profile.display_name msg = event.message.text if msg == '上衣': myans = getinfoRand('上衣') mymessage = TemplateSendMessage( alt_text='ImageCarousel template', template=ImageCarouselTemplate( columns=[ ImageCarouselColumn( image_url=myans[0][5], action=PostbackAction(label=myans[0][2], text=myans[0][2], data='action=buy&itemid=1')), ImageCarouselColumn( image_url=myans[1][5], action=PostbackAction(label=myans[1][2], text=myans[1][2], data='action=buy&itemid=1')), ImageCarouselColumn( image_url=myans[2][5], action=PostbackAction(label=myans[2][2], text=myans[2][2], data='action=buy&itemid=1')), ])) line_bot_api.reply_message(event.reply_token, mymessage) elif msg == '裙子': myans = getinfoRand('裙子') line_bot_api.reply_message( event.reply_token, [TextSendMessage(text=myans[0][2]), ImageSendMessage(original_content_url=myans[0][5], preview_image_url=myans[0][5]), TextSendMessage(text=myans[1][2]), ImageSendMessage(original_content_url=myans[1][5], preview_image_url=myans[1][5]),]) elif msg == '褲子': myans = getinfoRand('褲子') image_carousel_template = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url=myans[0][5], title=myans[0][1], text=myans[0][2], actions=[PostbackAction(label='褲子類', data='ping', text='褲子類'),]), CarouselColumn( thumbnail_image_url=myans[1][5], title=myans[1][1], text=myans[1][2], actions=[PostbackAction(label='褲子類', data='ping', text='褲子類'),]), CarouselColumn( thumbnail_image_url=myans[2][5], title=myans[2][1], text=myans[2][2], actions=[PostbackAction(label='褲子類', data='ping', text='褲子類'),])])) line_bot_api.reply_message(event.reply_token, image_carousel_template) elif msg == '尋問店家': line_bot_api.reply_message(event.reply_token, [TextSendMessage(text='歡迎加line: goodbabyworker 或 email: [email protected]')]) elif msg == '門市訊息': line_bot_api.reply_message(event.reply_token, [TextSendMessage(text='營業時間:全年無休,請打給寶寶:0933584513')]) else: line_bot_api.reply_message(event.reply_token, [TextSendMessage(text='營業時間:全年無休,請打給寶寶:0933584513')])
def postback_process(userid, data, DB, event): """ input: 1. userid 2. data 3. DB 4. event return: 1. [message] """ ret = "NA" user_data = data.get_user(userid) # 填問卷的過程 # QC丟問題,相對題號 if event.postback.data == 'Quick': ret = [ confirm_push(data.get_all_users(), userid, event.postback.data, DB) ] elif event.postback.data == 'Standard': ct_container = ct_push(data.get_all_users(), userid, 1, 0, DB) #把4類別加進來 carousel_template = CarouselTemplate(columns=ct_container) ret = [ TemplateSendMessage(alt_text='詳細災情回覆問卷', template=carousel_template) ] # 四類丟問題,相對題號 elif event.postback.data in ['Normal', 'Indoors', 'Corridor', 'Outdoors']: ret = [ confirm_push(data.get_all_users(), userid, event.postback.data, DB) ] # 戳題目的confirm template的時候 try: parse = extract(event.postback.data) # [0]是類別;[1]是相對題號;[2]是沒問題/待改進 cat, Q, ans = parse data.set_user_current(userid, (cat, Q)) last = len(DB.get_category(cat)) # 處理carousel template # 填完該類別最後一題且最後一題是沒問題 if Q == last and ans == 'OK': data.set_user_status(userid, "00") data.add_user_answered(userid, cat, Q) output = data.get_user_feedback(userid) print('進入【(第一次)類別TEMPVIEW】') print(f"\n\n====\ncat: |{cat}\nOutput: |{output}\n") ret = cat_tempview_confirm(cat, output, DB) # 推第一次類別修改tempview confirm template # ct_container = ct_push(data.get_all_users(), userid, 1, 0, DB) # QC填完 if cat == "Quick" and Q == last: print('進入【最終TEMPVIEW】──QC的路,不要怕上一句話,因為她是必經之路') output = data.get_user_feedback(userid) ret = tempview_confirm(output, DB) # 推第一次最終修改tempview confirm template # 處理題目的confirm template # 待改進的話,或是非該類別的最後一題 else: ret = [next(data.get_all_users(), userid, parse, DB)[0]] status = next(data.get_all_users(), userid, parse, DB)[1] data.set_user_status(userid, status) except Exception as e: # exc_type, exc_obj, exc_tb = sys.exc_info() # fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] # print('ERROR:', exc_type, exc_obj, fname, exc_tb.tb_lineno) # print(event.postback.data) if event.postback.data == 'edit=NO': data.set_user_status(userid, "00") output = data.get_user_feedback(userid) print(f"\n\n\nAARRR!!!{output}\n\n\n") build, room = data.get_user_building(userid) print(f"\n\n\nBBRRR!!!{(build, room)}\n\n\n") for feed in range(len(output)): output[feed] += (build, ) output[feed] += (room, ) DB.get_feedback(output, userid, data.get_user_building(userid)[0]) #寫進資料庫 print('進入【最終修改答案不修改】,結束問卷') print( f"\n========================\nThis is feedback:\n{output}\n========================\n" ) ret = [ TextSendMessage(text="已收到您的回覆~謝謝您的貢獻!"), StickerSendMessage(package_id=11537, sticker_id=52002739), ] data.remove_user(userid) if event.postback.data == 'edit=OK': print('進入【最終修改答案要修改】,要求輸入修改題號') data.set_user_status(userid, "20") ret = [ TextSendMessage(text="請問您要修改哪一題呢?"), TextSendMessage(text="【注意】:當您填寫快速檢核時,不能修改其他四類問題;反之亦然。"), TextSendMessage( text= "請按照下列格式填寫:\n一般檢查(Normal)簡寫為N\n室內(Indoors)簡寫為I\n走廊(Corridor)簡寫為C\n室外(Outdoors)簡寫為O\n再加上題號,例如:\nN7(一般檢查的第七題)" ), ] if event.postback.data == 'cat_edit=NO': print('進入【類別修改答案不修改】,丟出類別選單') ct_container = ct_push(data.get_all_users(), userid, 1, 1, DB) if ct_container == "All cats have already checked!": # 類別全部修改過後,進入最終環節 print('進入【最終TEMPVIEW】──標準填完了唷,不要怕上一句話,因為她是必經之路') output = data.get_user_feedback(userid) ret = tempview_confirm(output, DB) else: carousel_template = CarouselTemplate(columns=ct_container) ret = [ TemplateSendMessage(alt_text='問卷選單', template=carousel_template) ] if 'cat_edit=OK' in event.postback.data: print('進入【類別修改答案要修改】,要求輸入修改題號') data.set_user_status(userid, "10") ## 避免戳 Normal1, Indoors1, Corridor1, Outdoors1 的時候類別被鎖住 cate = str(event.postback.data).split( ';')[1] if ';' in event.postback.data else '' print('\n===<%s>===\n' % cate) relq = user_data["current"][1] _ = (cate, relq) if cate != '' else user_data["current"] data.set_user_current(userid, _) ret = [ TextSendMessage(text="請問您要修改哪一題呢?"), TextSendMessage(text="【注意】:只能修改當前題組,欲修改其他題組,請於所有問題答畢後修改"), TextSendMessage( text= "請按照下列格式填寫:\n一般檢查(Normal)簡寫為N\n室內(Indoors)簡寫為I\n走廊(Corridor)簡寫為C\n室外(Outdoors)簡寫為O\n再加上題號,例如:\nN7(一般檢查的第七題)" ), ] # 類別修改答案的過程 if 'cat_revise=' in event.postback.data and 'OK' in event.postback.data: # 沒問題 print('進入【類別修改答案沒問題】,丟出cat_tempview') output = data.get_user_feedback(userid) ret = cat_tempview_confirm(user_data["current"][0], output, DB) # 把它目前的回答推個confirm template給他看看 elif 'cat_revise=' in event.postback.data and 'NO' in event.postback.data: # 待改進 print('進入【類別修改答案待改進】,請簡述災情') ret = [TextSendMessage(text="請簡述災情")] data.set_user_status(userid, "11") # 最終修改答案的過程 if 'all_revise=' in event.postback.data and 'OK' in event.postback.data: # 沒問題 print('進入【最後修改答案沒問題】,丟出tempview') output = data.get_user_feedback(userid) ret = tempview_confirm(output, DB) # 把它目前的回答推個confirm template給他看看 elif 'all_revise=' in event.postback.data and 'NO' in event.postback.data: # 待改進 print('進入【最後修改答案待改進】,請簡述災情') ret = [TextSendMessage(text="請簡述災情")] data.set_user_status(userid, "21") # 重設帳號或不設 if event.postback.data == 'account_reset': delete_userid_db(userid, DB) account[userid] = { 'userid': userid, 'name': 0, 'county': 0, 'school': 0, 'phone': 0 } ret = [TextSendMessage(text="請問您尊姓大名?")] account_q = 1 elif event.postback.data == 'account_remain': ret = [TextSendMessage(text="好的,謝謝😁")] return ret
def Build(self): bLen = len(self.buttons) if bLen == 0: return ([], None) carousels = [] while bLen > 15: carousels.append( TemplateSendMessage(alt_text=self.altTextHeader, template=CarouselTemplate(columns=[]))) car = carousels[-1] for k in range(1, 16): button = self.buttons.pop(0) colLen = len(car.template.columns) if colLen == 0: car.template.columns.append( CarouselColumn(text=self.columnText, actions=[])) elif len(car.template.columns[-1].actions) == 3: car.template.columns.append( CarouselColumn(text=self.columnText, actions=[])) car.template.columns[-1].actions.append( MessageTemplateAction(label=button.label, text=button.text)) car.alt_text = (car.alt_text + button.altTextEntry)[:400] bLen = bLen - 15 cbLen = 0 cols = 0 rows = 0 if bLen > 4: for i in range(1, 5): div = bLen // i if div > 3: continue if cbLen < div * i: cbLen = div * i cols = i rows = div elif cbLen == div * i and div > rows: cbLen = div * i cols = i rows = div bbLen = bLen - cbLen if cbLen > 0: carousels.append( TemplateSendMessage(alt_text=self.altTextHeader, template=CarouselTemplate(columns=[]))) count = 0 for button in self.buttons: count = count + 1 if count > cbLen: break car = carousels[-1] colLen = len(car.template.columns) if colLen == 0: car.template.columns.append( CarouselColumn(text=self.columnText, actions=[])) elif len(car.template.columns[-1].actions) == rows: if colLen == cols: carousels.append( TemplateSendMessage( alt_text=self.altTextHeader, template=CarouselTemplate(columns=[]))) car = carousels[-1] car.template.columns.append( CarouselColumn(text=self.columnText, actions=[])) car.template.columns[-1].actions.append( MessageTemplateAction(label=button.label, text=button.text)) car.alt_text = (car.alt_text + button.altTextEntry)[:400] car = carousels[-1] colLen = len(car.template.columns) if colLen == 0 or (colLen == 1 and len(car.template.columns[-1].actions) == 0): carousels.remove(car) elif len(car.template.columns[-1].actions) == 0: car.template.columns.remove(car.template.columns[-1]) but = None if bbLen > 0: but = TemplateSendMessage(alt_text=self.altTextHeader, template=ButtonsTemplate( text=self.columnText, actions=[])) for val in self.buttons[cbLen:]: but.template.actions.append( MessageTemplateAction(label=val.label, text=val.text)) but.alt_text = (but.alt_text + val.altTextEntry)[:400] return [carousels, but]
def handle_text_message(event): text = event.message.text # 送られてきた言葉が植物の名前だった場合は、それをキャッシュし「なに?」と返す if user_data.plant_exists(text): current_plant = text line_bot_api.reply_message(event.reply_token, TextSendMessage(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='なまえ: ' + profile.display_name), TextSendMessage(text='一言: ' + profile.status_message) ]) else: line_bot_api.reply_message( event.reply_token, TextSendMessage(text="「ユーザIDがないとこのコマンドは使えません」")) elif text == 'bye': if isinstance(event.source, SourceGroup): line_bot_api.reply_message(event.reply_token, TextSendMessage(text='またね、今までありがとう')) line_bot_api.leave_group(event.source.group_id) elif isinstance(event.source, SourceRoom): line_bot_api.reply_message(event.reply_token, TextSendMessage(text='またね、今までありがとう')) line_bot_api.leave_room(event.source.room_id) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text="ぼくはここから動けないよ...")) elif text == 'confirm': confirm_template = ConfirmTemplate(text='これでいい?', actions=[ MessageAction(label='Yes', text='はい!'), MessageAction(label='No', text='いいえ'), ]) template_message = TemplateSendMessage(alt_text='Confirm alt text', template=confirm_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'buttons': buttons_template = ButtonsTemplate( title='My buttons sample', text='Hello, my buttons', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping'), PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'carousel': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='hoge1', title='fuga1', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping') ]), CarouselColumn(text='hoge2', title='fuga2', actions=[ PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage(alt_text='Carousel alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'image_carousel': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction( label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'imagemap': pass elif text == 'flex': bubble = BubbleContainer( direction='ltr', hero=ImageComponent(url='https://example.com/cafe.jpg', size='full', aspect_ratio='20:13', aspect_mode='cover', action=URIAction(uri='http://example.com', label='label')), body=BoxComponent( layout='vertical', contents=[ # title TextComponent(text='Brown Cafe', weight='bold', size='xl'), # review BoxComponent( layout='baseline', margin='md', contents=[ IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), TextComponent(text='4.0', size='sm', color='#999999', margin='md', flex=0) ]), # info BoxComponent( layout='vertical', margin='lg', spacing='sm', contents=[ BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Place', color='#aaaaaa', size='sm', flex=1), TextComponent(text='Shinjuku, Tokyo', wrap=True, color='#666666', size='sm', flex=5) ], ), BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Time', color='#aaaaaa', size='sm', flex=1), TextComponent( text="10:00 - 23:00", wrap=True, color='#666666', size='sm', flex=5, ), ], ), ], ) ], ), footer=BoxComponent( layout='vertical', spacing='sm', contents=[ # callAction, separator, websiteAction SpacerComponent(size='sm'), # callAction ButtonComponent( style='link', height='sm', action=URIAction(label='CALL', uri='tel:000000'), ), # separator SeparatorComponent(), # websiteAction ButtonComponent(style='link', height='sm', action=URIAction( label='WEBSITE', uri="https://example.com")) ]), ) message = FlexSendMessage(alt_text="hello", contents=bubble) line_bot_api.reply_message(event.reply_token, message) elif text == 'quick_reply': line_bot_api.reply_message( event.reply_token, TextSendMessage( text='Quick reply', quick_reply=QuickReply(items=[ QuickReplyButton( action=PostbackAction(label="label1", data="data1")), QuickReplyButton( action=MessageAction(label="label2", text="text2")), QuickReplyButton(action=DatetimePickerAction( label="label3", data="data3", mode="date")), QuickReplyButton(action=CameraAction(label="label4")), QuickReplyButton(action=CameraRollAction(label="label5")), QuickReplyButton(action=LocationAction(label="label6")), ]))) # ユーザからビーコンの設定を行う elif text == 'beacon': BeaconWhisperEvent(event.reply_token, line_bot_api, user_data).configBeaconMsg() # 植物を削除するときの命令 elif text == 'remove' or text == 'delete': if current_plant is not None: confirm_template = ConfirmTemplate( text=current_plant + "の情報を削除します\n本当によろしいですか?\n", actions=[ PostbackAction(label='Yes', data='delete_plant ' + current_plant, displayText='はい'), PostbackAction(label='No', data='delete_plant_cancel ' + current_plant, displayText='いいえ'), ]) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='植物が選択されていません')) elif text == 'disconnect' and current_plant is not None: plant_animator.disconnect() line_bot_api.reply_message(event.reply_token, TextMessage(text=current_plant + ":またね")) # 植物情報(plant)のアプデをかける elif text == 'update': plant_animator.update() if current_plant is None: line_bot_api.reply_message(event.reply_token, TextSendMessage(text='どの植物に呼びかけますか?')) # text.split()[0] in (create, register) elif text.split()[0] in ('create', 'register'): plant_animator.register_plant(text.split[1]) line_bot_api.reply_message(event.reply_token, TextSendMessage(text='植物の名前を決めてあげてください!')) # この処理は工事中↑ # 方針としては一番最後にelse: で入れて、textを"create hoge"みたいに入れてもらってsplitして入れればい何とかなる(きもいけど) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text))
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: ' + str(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 == 'quota': quota = line_bot_api.get_message_quota() line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='type: ' + quota.type), TextSendMessage(text='value: ' + str(quota.value)) ]) elif text == 'quota_consumption': quota_consumption = line_bot_api.get_message_quota_consumption() line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='total usage: ' + str(quota_consumption.total_usage)), ]) elif text == 'push': line_bot_api.push_message(event.source.user_id, [ TextSendMessage(text='PUSH!'), ]) elif text == 'multicast': line_bot_api.multicast([event.source.user_id], [ TextSendMessage(text='THIS IS A MULTICAST MESSAGE'), ]) elif text == 'broadcast': line_bot_api.broadcast([ TextSendMessage(text='THIS IS A BROADCAST MESSAGE'), ]) elif text.startswith('broadcast '): # broadcast 20190505 date = text.split(' ')[1] print("Getting broadcast result: " + date) result = line_bot_api.get_message_delivery_broadcast(date) line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='Number of sent broadcast messages: ' + date), TextSendMessage(text='status: ' + str(result.status)), TextSendMessage(text='success: ' + str(result.success)), ]) 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 == 'image': url = request.url_root + '/static/logo.png' app.logger.info("url=" + url) line_bot_api.reply_message(event.reply_token, ImageSendMessage(url, url)) 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 == 'buttons': buttons_template = ButtonsTemplate( title='My buttons sample', text='Hello, my buttons', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping'), PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'carousel': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='hoge1', title='fuga1', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping') ]), CarouselColumn(text='hoge2', title='fuga2', actions=[ PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage(alt_text='Carousel alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'image_carousel': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction( label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'imagemap': pass elif text == 'flex': bubble = BubbleContainer( direction='ltr', hero=ImageComponent(url='https://example.com/cafe.jpg', size='full', aspect_ratio='20:13', aspect_mode='cover', action=URIAction(uri='http://example.com', label='label')), body=BoxComponent( layout='vertical', contents=[ # title TextComponent(text='Brown Cafe', weight='bold', size='xl'), # review BoxComponent( layout='baseline', margin='md', contents=[ IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), TextComponent(text='4.0', size='sm', color='#999999', margin='md', flex=0) ]), # info BoxComponent( layout='vertical', margin='lg', spacing='sm', contents=[ BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Place', color='#aaaaaa', size='sm', flex=1), TextComponent(text='Shinjuku, Tokyo', wrap=True, color='#666666', size='sm', flex=5) ], ), BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Time', color='#aaaaaa', size='sm', flex=1), TextComponent( text="10:00 - 23:00", wrap=True, color='#666666', size='sm', flex=5, ), ], ), ], ) ], ), footer=BoxComponent( layout='vertical', spacing='sm', contents=[ # callAction, separator, websiteAction SpacerComponent(size='sm'), # callAction ButtonComponent( style='link', height='sm', action=URIAction(label='CALL', uri='tel:000000'), ), # separator SeparatorComponent(), # websiteAction ButtonComponent(style='link', height='sm', action=URIAction( label='WEBSITE', uri="https://example.com")) ]), ) message = FlexSendMessage(alt_text="hello", contents=bubble) line_bot_api.reply_message(event.reply_token, message) elif text == 'flex_update_1': bubble_string = """ { "type": "bubble", "body": { "type": "box", "layout": "vertical", "contents": [ { "type": "image", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/flexsnapshot/clip/clip3.jpg", "position": "relative", "size": "full", "aspectMode": "cover", "aspectRatio": "1:1", "gravity": "center" }, { "type": "box", "layout": "horizontal", "contents": [ { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "Brown Hotel", "weight": "bold", "size": "xl", "color": "#ffffff" }, { "type": "box", "layout": "baseline", "margin": "md", "contents": [ { "type": "icon", "size": "sm", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png" }, { "type": "icon", "size": "sm", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png" }, { "type": "icon", "size": "sm", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png" }, { "type": "icon", "size": "sm", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png" }, { "type": "icon", "size": "sm", "url": "https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gray_star_28.png" }, { "type": "text", "text": "4.0", "size": "sm", "color": "#d6d6d6", "margin": "md", "flex": 0 } ] } ] }, { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "¥62,000", "color": "#a9a9a9", "decoration": "line-through", "align": "end" }, { "type": "text", "text": "¥42,000", "color": "#ebebeb", "size": "xl", "align": "end" } ] } ], "position": "absolute", "offsetBottom": "0px", "offsetStart": "0px", "offsetEnd": "0px", "backgroundColor": "#00000099", "paddingAll": "20px" }, { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "SALE", "color": "#ffffff" } ], "position": "absolute", "backgroundColor": "#ff2600", "cornerRadius": "20px", "paddingAll": "5px", "offsetTop": "10px", "offsetEnd": "10px", "paddingStart": "10px", "paddingEnd": "10px" } ], "paddingAll": "0px" } } """ message = FlexSendMessage(alt_text="hello", contents=json.loads(bubble_string)) line_bot_api.reply_message(event.reply_token, message) elif text == 'quick_reply': line_bot_api.reply_message( event.reply_token, TextSendMessage( text='Quick reply', quick_reply=QuickReply(items=[ QuickReplyButton( action=PostbackAction(label="label1", data="data1")), QuickReplyButton( action=MessageAction(label="label2", text="text2")), QuickReplyButton(action=DatetimePickerAction( label="label3", data="data3", mode="date")), QuickReplyButton(action=CameraAction(label="label4")), QuickReplyButton(action=CameraRollAction(label="label5")), QuickReplyButton(action=LocationAction(label="label6")), ]))) elif text == 'link_token' and isinstance(event.source, SourceUser): link_token_response = line_bot_api.issue_link_token( event.source.user_id) line_bot_api.reply_message(event.reply_token, [ TextSendMessage(text='link_token: ' + link_token_response.link_token) ]) elif text == 'insight_message_delivery': today = datetime.date.today().strftime("%Y%m%d") response = line_bot_api.get_insight_message_delivery(today) if response.status == 'ready': messages = [ TextSendMessage(text='broadcast: ' + str(response.broadcast)), TextSendMessage(text='targeting: ' + str(response.targeting)), ] else: messages = [TextSendMessage(text='status: ' + response.status)] line_bot_api.reply_message(event.reply_token, messages) elif text == 'insight_followers': today = datetime.date.today().strftime("%Y%m%d") response = line_bot_api.get_insight_followers(today) if response.status == 'ready': messages = [ TextSendMessage(text='followers: ' + str(response.followers)), TextSendMessage(text='targetedReaches: ' + str(response.targeted_reaches)), TextSendMessage(text='blocks: ' + str(response.blocks)), ] else: messages = [TextSendMessage(text='status: ' + response.status)] line_bot_api.reply_message(event.reply_token, messages) elif text == 'insight_demographic': response = line_bot_api.get_insight_demographic() if response.available: messages = [ "{gender}: {percentage}".format(gender=it.gender, percentage=it.percentage) for it in response.genders ] else: messages = [TextSendMessage(text='available: false')] line_bot_api.reply_message(event.reply_token, messages) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text))
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 == 'image': url = request.url_root + '/static/logo.png' app.logger.info("url=" + url) line_bot_api.reply_message(event.reply_token, ImageSendMessage(url, url)) 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 == 'buttons': buttons_template = ButtonsTemplate( title='My buttons sample', text='Hello, my buttons', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping'), PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'carousel': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='hoge1', title='fuga1', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping') ]), CarouselColumn(text='hoge2', title='fuga2', actions=[ PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage(alt_text='Carousel alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'image_carousel': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction( label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'imagemap': pass elif text == 'flex': bubble = BubbleContainer( direction='ltr', hero=ImageComponent(url='https://example.com/cafe.jpg', size='full', aspect_ratio='20:13', aspect_mode='cover', action=URIAction(uri='http://example.com', label='label')), body=BoxComponent( layout='vertical', contents=[ # title TextComponent(text='Brown Cafe', weight='bold', size='xl'), # review BoxComponent( layout='baseline', margin='md', contents=[ IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/gold_star.png'), IconComponent( size='sm', url='https://example.com/grey_star.png'), TextComponent(text='4.0', size='sm', color='#999999', margin='md', flex=0) ]), # info BoxComponent( layout='vertical', margin='lg', spacing='sm', contents=[ BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Place', color='#aaaaaa', size='sm', flex=1), TextComponent(text='Shinjuku, Tokyo', wrap=True, color='#666666', size='sm', flex=5) ], ), BoxComponent( layout='baseline', spacing='sm', contents=[ TextComponent(text='Time', color='#aaaaaa', size='sm', flex=1), TextComponent( text="10:00 - 23:00", wrap=True, color='#666666', size='sm', flex=5, ), ], ), ], ) ], ), footer=BoxComponent( layout='vertical', spacing='sm', contents=[ # callAction, separator, websiteAction SpacerComponent(size='sm'), # callAction ButtonComponent( style='link', height='sm', action=URIAction(label='CALL', uri='tel:000000'), ), # separator SeparatorComponent(), # websiteAction ButtonComponent(style='link', height='sm', action=URIAction( label='WEBSITE', uri="https://example.com")) ]), ) message = FlexSendMessage(alt_text="hello", contents=bubble) line_bot_api.reply_message(event.reply_token, message) elif text == 'quick_reply': line_bot_api.reply_message( event.reply_token, TextSendMessage( text='Quick reply', quick_reply=QuickReply(items=[ QuickReplyButton( action=PostbackAction(label="label1", data="data1")), QuickReplyButton( action=MessageAction(label="label2", text="text2")), QuickReplyButton(action=DatetimePickerAction( label="label3", data="data3", mode="date")), QuickReplyButton(action=CameraAction(label="label4")), QuickReplyButton(action=CameraRollAction(label="label5")), QuickReplyButton(action=LocationAction(label="label6")), ]))) else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text))
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 == 'buttons': buttons_template = ButtonsTemplate( title='My buttons sample', text='Hello, my buttons', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping'), PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]) template_message = TemplateSendMessage(alt_text='Buttons alt text', template=buttons_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'carousel': carousel_template = CarouselTemplate(columns=[ CarouselColumn(text='hoge1', title='fuga1', actions=[ URIAction(label='Go to line.me', uri='https://line.me'), PostbackAction(label='ping', data='ping') ]), CarouselColumn(text='hoge2', title='fuga2', actions=[ PostbackAction(label='ping with text', data='ping', text='ping'), MessageAction(label='Translate Rice', text='米') ]), ]) template_message = TemplateSendMessage(alt_text='Carousel alt text', template=carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'image_carousel': image_carousel_template = ImageCarouselTemplate(columns=[ ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction(label='datetime', data='datetime_postback', mode='datetime')), ImageCarouselColumn( image_url='https://via.placeholder.com/1024x1024', action=DatetimePickerAction( label='date', data='date_postback', mode='date')) ]) template_message = TemplateSendMessage( alt_text='ImageCarousel alt text', template=image_carousel_template) line_bot_api.reply_message(event.reply_token, template_message) elif text == 'imagemap': pass else: line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text))
def handle_text_message(event): inp_raw = event.message.text inp = inp_raw.lower() inp_split = inp.split() profile = susunhurufbot.get_profile(event.source.user_id) def reply_txt(msg): susunhurufbot.reply_message(event.reply_token,TextSendMessage(text=msg)) def reply_img(link): susunhurufbot.reply_message(event.reply_token,ImageSendMessage(original_content_url=link,preview_image_url=link)) if inp == '/help': carousel_template_message = TemplateSendMessage( alt_text='Bantuan umum', template=CarouselTemplate( columns=[ CarouselColumn( thumbnail_image_url='https://example.com/item1.jpg', title='Susun Kata Game', text='Tap salah satu', actions=[ MessageTemplateAction( label='Mulai Sekarang', text='/play' ), MessageTemplateAction( label='Aturan Main', text='/rule' ), MessageTemplateAction( label='Leaderboards', text='/leaderboard')]), CarouselColumn( thumbnail_image_url='https://example.com/item4.jpg', title='Lain - lain', text='Tap salah satu', actions=[ MessageTemplateAction( label='Tentang admin', text='/admin' ), MessageTemplateAction( label='Keluarkan aku', text='/leave' ), URITemplateAction( label='Kirim feedback', uri='http://s.id/FeedbackSusunHurufBot')]) ] ) ) susunhurufbot.reply_message(event.reply_token, carousel_template_message) # ------------------------------------------- Lain - Lain ------------------------------------------ # if inp == '/admin': about_button = TemplateSendMessage( alt_text='Info Admin', template=ButtonsTemplate( thumbnail_image_url='https://dl.dropboxusercontent.com/s/xjgb1az7tt7p7h3/admin_logo.png', title='Admin Susun Huruf Bot', text= 'Pradipta Gitaya (21 Tahun)', actions=[ MessageTemplateAction( label='Hubungi Admin', text= '/contactadmin' ), MessageTemplateAction( label='Catatan Admin', text= '/adminnotes' ),])) susunhurufbot.reply_message(event.reply_token, about_button) elif inp == '/adminnotes': reply_txt(admin_note_msg) elif inp == '/contactadmin': reply_txt(about_msg) elif inp == '/leave': def kick(): confirm_template = ConfirmTemplate(text='Keluarkan bot dari obrolan?', actions=[ MessageTemplateAction(label='Iya', text='Pergi sana!'), MessageTemplateAction(label='Tidak', text='Jangan keluarkan!'),]) template_message = TemplateSendMessage(alt_text='Konfirmasi kick', template=confirm_template) return susunhurufbot.reply_message(event.reply_token, template_message) if isinstance(event.source, SourceGroup): kick() elif isinstance(event.source, SourceRoom): kick() else: reply_txt('Ini chat 1:1 , gimana caranya aku bisa keluar dari sini coba :(') elif inp == ('Pergi sana!'.lower()): # Bot kick confirmation reply_txt('Sampai jumpa ~') if isinstance(event.source, SourceGroup): susunhurufbot.leave_group(event.source.group_id) elif isinstance(event.source, SourceRoom): susunhurufbot.leave_room(event.source.room_id) elif inp == ('Jangan keluarkan!'.lower()): # Bot kick confirmation return 'OK'