def get_content(content_id): ''' 根据指定喜马拉雅的资源id 将资源存盘及存库 ''' # content_id = '21017396' content_url = 'http://m.ximalaya.com/tracks/' + content_id + '.json' # 获取资源所有字段 content = requests.get(content_url).content content_dict = json.loads(content) # 生成资源唯一id content_id = str(uuid.uuid4()) # 存盘(audio) audio_url = content_dict.get('play_path_64') audio_save_path = os.path.join('audio', content_id + '.' + 'mp3') content_save(audio_url, audio_save_path) # 存盘(cover) cover_url = content_dict.get('cover_url') cover_save_path = os.path.join('cover', content_id + '.' + 'jpg') content_save(cover_url, cover_save_path) # 资源存库 db, collection = mongodb.get_db_client(DB, COLLECTION) data = { 'title': content_dict.get('title'), 'category_name': content_dict.get('category_name'), 'author': content_dict.get('nickname'), 'audio_path': audio_save_path, 'cover_path': cover_save_path, } mongodb.insert_one(collection, data)
def handle_follow(event): profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id print(name) print(uid) if mongodb.find_user(uid, 'vusers') <= 0: dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'Note': 'user', 'ready': 0 } mongodb.insert_one(dic, 'vusers') add_mes = str(name) + '已經加入小鮮盒囉' line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=add_mes))
def handle_follow(event): ''' 當使用者加入時觸動 ''' # 取得使用者資料 profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id print(name) print(uid) # Udbddac07bac1811e17ffbbd9db459079 if mongodb.find_user(uid,'users')<= 0: # 整理資料 dic = {'userid':uid, 'username':name, 'creattime':datetime.now(), 'Note':'user', 'ready':0} mongodb.insert_one(dic,'users')
def handle_message(event): # 取得個人資料 print("----------------必須加入好友才會回覆(個人聊天室、群組聊天室皆可)-------------") ''' 當收到使用者訊息的時候 ''' profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id message = event.message.text print(name) print(uid) print(message) dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'message': message } mongodb.insert_one(dic, 'messages') #if mongodb.get_ready(uid,'users') ==1 : # mongodb.update_byid(uid,{'ready':0},'users') # casttext = name+' 對大家說: '+message # remessage = TextSendMessage(text=casttext) # userids = mongodb.get_all_userid('users') # line_bot_api.multicast(userids, remessage) # return 0 #if message == '群體廣播': # 設定使用者下一句話要群廣播 # mongodb.update_byid(uid,{'ready':1},'users') # remessage = TextSendMessage(text='請問要廣播什麼呢?') # line_bot_api.reply_message( # event.reply_token, # remessage) #return 0 #print('picture:'+profile.picture_url) #print('status_message:'+profile.status_message) #print("-------------無須加入好友也會回覆(只限在群組內)--------------------------") #profile2 = line_bot_api.get_group_member_profile(event.source.group_id, event.source.user_id) #print(profile2.display_name) #print(profile2.user_id) #print(profile2.picture_url) # 傳送圖片 if event.message.text == 'HG': message = ImagemapSendMessage( base_url='https://i.imgur.com/m1sFvq3.jpg', alt_text='HAPPY GO 串聯你的美好生活', base_size=BaseSize(height=800, width=600), actions=[ URIImagemapAction(link_uri='https://www.happygocard.com.tw/', area=ImagemapArea(x=0, y=0, width=800, height=600)) ]) # 傳送影片 elif event.message.text == 'HG影片': message = VideoSendMessage( original_content_url='https://i.imgur.com/g2aQYSZ.mp4', preview_image_url='https://i.imgur.com/g2aQYSZ.mp4') # 傳送位置 elif event.message.text == '公司位置': message = LocationSendMessage(title='公司地點', address='板橋', latitude=25.013132, longitude=121.4670082) #擲骰子 elif event.message.text == '擲骰子': message = TextSendMessage( text=random.choice(['1', '2', '3', '4', '5', '6'])) # 傳送貼圖 elif event.message.text == '抽貼圖': #line_picture = random.choice([[random.choice([i for i in range(1,18)] + [21] + [i for i in range(100,140)] + [i for i in range(401,431)]),1],[random.choice([18] + [19] + [20] + [i for i in range(22,48)] + [i for i in range(140,180)] + [i for i in range(501,528)]),2]]) line_picture = random.choice([[random.choice([i for i in range(1,18)] + [21] + \ [i for i in range(100,140)] + [i for i in range(401,431)]),1],\ [random.choice([18] + [19] + [20] + [i for i in range(22,48)] + \ [i for i in range(140,180)] + [i for i in range(501,528)]),2],\ [random.choice([i for i in range(180,260)]),3],\ [random.choice([i for i in range(260,308)] + \ [i for i in range(601,633)]),4]]) message = StickerSendMessage(package_id=str(line_picture[1]), sticker_id=str(line_picture[0])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '卡友好康': url = 'https://www.happygocard.com.tw/official/event/calendar/index.html?utm_source=hg&utm_medium=menu&utm_campaign=calendar' resp = r.get(url) resp.encoding = 'utf-8' soup = bs(resp.text, 'html5lib') mes_list = [] for i in soup.select('ul.bxslider > li > p'): mes_list.append(i.text) remessage = random.choice(mes_list) message = TextSendMessage(text=remessage) # 傳送確認介面訊息 elif event.message.text == '我想要評分': message = TemplateSendMessage( alt_text='今天演講內容滿意嗎?', template=ConfirmTemplate(text='今天演講內容滿意嗎?', actions=[ MessageTemplateAction(label='滿意', text='GOOD'), MessageTemplateAction( label='非常滿意!', text='VERY GOOD!') ])) elif event.message.text == '所有功能': message = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/8g83GnI.jpg', title='HAPPY GO', text='串聯生活 放大美好', actions=[ URITemplateAction( label='HAPPY GO官方網站', uri='https://www.happygocard.com.tw/#'), MessageTemplateAction(label='關於HAPPY GO', text='HG影片'), MessageTemplateAction(label='卡友好康', text='卡友好康') ]), CarouselColumn( thumbnail_image_url='https://i.imgur.com/F8WHUU6.jpg', title='放鬆自己', text='享受生活', actions=[ MessageTemplateAction(label='我想要評分', text='我想要評分'), MessageTemplateAction(label='放鬆一下', text='抽貼圖'), MessageTemplateAction(label='比大小', text='擲骰子') ]) ])) else: message = TextSendMessage(text=event.message.text) line_bot_api.reply_message(event.reply_token, message)
def handle_message(event): profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id message = event.message.text print(name) print(uid) print(message) if event.message.text[0:4] == '買鮮蔬果': if event.message.text[4] == '大': combo_product = event.message.text[1:7] combo_count = event.message.text[-1] elif event.message.text[4] == '中': combo_product = event.message.text[1:7] combo_count = event.message.text[-1] elif event.message.text[4] == '小': combo_product = event.message.text[1:7] combo_count = event.message.text[-1] dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'product': combo_product, 'count': combo_count, 'status': 0 } mongodb.insert_one(dic, 'vproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0:5] == '買當季蔬果': if event.message.text[5] == '大': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] elif event.message.text[5] == '中': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] elif event.message.text[5] == '小': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'product': combo_product, 'count': combo_count, 'status': 0 } mongodb.insert_one(dic, 'vproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0:5] == '買綠色蔬菜': if event.message.text[5] == '大': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] elif event.message.text[5] == '中': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] elif event.message.text[5] == '小': combo_product = event.message.text[1:8] combo_count = event.message.text[-1] dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'product': combo_product, 'count': combo_count, 'status': 0 } mongodb.insert_one(dic, 'vproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0:3] == '買烤肉': if event.message.text[3] == '大': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] elif event.message.text[3] == '中': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] elif event.message.text[3] == '小': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'product': combo_product, 'count': combo_count, 'status': 0 } mongodb.insert_one(dic, 'vproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0:3] == '買拜拜': if event.message.text[3] == '大': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] elif event.message.text[3] == '中': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] elif event.message.text[3] == '小': combo_product = event.message.text[1:6] combo_count = event.message.text[-1] dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'product': combo_product, 'count': combo_count, 'status': 0 } mongodb.insert_one(dic, 'vproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '查詢訂單': product_list = mongodb.get_user_product(uid, 'vproduct') if len(product_list) == 0: message = TextSendMessage(text='目前並無商品') else: message = '\n'.join(('目前購買 ' + i[0] + ' 共 ' + i[1] + ' 份' for i in dict(product_list).items())) #message = str(dict(product_list)) print(message) message = TextSendMessage(text=message) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '刪除購物籃內所有組合商品': mongodb.remove_user_all_product(uid, 'vproduct') message = TextSendMessage(text='已刪除購物車內所有組合商品') line_bot_api.reply_message(event.reply_token, message) name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) elif event.message.text[0:2] == '地址': address = event.message.text[2:] dic = { 'username': name, 'creattime': datetime.now(), 'address': address } mongodb.insert_one(dic, 'vprofile') message = TextSendMessage(text='小鮮盒把地址記起來囉') line_bot_api.reply_message(event.reply_token, message) name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) elif event.message.text[0:2] == '電話': tel = event.message.text[2:] dic = {'username': name, 'creattime': datetime.now(), 'tel': tel} mongodb.insert_one(dic, 'vprofile') message = TextSendMessage(text='小鮮盒把電話記起來囉') line_bot_api.reply_message(event.reply_token, message) name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) elif event.message.text[0:2] == '稱呼': nam = event.message.text[2:] dic = {'username': name, 'creattime': datetime.now(), 'name': nam} mongodb.insert_one(dic, 'vprofile') message = TextSendMessage(text='小鮮盒把稱呼記起來囉') line_bot_api.reply_message(event.reply_token, message) name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) elif event.message.text == '鮮蔬果組': message = TemplateSendMessage( alt_text='需要哪種鮮蔬果組合呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='需要哪種鮮蔬果組合呢?', text='包含各式葉菜、根莖、菇菌、瓜果、豆以及(蔥、薑、蒜、辣椒)調味類', actions=[ MessageTemplateAction(label='大組合-299元(4-5人份)', text='買鮮蔬果大組合X1'), MessageTemplateAction(label='中組合-199元(2-3人份)', text='買鮮蔬果中組合X1'), MessageTemplateAction(label='小組合-99元(1-2人份)', text='買鮮蔬果小組合X1') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '當季蔬果組': message = TemplateSendMessage( alt_text='需要哪種當季蔬果組合呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='需要哪種當季蔬果組合呢?', text='包含當季葉菜、根莖、菇菌、瓜果、豆以及(蔥、薑、蒜、辣椒)調味類', actions=[ MessageTemplateAction(label='大組合-299元(4-5人份)', text='買當季蔬果大組合X1'), MessageTemplateAction(label='中組合-199元(2-3人份)', text='買當季蔬果中組合X1'), MessageTemplateAction(label='小組合-99元(1-2人份)', text='買當季蔬果小組合X1') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '綠色蔬菜組': message = TemplateSendMessage( alt_text='需要哪種綠色蔬菜組合呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='需要哪種綠色蔬菜組合呢?', text='由不同的綠色蔬菜所組成(至少2-3種以上)', actions=[ MessageTemplateAction(label='大組合-299元(4-5人份)', text='買綠色蔬菜大組合X1'), MessageTemplateAction(label='中組合-199元(2-3人份)', text='買綠色蔬菜中組合X1'), MessageTemplateAction(label='小組合-99元(1-2人份)', text='買綠色蔬菜小組合X1') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '烤肉組合': message = TemplateSendMessage( alt_text='需要哪種烤肉組合呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='需要哪種烤肉組合呢?', text='由不同的烤肉必備食材所組成(至少2-3種以上)', actions=[ MessageTemplateAction(label='大組合-299元(4-5人份)', text='買烤肉大組合X1'), MessageTemplateAction(label='中組合-199元(2-3人份)', text='買烤肉中組合X1'), MessageTemplateAction(label='小組合-99元(1-2人份)', text='買烤肉小組合X1') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '拜拜組合': message = TemplateSendMessage( alt_text='需要哪種拜拜組合呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='需要哪種拜拜組合呢?', text='由各個節日拜拜所需蔬果組成(至少2-3種以上)', actions=[ MessageTemplateAction(label='大組合-299元(4-5人份)', text='買拜拜大組合X1'), MessageTemplateAction(label='中組合-199元(2-3人份)', text='買拜拜中組合X1'), MessageTemplateAction(label='小組合-99元(1-2人份)', text='買拜拜小組合X1') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text == '買': message = TemplateSendMessage( alt_text='買什麼東西呢?', template=CarouselTemplate(columns=[ CarouselColumn( thumbnail_image_url='https://i.imgur.com/qnACcLd.jpg', title='綜合營養組合', text='幫妳配好好的組合,再也不用再擔心不知道吃什麼', actions=[ MessageTemplateAction(label='鮮蔬果組', text='鮮蔬果組'), MessageTemplateAction(label='當季蔬果組', text='當季蔬果組'), MessageTemplateAction(label='綠色蔬菜組', text='綠色蔬菜組') ]), CarouselColumn( thumbnail_image_url='https://i.imgur.com/0xFDvDV.jpg', title='節慶組合', text='節慶必備(烤肉、拜拜)', actions=[ MessageTemplateAction(label='烤肉組合', text='烤肉組合'), MessageTemplateAction(label='拜拜組合', text='拜拜組合'), MessageTemplateAction(label='任意組合', text='任意組合') ]), CarouselColumn( thumbnail_image_url='https://i.imgur.com/cLRmBTe.jpg', title='其他', text='其他', actions=[ MessageTemplateAction(label='關於鮮蔬盒的介紹與起源', text='關於鮮蔬盒'), MessageTemplateAction(label='菜單與分類', text='菜單與分類'), MessageTemplateAction(label='刪除購物籃內所有組合商品', text='刪除購物籃內所有組合商品') ]) ])) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0] == '買': product = event.message.text[1:] dic = { 'username': name, 'creattime': datetime.now(), 'product': product } mongodb.insert_one(dic, 'vmproduct') message = TextSendMessage(text='小鮮盒已經收到囉~~還要其他的嗎?') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) line_bot_api.reply_message(event.reply_token, message) elif event.message.text[0:2] == '刪除': remove_product = event.message.text[2:] product_list = mongodb.get_user_product(uid, 'vproduct') print(remove_product) print([i for i in dict(product_list).keys()]) if remove_product in [i for i in dict(product_list).keys()]: mongodb.remove_user_product(uid, 'vproduct', remove_product) text_ = '已' + str(event.message.text) message = TextSendMessage(text=text_) line_bot_api.reply_message(event.reply_token, message) name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active)) else: message = TextSendMessage(text='不好意思您沒有買這個商品喔') line_bot_api.reply_message(event.reply_token, message) else: dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'message': message } mongodb.insert_one(dic, 'vmessages') name_active = str(name) + ':' + str(event.message.text) line_bot_api.push_message(os.environ['gene_uid'], TextSendMessage(text=name_active))
def handle_message(event): ''' 當收到使用者訊息的時候 ''' profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id message = event.message.text print(name) print(uid) print(message) dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'mess': message } mongodb.insert_one(dic, 'message') if mongodb.get_ready(uid, 'users') == 1: mongodb.update_byid(uid, {'ready': 0}, 'users') casttext = name + ' 對大家說: ' + message remessage = TextSendMessage(text=casttext) userids = mongodb.get_all_userid('users') line_bot_api.multicast(userids, remessage) return 0 #關鍵評論網 if re.search('theNewLens', event.message.text, re.IGNORECASE): columns = [] img = 'https://image3.thenewslens.com/assets/web/cover-photo-medium.png' carousel = CarouselColumn(thumbnail_image_url=img, title='關鍵評論網新聞', text='點擊觀看類型', actions=[ MessageTemplateAction(label='科學', text='關鍵評論科學'), MessageTemplateAction(label='商業', text='關鍵評論商業'), MessageTemplateAction(label='職場', text='關鍵評論職場') ]) columns.append(carousel) remessage = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=columns)) line_bot_api.reply_message(event.reply_token, remessage) return 0 if re.search('關鍵評論科學', event.message.text, re.IGNORECASE): dic = corwler.theNewLens('science') makeCard(dic, event) return 0 if re.search('關鍵評論商業', event.message.text, re.IGNORECASE): dic = corwler.theNewLens('business') makeCard(dic, event) return 0 if re.search('關鍵評論職場', event.message.text, re.IGNORECASE): dic = corwler.theNewLens('career') makeCard(dic, event) return 0 #科技報橘 if re.search('科技報橘ai', event.message.text, re.IGNORECASE): #人工智慧 dic = corwler.techorangeAi() makeCard(dic, event) if re.search('科技報橘全部', event.message.text, re.IGNORECASE): #全部 dic = corwler.techorange() makeCard(dic, event) #泛科學 if re.search('泛科學', event.message.text, re.IGNORECASE): dic = corwler.Pansci() makeCard(dic, event)
def handle_message(event): ''' 當收到使用者訊息的時候 ''' profile = line_bot_api.get_profile(event.source.user_id) name = profile.display_name uid = profile.user_id message = event.message.text print(name) print(uid) print(message) dic = { 'userid': uid, 'username': name, 'creattime': datetime.now(), 'mess': message } mongodb.insert_one(dic, 'message') if mongodb.get_ready(uid, 'users') == 1: mongodb.update_byid(uid, {'ready': 0}, 'users') casttext = name + ' 對大家說: ' + message remessage = TextSendMessage(text=casttext) userids = mongodb.get_all_userid('users') line_bot_api.multicast(userids, remessage) return 0 if message == '群體廣播': # 設定使用者下一句話要群廣播 mongodb.update_byid(uid, {'ready': 1}, 'users') remessage = TextSendMessage(text='請問要廣播什麼呢?') line_bot_api.reply_message(event.reply_token, remessage) return 0 if re.search('Hi|hello|你好|ha', message, re.IGNORECASE): line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text)) return 0 if re.search('新聞|news', event.message.text, re.IGNORECASE): dic = corwler.udn_news() columns = [] for i in range(0, 3): carousel = CarouselColumn( thumbnail_image_url=dic[i]['img'], title=dic[i]['title'], text=dic[i]['summary'], actions=[URITemplateAction(label='點我看新聞', uri=dic[i]['link'])]) columns.append(carousel) remessage = TemplateSendMessage( alt_text='Carousel template', template=CarouselTemplate(columns=columns)) line_bot_api.reply_message(event.reply_token, remessage) return 0 if re.search('Dcard|dcard', event.message.text, re.IGNORECASE): text = corwler.Dcard() line_bot_api.reply_message(event.reply_token, TextSendMessage(text=text)) return 0 if message == 'googlemap': # 取得最新評價 text = corwler.google() # 包裝訊息 remessage = TextSendMessage(text=text) # 回應使用者 line_bot_api.reply_message(event.reply_token, remessage) return 0 line_bot_api.reply_message(event.reply_token, TextSendMessage(text=event.message.text)) return 0