|
@@ -4,6 +4,8 @@ import fastapi.staticfiles as fastapiStaticfiles
|
|
|
import linebot
|
|
|
import linebot.models as linebotModels
|
|
|
import suggests
|
|
|
+from GoogleNews import GoogleNews
|
|
|
+
|
|
|
#
|
|
|
|
|
|
from linebot.models import (
|
|
@@ -51,6 +53,7 @@ from linebot.models import (
|
|
|
import json
|
|
|
import codecs
|
|
|
seo=False
|
|
|
+s_news=False
|
|
|
line_bot_api = LineBotApi('ExfYlsiGTvqJsMNdixocQ6PLYD+szmUj+GAxH99TXFPCn0RCX/iw06acFnL37pyHW1AYMZf34SOJEIRpdWb9heb9btIF2DaMqcBkYvJ3O2jYaKYv9RDUKbS57lUqcvvChK7ESQeuO2yjvYwes3Oq4wdB04t89/1O/w1cDnyilFU=')
|
|
|
handler = WebhookHandler('5b05fed81cd9f6f1e75dbf7dda388479')
|
|
|
#line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
|
|
@@ -65,18 +68,44 @@ async def callback(request: fastapi.Request):
|
|
|
return 'OK'
|
|
|
|
|
|
|
|
|
+def get_news_by_kw(keyword):
|
|
|
+ googlenews = GoogleNews(lang='zh-TW')
|
|
|
+ kw=keyword
|
|
|
+ googlenews.set_lang('zh-TW')
|
|
|
+ googlenews.search(kw)
|
|
|
+ rs=googlenews.results()
|
|
|
+ resultstr="新聞:"
|
|
|
+ idx=0
|
|
|
+ for r in rs:
|
|
|
+ if idx>0:
|
|
|
+ resultstr+=','
|
|
|
+ resultstr+=r['title']
|
|
|
+ return resultstr
|
|
|
+# print(r['desc'])
|
|
|
+# print(r['link'])
|
|
|
+# print(r['datetime'])
|
|
|
+
|
|
|
+
|
|
|
@handler.add(linebotModels.MessageEvent, message=linebotModels.TextMessage)
|
|
|
def message_text(event):
|
|
|
global seo
|
|
|
+ global s_news
|
|
|
## if event.message.text == 'push':
|
|
|
# line_bot_api.push_message(
|
|
|
# event.source.user_id, [
|
|
|
# # TextSendMessage(text='PUSH!'),
|
|
|
# ]
|
|
|
# )
|
|
|
+ if event.message.text == 's_news':
|
|
|
+ s_news=True
|
|
|
+ line_bot_api.reply_message(
|
|
|
+ event.reply_token,
|
|
|
+ TextSendMessage(text='請輸入要搜尋新聞的關鍵字:'))
|
|
|
+ return
|
|
|
if event.message.text == 'seo':
|
|
|
seo=True
|
|
|
return
|
|
|
+
|
|
|
if event.message.text == '叫':
|
|
|
line_bot_api.reply_message(
|
|
|
event.reply_token, linebotModels.AudioSendMessage(
|
|
@@ -85,35 +114,28 @@ def message_text(event):
|
|
|
line_bot_api.reply_message(
|
|
|
event.reply_token,
|
|
|
TextSendMessage(text='ChoozMo 的FastAPI LINE Bot'))
|
|
|
- if event.message.text=='c':
|
|
|
+ if event.message.text=='c' or event.message.text=='C' :
|
|
|
line_bot_api.reply_message(
|
|
|
event.reply_token,
|
|
|
TextSendMessage(
|
|
|
- text='Quick reply',
|
|
|
+ text='快速鍵',
|
|
|
quick_reply=QuickReply(
|
|
|
items=[
|
|
|
- QuickReplyButton(
|
|
|
- action=PostbackAction(label="label1", data="data1")
|
|
|
- ),
|
|
|
QuickReplyButton(
|
|
|
action=MessageAction(label="按我測試", 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")
|
|
|
+ action=MessageAction(label="查新聞", text="s_news")
|
|
|
),
|
|
|
+
|
|
|
])))
|
|
|
else:
|
|
|
+ if s_news:
|
|
|
+ result=get_news_by_kw(event.message.text)
|
|
|
+ line_bot_api.reply_message(
|
|
|
+ event.reply_token,
|
|
|
+ TextSendMessage(text=result))
|
|
|
+ s_news=False
|
|
|
if seo:
|
|
|
res='相關字:'
|
|
|
s = suggests.suggests.get_suggests(event.message.text, source='google')
|