Your Name 4 年之前
父节点
当前提交
e781ccfb32
共有 1 个文件被更改,包括 39 次插入17 次删除
  1. 39 17
      apis/newbot.py

+ 39 - 17
apis/newbot.py

@@ -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')