From c3927c7f2e5dd4485197204b5b92299793a83f6c Mon Sep 17 00:00:00 2001 From: AkashiCoin Date: Tue, 3 Sep 2024 16:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=B7=BB=E5=8A=A0API=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/plugin_store/config.py | 3 +++ zhenxun/builtin_plugins/plugin_store/models.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/zhenxun/builtin_plugins/plugin_store/config.py b/zhenxun/builtin_plugins/plugin_store/config.py index 94922b09..9c47d486 100644 --- a/zhenxun/builtin_plugins/plugin_store/config.py +++ b/zhenxun/builtin_plugins/plugin_store/config.py @@ -25,3 +25,6 @@ GIT_API_TREES_FORMAT = ( "https://api.github.com/repos/{owner}/{repo}/git/trees/{branch}?recursive=1" ) """git api trees地址格式""" + +CACHED_API_TTL = 300 +"""缓存api ttl""" diff --git a/zhenxun/builtin_plugins/plugin_store/models.py b/zhenxun/builtin_plugins/plugin_store/models.py index 6cd016ba..afdd26e4 100644 --- a/zhenxun/builtin_plugins/plugin_store/models.py +++ b/zhenxun/builtin_plugins/plugin_store/models.py @@ -9,6 +9,7 @@ from zhenxun.utils.enum import PluginType from zhenxun.utils.http_utils import AsyncHttpx from .config import ( + CACHED_API_TTL, GIT_API_TREES_FORMAT, JSD_PACKAGE_API_FORMAT, GITHUB_REPO_URL_PATTERN, @@ -94,6 +95,7 @@ class BaseInfo(BaseModel, ABC): @classmethod @abstractmethod + @cached(ttl=CACHED_API_TTL) async def parse_repo_info(cls, repo_info: RepoInfo) -> "BaseInfo": ... @abstractmethod @@ -160,6 +162,7 @@ class FileInfo(BaseInfo): return cur_file @classmethod + @cached(ttl=CACHED_API_TTL) async def parse_repo_info(cls, repo_info: RepoInfo) -> "FileInfo": """解析仓库信息""" @@ -224,6 +227,7 @@ class TreesInfo(BaseInfo): ] @classmethod + @cached(ttl=CACHED_API_TTL) async def parse_repo_info(cls, repo_info: RepoInfo) -> "TreesInfo": """获取仓库树