From dd40ef54c0c2a23b3f7b9ba12c037052de3c9a18 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 28 May 2024 08:16:51 +0800 Subject: [PATCH] fix #1838 --- app/api/endpoints/mediaserver.py | 5 ++++- app/chain/mediaserver.py | 2 ++ app/core/config.py | 4 ++-- app/core/plugin.py | 2 ++ app/modules/filter/__init__.py | 2 +- app/modules/themoviedb/category.py | 2 +- 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/api/endpoints/mediaserver.py b/app/api/endpoints/mediaserver.py index f2dad9cc..d6051bfd 100644 --- a/app/api/endpoints/mediaserver.py +++ b/app/api/endpoints/mediaserver.py @@ -27,7 +27,10 @@ def play_item(itemid: str) -> schemas.Response: return schemas.Response(success=False, msg="参数错误") if not settings.MEDIASERVER: return schemas.Response(success=False, msg="未配置媒体服务器") - mediaserver = settings.MEDIASERVER.split(",")[0] + # 查找一个不为空的值 + mediaserver = next((server for server in settings.MEDIASERVER.split(",") if server), None) + if not mediaserver: + return schemas.Response(success=False, msg="未配置媒体服务器") play_url = MediaServerChain().get_play_url(server=mediaserver, item_id=itemid) # 重定向到play_url if not play_url: diff --git a/app/chain/mediaserver.py b/app/chain/mediaserver.py index b5f7ad16..edabad81 100644 --- a/app/chain/mediaserver.py +++ b/app/chain/mediaserver.py @@ -80,6 +80,8 @@ class MediaServerChain(ChainBase): self.dboper.empty() # 遍历媒体服务器 for mediaserver in mediaservers: + if not mediaserver: + continue logger.info(f"开始同步媒体库 {mediaserver} 的数据 ...") for library in self.librarys(mediaserver): # 同步黑名单 跳过 diff --git a/app/core/config.py b/app/core/config.py index 48691e24..1702ed19 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -359,7 +359,7 @@ class Settings(BaseSettings): """ if not self.DOWNLOADER: return None - return self.DOWNLOADER.split(",")[0] + return next((d for d in settings.DOWNLOADER.split(",") if d), None) @property def DOWNLOADERS(self): @@ -368,7 +368,7 @@ class Settings(BaseSettings): """ if not self.DOWNLOADER: return [] - return self.DOWNLOADER.split(",") + return [d for d in settings.DOWNLOADER.split(",") if d] def __init__(self, **kwargs): super().__init__(**kwargs) diff --git a/app/core/plugin.py b/app/core/plugin.py index 8bfdc76c..dd8e2f7a 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -619,6 +619,8 @@ class PluginManager(metaclass=Singleton): with concurrent.futures.ThreadPoolExecutor() as executor: futures = [] for m in settings.PLUGIN_MARKET.split(","): + if not m: + continue futures.append(executor.submit(__get_plugin_info, m)) for future in concurrent.futures.as_completed(futures): plugins = future.result() diff --git a/app/modules/filter/__init__.py b/app/modules/filter/__init__.py index 65c4bce0..cabb92a3 100644 --- a/app/modules/filter/__init__.py +++ b/app/modules/filter/__init__.py @@ -338,7 +338,7 @@ class FilterModule(_ModuleBase): info_values = [str(info_value).upper()] # 过滤值转化为数组 if value.find(",") != -1: - values = [str(val).upper() for val in value.split(",")] + values = [str(val).upper() for val in value.split(",") if val] else: values = [str(value).upper()] # 没有交集为不匹配 diff --git a/app/modules/themoviedb/category.py b/app/modules/themoviedb/category.py index 21dfe1d2..1852986b 100644 --- a/app/modules/themoviedb/category.py +++ b/app/modules/themoviedb/category.py @@ -126,7 +126,7 @@ class CategoryHelper(metaclass=Singleton): info_values = [str(info_value).upper()] if value.find(",") != -1: - values = [str(val).upper() for val in value.split(",")] + values = [str(val).upper() for val in value.split(",") if val] else: values = [str(value).upper()]