From 26a321f1192bec858e139016121e3ac9b3a63fa7 Mon Sep 17 00:00:00 2001 From: thsrite Date: Mon, 1 Apr 2024 13:29:22 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=AE=BE=E7=BD=AE=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E9=BB=98=E8=AE=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 | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 63c942bf..5669043a 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -130,7 +130,18 @@ class SubscribeChain(ChainBase): if bangumiid: mediainfo.bangumi_id = bangumiid # 添加订阅 - sid, err_msg = self.subscribeoper.add(mediainfo, season=season, username=username, **kwargs) + kwargs.update({ + 'quality': self.__get_default_subscribe_config(mtype, "quality"), + 'resolution': self.__get_default_subscribe_config(mtype, "resolution"), + 'effect': self.__get_default_subscribe_config(mtype, "effect"), + 'include': self.__get_default_subscribe_config(mtype, "include"), + 'exclude': self.__get_default_subscribe_config(mtype, "exclude"), + 'best_version': self.__get_default_subscribe_config(mtype, "best_version"), + 'search_imdbid': self.__get_default_subscribe_config(mtype, "search_imdbid"), + 'sites': self.__get_default_subscribe_config(mtype, "sites") or None, + 'save_path': self.__get_default_subscribe_config(mtype, "save_path"), + }) + sid, err_msg = self.subscribeoper.add(mediainfo=mediainfo, season=season, username=username, **kwargs) if not sid: logger.error(f'{mediainfo.title_year} {err_msg}') if not exist_ok and message: @@ -589,7 +600,8 @@ class SubscribeChain(ChainBase): if torrent_mediainfo.douban_id \ and torrent_mediainfo.douban_id != mediainfo.douban_id: continue - logger.info(f'{mediainfo.title_year} 通过媒体信ID匹配到资源:{torrent_info.site_name} - {torrent_info.title}') + logger.info( + f'{mediainfo.title_year} 通过媒体信ID匹配到资源:{torrent_info.site_name} - {torrent_info.title}') else: # 按标题匹配 # 比对种子识别类型 @@ -637,7 +649,8 @@ class SubscribeChain(ChainBase): if not title_match: continue # 标题匹配成功 - logger.info(f'{mediainfo.title_year} 通过名称匹配到资源:{torrent_info.site_name} - {torrent_info.title}') + logger.info( + f'{mediainfo.title_year} 通过名称匹配到资源:{torrent_info.site_name} - {torrent_info.title}') # 优先级过滤规则 if subscribe.best_version: @@ -1011,3 +1024,24 @@ class SubscribeChain(ChainBase): self.subscribeoper.update(subscribe.id, { "sites": json.dumps(sites) }) + + @staticmethod + def __get_default_subscribe_config(mtype: MediaType, default_config_key: str): + """ + 获取默认订阅配置 + """ + default_subscribe_key = None + if mtype == MediaType.TV: + default_subscribe_key = "DefaultTvSubscribeConfig" + if mtype == MediaType.MOVIE: + default_subscribe_key = "DefaultMovieSubscribeConfig" + + # 默认订阅规则 + if hasattr(settings, default_subscribe_key): + value = getattr(settings, default_subscribe_key) + else: + value = SystemConfigOper().get(default_subscribe_key) + + if not value: + return None + return value[default_config_key] or None