优化异常处理,防止程序闪退
This commit is contained in:
88
robot.py
88
robot.py
@@ -126,7 +126,7 @@ class Robot(Job):
|
||||
q = re.sub(r"@.*?[\u2005|\s]", "", msg.content).replace(" ", "")
|
||||
if q == "今日百度新闻":
|
||||
self.newsBaiduReport()
|
||||
elif q in ["nbc","cnn","abc","fox","bbc"] :
|
||||
elif q in ["nbc", "cnn", "abc", "fox", "bbc"]:
|
||||
self.newsEnReport(q)
|
||||
else:
|
||||
rsp = self.chat.get_answer(q, (msg.roomid if msg.from_group() else msg.sender))
|
||||
@@ -163,7 +163,7 @@ class Robot(Job):
|
||||
# 聊天记录入库动作:
|
||||
try:
|
||||
now_time = str(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
||||
archive_message(msg.roomid,now_time,msg.sender,msg.content,msg.type,msg.extra)
|
||||
archive_message(msg.roomid, now_time, msg.sender, msg.content, msg.type, msg.extra)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"archive_message error: {e}")
|
||||
|
||||
@@ -192,11 +192,11 @@ class Robot(Job):
|
||||
if msg.content == "^更新$":
|
||||
self.config.reload()
|
||||
self.LOG.info("已更新")
|
||||
if msg.content == "今日36氪新闻" :
|
||||
self.newsReport()
|
||||
if msg.content =='聊天排行榜':
|
||||
if msg.content == "今日百度新闻":
|
||||
self.newsBaiduReport()
|
||||
if msg.content == '聊天排行榜':
|
||||
self.generateAndSendRanking()
|
||||
if msg.content =='聊天数据入库':
|
||||
if msg.content == '聊天数据入库':
|
||||
self.messageCountToDB()
|
||||
else:
|
||||
self.toChitchat(msg) # 闲聊
|
||||
@@ -287,50 +287,49 @@ class Robot(Job):
|
||||
self.allContacts[msg.sender] = nickName[0]
|
||||
self.sendTextMsg(f"Hi {nickName[0]},我自动通过了你的好友请求。", msg.sender)
|
||||
|
||||
def newsReport(self) -> None:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
|
||||
news = News().get_36kr_news()
|
||||
for r in receivers:
|
||||
self.sendTextMsg(news, r)
|
||||
|
||||
def newsBaiduReport(self) -> None:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
news = News().get_baidu_news()
|
||||
news = (f"请根据新闻标题,按照新闻的类型(财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐)进行分类;内容前加入当前日期和星期几" \
|
||||
"内容格式如下:" \
|
||||
"### 分类1" \
|
||||
"1.#标题1" \
|
||||
"2.#标题2" \
|
||||
"分类之间使用--号进行分割,无内容则忽略该分组" )+ news
|
||||
try:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
news = News().get_baidu_news()
|
||||
news = (
|
||||
f"请根据新闻标题,按照新闻的类型(财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐)进行分类;内容前加入当前日期和星期几" \
|
||||
"内容格式如下:" \
|
||||
"### 分类1" \
|
||||
"1.#标题1" \
|
||||
"2.#标题2" \
|
||||
"分类之间使用--号进行分割,无内容则忽略该分组") + news
|
||||
|
||||
rsp = self.chat.get_answer(news)
|
||||
for r in receivers:
|
||||
self.sendTextMsg(rsp, r)
|
||||
rsp = self.chat.get_answer(news)
|
||||
for r in receivers:
|
||||
self.sendTextMsg(rsp, r)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"newsBaiduReport error:{e}")
|
||||
|
||||
def newsEnReport(self,website) -> None:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
def newsEnReport(self, website) -> None:
|
||||
try:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
|
||||
news = News().get_eng_news(website)
|
||||
for r in receivers:
|
||||
self.sendTextMsg(news, r)
|
||||
news = News().get_eng_news(website)
|
||||
for r in receivers:
|
||||
self.sendTextMsg(news, r)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"newsEnReport error:{e}")
|
||||
|
||||
def sendEpicFreeGames(self):
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
if is_friday():
|
||||
games= get_free()
|
||||
for r in receivers:
|
||||
self.sendTextMsg(games, r)
|
||||
|
||||
|
||||
try:
|
||||
receivers = self.config.NEWS
|
||||
if not receivers:
|
||||
return
|
||||
if is_friday():
|
||||
games = get_free()
|
||||
for r in receivers:
|
||||
self.sendTextMsg(games, r)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"sendEpicFreeGames error:{e}")
|
||||
|
||||
def messageCountToDB(self):
|
||||
try:
|
||||
@@ -347,4 +346,3 @@ class Robot(Job):
|
||||
self.sendTextMsg(generate_and_send_ranking(r, self.allContacts), r)
|
||||
except Exception as e:
|
||||
self.LOG.error(f"SendRanking error:{e}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user