From 8012b5ab7fb3d9a26976997df6dbb53c1e7f994c Mon Sep 17 00:00:00 2001 From: Kyomotoi <0w0@imki.moe> Date: Fri, 22 Jul 2022 19:46:19 +0800 Subject: =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ATRI/plugins/polaroid/data_source.py | 28 +++++++++++++++------------- ATRI/plugins/saucenao/__init__.py | 4 +--- ATRI/plugins/twitter/data_source.py | 4 +--- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/ATRI/plugins/polaroid/data_source.py b/ATRI/plugins/polaroid/data_source.py index 220d8d5..5314397 100644 --- a/ATRI/plugins/polaroid/data_source.py +++ b/ATRI/plugins/polaroid/data_source.py @@ -1,9 +1,10 @@ from ATRI import driver -from ATRI.service import Service +from ATRI.service import Service, ServiceTools from ATRI.rule import is_in_service from ATRI.utils import request from ATRI.log import logger as log from ATRI.exceptions import RequestError + from .image_dealer import image_dealer @@ -21,7 +22,7 @@ class Polaroid(Service): res = await request.get(TENCENT_AVATER_URL.format(user_id=user_id)) except Exception: raise RequestError("Request failed!") - data = res.read() + data = res.read() # type: ignore return data @classmethod @@ -40,19 +41,20 @@ from .image_dealer import TEMP_PATH, POLAROID_DIR async def init_source(): files = ["frame-0.PNG", "frame-1.PNG", "font-0.ttf"] - for i in files: - path = POLAROID_DIR / i - if not path.is_file(): - log.warning("插件 polaroid 缺少所需资源,装载中") - - url = SOURCE_URL + i - try: + try: + for i in files: + path = POLAROID_DIR / i + if not path.is_file(): + log.warning("插件 polaroid 缺少所需资源,装载中") + url = SOURCE_URL + i data = await request.get(url) with open(path, "wb") as w: - w.write(data.read()) - log.info("所需资源装载完成") - except Exception: - log.error("装载资源失败") + w.write(data.read()) # type: ignore + except Exception: + ServiceTools.service_controller("拍立得", False) + log.error(f"插件 polaroid 装载资源失败. 已自动禁用") + + log.success("插件 polaroid 装载资源完成") driver().on_startup(init_source) diff --git a/ATRI/plugins/saucenao/__init__.py b/ATRI/plugins/saucenao/__init__.py index 9b502bd..bf9e06b 100644 --- a/ATRI/plugins/saucenao/__init__.py +++ b/ATRI/plugins/saucenao/__init__.py @@ -20,9 +20,7 @@ async def _deal_search(event: MessageEvent): # cache fix if not sn.key: - data = ServiceTools.load_service("以图搜图") - data["enabled"] = False - ServiceTools.save_service(data, "以图搜图") + ServiceTools.service_controller("以图搜图", False) log.warning("插件 SauceNao 所需的 key 未配置,将被全局禁用,后续填写请手动启用") user_id = event.get_user_id() diff --git a/ATRI/plugins/twitter/data_source.py b/ATRI/plugins/twitter/data_source.py index 375c06c..c9168a7 100644 --- a/ATRI/plugins/twitter/data_source.py +++ b/ATRI/plugins/twitter/data_source.py @@ -160,9 +160,7 @@ async def _check_status(): await _regot_in_need() scheduler.add_job(_regot_in_need, "interval", name="刷新推特凭据", minutes=30, misfire_grace_time=10) # type: ignore except Exception: - data = ServiceTools.load_service("推特动态订阅") - data["enabled"] = False - ServiceTools.save_service(data, "推特动态订阅") + ServiceTools.service_controller("推特动态订阅", False) log.warning("无法连接至 Twitter,这将导致相关插件无法工作. 已自动禁用.") -- cgit v1.2.3