diff options
| -rw-r--r-- | ATRI/plugins/saucenao/__init__.py | 18 | ||||
| -rw-r--r-- | ATRI/plugins/saucenao/data_source.py | 12 | 
2 files changed, 16 insertions, 14 deletions
| diff --git a/ATRI/plugins/saucenao/__init__.py b/ATRI/plugins/saucenao/__init__.py index 071af98..9b502bd 100644 --- a/ATRI/plugins/saucenao/__init__.py +++ b/ATRI/plugins/saucenao/__init__.py @@ -3,25 +3,35 @@ from random import choice  from nonebot.adapters.onebot.v11 import MessageEvent, Message, MessageSegment  from nonebot.adapters.onebot.v11.helpers import extract_image_urls, Cooldown -from ATRI.config import SauceNAO -from .data_source import SaouceNao +from ATRI.log import logger as log +from ATRI.config import SauceNAO as sn +from ATRI.service import ServiceTools +from .data_source import SauceNao  _search_flmt_notice = choice(["慢...慢一..点❤", "冷静1下", "歇会歇会~~"]) -saucenao = SaouceNao().on_command("以图搜图", "透过一张图搜索可能的来源") +saucenao = SauceNao().on_command("以图搜图", "透过一张图搜索可能的来源")  @saucenao.got("saucenao_img", "图呢?", [Cooldown(5, prompt=_search_flmt_notice)])  async def _deal_search(event: MessageEvent): + +    # cache fix +    if not sn.key: +        data = ServiceTools.load_service("以图搜图") +        data["enabled"] = False +        ServiceTools.save_service(data, "以图搜图") +        log.warning("插件 SauceNao 所需的 key 未配置,将被全局禁用,后续填写请手动启用") +      user_id = event.get_user_id()      img = extract_image_urls(event.message)      if not img:          await saucenao.reject("请发送图片而不是其他东西!!")      try: -        a = SaouceNao(SauceNAO.key) +        a = SauceNao(sn.key)      except Exception:          await saucenao.finish("失败了...") diff --git a/ATRI/plugins/saucenao/data_source.py b/ATRI/plugins/saucenao/data_source.py index 8350839..521a957 100644 --- a/ATRI/plugins/saucenao/data_source.py +++ b/ATRI/plugins/saucenao/data_source.py @@ -1,17 +1,15 @@  from random import choice -from ATRI.service import Service, ServiceTools +from ATRI.service import Service  from ATRI.rule import is_in_service  from ATRI.exceptions import RequestError  from ATRI.utils import request -from ATRI.config import SauceNAO as sa -from ATRI.log import logger as log  URL = "https://saucenao.com/search.php" -class SaouceNao(Service): +class SauceNao(Service):      def __init__(          self,          api_key: str = str(), @@ -23,12 +21,6 @@ class SaouceNao(Service):      ):          Service.__init__(self, "以图搜图", "以图搜图,仅限二刺螈", rule=is_in_service("以图搜图")) -        if not sa.key: -            data = ServiceTools.load_service("以图搜图") -            data["enabled"] = False -            ServiceTools.save_service(data, "以图搜图") -            log.warning("插件 SauceNao 所需的 key 未配置,将被全局禁用,后续填写请手动启用") -          params = dict()          params["api_key"] = api_key          params["output_type"] = output_type | 
