From fd3ecacbb286af3916e1cc531face38b640a8c82 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 9 Jun 2023 11:53:31 +0800 Subject: [PATCH] fix message format --- app/modules/telegram/telegram.py | 30 +++++++++++------------ app/plugins/sitestatistic/__init__.py | 34 ++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/app/modules/telegram/telegram.py b/app/modules/telegram/telegram.py index 024c8065..28e5b80b 100644 --- a/app/modules/telegram/telegram.py +++ b/app/modules/telegram/telegram.py @@ -27,7 +27,7 @@ class Telegram(metaclass=Singleton): # 初始化机器人 if self._telegram_token and self._telegram_chat_id: # bot - _bot = telebot.TeleBot(self._telegram_token, parse_mode="markdown") + _bot = telebot.TeleBot(self._telegram_token, parse_mode="Markdown") # 记录句柄 self._bot = _bot @@ -65,7 +65,7 @@ class Telegram(metaclass=Singleton): if text: # text中的Markdown特殊字符转义 text = StringUtils.escape_markdown(text) - caption = f"*{title}*\n{text}" + caption = f"*{title}*\n\n{text}" else: caption = title @@ -93,18 +93,18 @@ class Telegram(metaclass=Singleton): if not image: image = media.get_message_image() if media.vote_average: - caption = "%s\n%s. [%s](%s)\n%s,%s" % (caption, - index, - media.get_title_string(), - media.get_detail_url(), - f"类型:{media.type.value}", - f"评分:{media.vote_average}") + caption = "%s\n%s. [%s](%s)\n_%s,%s_" % (caption, + index, + media.get_title_string(), + media.get_detail_url(), + f"类型:{media.type.value}", + f"评分:{media.vote_average}") else: - caption = "%s\n%s. [%s](%s)\n%s" % (caption, - index, - media.get_title_string(), - media.get_detail_url(), - f"类型:{media.type.value}") + caption = "%s\n%s. [%s](%s)\n_%s_" % (caption, + index, + media.get_title_string(), + media.get_detail_url(), + f"类型:{media.type.value}") index += 1 if userid: @@ -157,11 +157,11 @@ class Telegram(metaclass=Singleton): ret = self._bot.send_photo(chat_id=self._telegram_chat_id, photo=image, caption=caption, - parse_mode="markdown") + parse_mode="Markdown") else: ret = self._bot.send_message(chat_id=self._telegram_chat_id, text=caption, - parse_mode="markdown") + parse_mode="Markdown") return True if ret else False diff --git a/app/plugins/sitestatistic/__init__.py b/app/plugins/sitestatistic/__init__.py index cdcf6259..100067fa 100644 --- a/app/plugins/sitestatistic/__init__.py +++ b/app/plugins/sitestatistic/__init__.py @@ -15,6 +15,7 @@ from app.log import logger from app.plugins import _PluginBase from app.plugins.sitestatistic.siteuserinfo import ISiteUserInfo from app.utils.http import RequestUtils +from app.utils.string import StringUtils from app.utils.timer import TimerUtils import warnings @@ -23,7 +24,6 @@ from app.utils.types import EventType warnings.filterwarnings("ignore", category=FutureWarning) - lock = Lock() @@ -287,4 +287,36 @@ class SiteStatistic(_PluginBase): # 更新时间 self._last_update_time = datetime.now() + # 通知刷新完成 + messages = [] + # 按照上传降序排序 + sites = self._sites_data.keys() + uploads = [self._sites_data[site].get("upload") or 0 for site in sites] + downloads = [self._sites_data[site].get("download") or 0 for site in sites] + data_list = sorted(list(zip(sites, uploads, downloads)), + key=lambda x: x[1], + reverse=True) + # 总上传 + incUploads = 0 + # 总下载 + incDownloads = 0 + for data in data_list: + site = data[0] + upload = int(data[1]) + download = int(data[2]) + if upload > 0 or download > 0: + incUploads += int(upload) + incDownloads += int(download) + messages.append(f"【{site}】\n" + f"上传量:{StringUtils.str_filesize(upload)}\n" + f"下载量:{StringUtils.str_filesize(download)}\n" + f"————————————") + + if incDownloads or incUploads: + messages.insert(0, f"【汇总】\n" + f"总上传:{StringUtils.str_filesize(incUploads)}\n" + f"总下载:{StringUtils.str_filesize(incDownloads)}\n" + f"————————————") + self.chain.run_module("post_message", title="站点数据统计", text="\n".join(messages)) + logger.info("站点数据刷新完成")