From 951be74a216b64b73f7be9099f1bcf6897defa96 Mon Sep 17 00:00:00 2001 From: WithdewHua Date: Sun, 17 Sep 2023 18:03:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E5=87=BD=E6=95=B0=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/system.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/endpoints/system.py b/app/api/endpoints/system.py index df32ee6d..b763d4c1 100644 --- a/app/api/endpoints/system.py +++ b/app/api/endpoints/system.py @@ -25,7 +25,7 @@ router = APIRouter() @router.get("/env", summary="查询系统环境变量", response_model=schemas.Response) -def get_setting(_: schemas.TokenPayload = Depends(verify_token)): +def get_env_setting(_: schemas.TokenPayload = Depends(verify_token)): """ 查询系统环境变量,包括当前版本号 """ @@ -83,7 +83,7 @@ def set_setting(key: str, value: Union[list, dict, str, int] = None, @router.get("/message", summary="实时消息") -def get_progress(token: str): +def get_message(token: str): """ 实时获取系统消息,返回格式为SSE """ From 42311f0118e690b6d002cee7618def1d055dab30 Mon Sep 17 00:00:00 2001 From: WithdewHua Date: Sun, 17 Sep 2023 18:04:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E8=AE=A2=E9=98=85=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E6=94=AF=E6=8C=81=E9=BB=98=E8=AE=A4=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E4=B8=8E=E6=8E=92=E9=99=A4=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/subscribe.py | 28 ++++++++++++++++++++-------- app/schemas/types.py | 2 ++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index a305f363..5df126ad 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -285,15 +285,21 @@ class SubscribeChain(ChainBase): torrent_meta = context.meta_info torrent_info = context.torrent_info torrent_mediainfo = context.media_info + # 包含与排除规则 + default_include_exclude = self.systemconfig.get(SystemConfigKey.DefaultIncludeExcludeFilter) or {} + include = subscribe.include or default_include_exclude.get("include") + exclude = subscribe.exclude or default_include_exclude.get("exclude") # 包含 - if subscribe.include: - if not re.search(r"%s" % subscribe.include, + if include: + if not re.search(r"%s" % include, f"{torrent_info.title} {torrent_info.description}", re.I): + logger.info(f"{torrent_info.title} 不匹配包含规则 {include}") continue # 排除 - if subscribe.exclude: - if re.search(r"%s" % subscribe.exclude, + if exclude: + if re.search(r"%s" % exclude, f"{torrent_info.title} {torrent_info.description}", re.I): + logger.info(f"{torrent_info.title} 匹配排除规则 {exclude}") continue # 非洗版 if not subscribe.best_version: @@ -557,15 +563,21 @@ class SubscribeChain(ChainBase): if torrent_meta.episode_list: logger.info(f'{subscribe.name} 正在洗版,{torrent_info.title} 不是整季') continue + # 包含与排除规则 + default_include_exclude = self.systemconfig.get(SystemConfigKey.DefaultIncludeExcludeFilter) or {} + include = subscribe.include or default_include_exclude.get("include") + exclude = subscribe.exclude or default_include_exclude.get("exclude") # 包含 - if subscribe.include: - if not re.search(r"%s" % subscribe.include, + if include: + if not re.search(r"%s" % include, f"{torrent_info.title} {torrent_info.description}", re.I): + logger.info(f"{torrent_info.title} 不匹配包含规则 {include}") continue # 排除 - if subscribe.exclude: - if re.search(r"%s" % subscribe.exclude, + if exclude: + if re.search(r"%s" % exclude, f"{torrent_info.title} {torrent_info.description}", re.I): + logger.info(f"{torrent_info.title} 匹配排除规则 {exclude}") continue # 匹配成功 logger.info(f'{mediainfo.title_year} 匹配成功:{torrent_info.title}') diff --git a/app/schemas/types.py b/app/schemas/types.py index 0d8e4d14..5e68333b 100644 --- a/app/schemas/types.py +++ b/app/schemas/types.py @@ -64,6 +64,8 @@ class SystemConfigKey(Enum): FilterRules = "FilterRules" # 洗版规则 FilterRules2 = "FilterRules2" + # 默认包含与排除规则 + DefaultIncludeExcludeFilter = "DefaultIncludeExcludeFilter" # 转移屏蔽词 TransferExcludeWords = "TransferExcludeWords"