From e02765bf9503b757cb978c58521a7ac732776b5a Mon Sep 17 00:00:00 2001 From: RockChinQ <1010553892@qq.com> Date: Thu, 21 Dec 2023 17:11:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20main.announcement=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 6 +++++ pkg/utils/center/apigroup.py | 51 ++++++++++++++++++++++++++---------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/main.py b/main.py index 5fe42013..48971941 100644 --- a/main.py +++ b/main.py @@ -398,6 +398,12 @@ async def start_process(first_time_init=False): if len(new_announcement) > 0: for announcement in new_announcement: logging.critical("[公告]<{}> {}".format(announcement['time'], announcement['content'])) + + # 发送统计数据 + pkg.utils.context.get_center_v2_api().main.post_announcement_showed( + [announcement['id'] for announcement in new_announcement] + ) + except Exception as e: logging.warning("获取公告失败:{}".format(e)) diff --git a/pkg/utils/center/apigroup.py b/pkg/utils/center/apigroup.py index ccce0988..94812d59 100644 --- a/pkg/utils/center/apigroup.py +++ b/pkg/utils/center/apigroup.py @@ -2,6 +2,7 @@ import abc import uuid import json import logging +import threading import requests @@ -26,23 +27,45 @@ class APIGroup(metaclass=abc.ABCMeta): **kwargs ): """执行一个请求""" - url = self.prefix + path - data = json.dumps(data) - headers['Content-Type'] = 'application/json' - - ret = requests.request( - method, - url, - data=data, - params=params, - headers=headers, + def thr_wrapper( + self, + method: str, + path: str, + data: dict = None, + params: dict = None, + headers: dict = {}, **kwargs - ) + ): + try: + url = self.prefix + path + data = json.dumps(data) + headers['Content-Type'] = 'application/json' + + ret = requests.request( + method, + url, + data=data, + params=params, + headers=headers, + **kwargs + ) - logging.debug("data: %s", data) + logging.debug("data: %s", data) + + logging.debug("ret: %s", ret.json()) + except Exception as e: + logging.debug("上报数据失败: %s", e) + + thr = threading.Thread(target=thr_wrapper, args=( + self, + method, + path, + data, + params, + headers, + ), kwargs=kwargs) + thr.start() - logging.debug("ret: %s", ret.json()) - return ret def gen_rid( self