mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-12 07:10:44 +08:00
♻️ 优化Emby模块配置及加载逻辑
This commit is contained in:
parent
9a1ebe0894
commit
dd42197b27
@ -2,17 +2,24 @@ import requests
|
|||||||
|
|
||||||
|
|
||||||
class Emby:
|
class Emby:
|
||||||
|
|
||||||
|
default_config = {"url": "", "apikey": ""}
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self.is_active = False
|
self.is_active = False
|
||||||
if kwargs.get("url") and kwargs.get("apikey"):
|
if kwargs:
|
||||||
self.emby_url = kwargs.get("url")
|
for key, value in self.default_config.items():
|
||||||
self.emby_apikey = kwargs.get("apikey")
|
if key in kwargs:
|
||||||
if self.get_info():
|
setattr(self, key, kwargs[key])
|
||||||
self.is_active = True
|
else:
|
||||||
|
print(f"{self.__class__.__name__} 模块缺少必要参数: {key}")
|
||||||
|
if self.url and self.apikey:
|
||||||
|
if self.get_info():
|
||||||
|
self.is_active = True
|
||||||
|
|
||||||
def get_info(self):
|
def get_info(self):
|
||||||
url = f"{self.emby_url}/emby/System/Info"
|
url = f"{self.url}/emby/System/Info"
|
||||||
headers = {"X-Emby-Token": self.emby_apikey}
|
headers = {"X-Emby-Token": self.apikey}
|
||||||
querystring = {}
|
querystring = {}
|
||||||
response = requests.request("GET", url, headers=headers, params=querystring)
|
response = requests.request("GET", url, headers=headers, params=querystring)
|
||||||
if "application/json" in response.headers["Content-Type"]:
|
if "application/json" in response.headers["Content-Type"]:
|
||||||
@ -27,8 +34,8 @@ class Emby:
|
|||||||
|
|
||||||
def refresh(self, emby_id):
|
def refresh(self, emby_id):
|
||||||
if emby_id:
|
if emby_id:
|
||||||
url = f"{self.emby_url}/emby/Items/{emby_id}/Refresh"
|
url = f"{self.url}/emby/Items/{emby_id}/Refresh"
|
||||||
headers = {"X-Emby-Token": self.emby_apikey}
|
headers = {"X-Emby-Token": self.apikey}
|
||||||
querystring = {
|
querystring = {
|
||||||
"Recursive": "true",
|
"Recursive": "true",
|
||||||
"MetadataRefreshMode": "FullRefresh",
|
"MetadataRefreshMode": "FullRefresh",
|
||||||
@ -48,8 +55,8 @@ class Emby:
|
|||||||
|
|
||||||
def search(self, media_name):
|
def search(self, media_name):
|
||||||
if media_name:
|
if media_name:
|
||||||
url = f"{self.emby_url}/emby/Items"
|
url = f"{self.url}/emby/Items"
|
||||||
headers = {"X-Emby-Token": self.emby_apikey}
|
headers = {"X-Emby-Token": self.apikey}
|
||||||
querystring = {
|
querystring = {
|
||||||
"IncludeItemTypes": "Series",
|
"IncludeItemTypes": "Series",
|
||||||
"StartIndex": 0,
|
"StartIndex": 0,
|
||||||
|
|||||||
@ -687,18 +687,23 @@ class Quark:
|
|||||||
return is_rename_count > 0
|
return is_rename_count > 0
|
||||||
|
|
||||||
|
|
||||||
def load_media_servers(media_servers_config):
|
def load_media_servers(media_servers_config, media_servers_dir="media_servers"):
|
||||||
media_servers = {}
|
media_servers = {}
|
||||||
for server_name, server_config in media_servers_config.items():
|
available_modules = [
|
||||||
|
f.replace(".py", "") for f in os.listdir(media_servers_dir) if f.endswith(".py")
|
||||||
|
]
|
||||||
|
for module_name in available_modules:
|
||||||
try:
|
try:
|
||||||
module = importlib.import_module(f"media_servers.{server_name}")
|
module = importlib.import_module(f"{media_servers_dir}.{module_name}")
|
||||||
ServerClass = getattr(module, server_name.capitalize())
|
ServerClass = getattr(module, module_name.capitalize())
|
||||||
# 复制配置,避免修改原始配置
|
# 检查配置中是否存在该模块的配置
|
||||||
server_args = server_config.copy()
|
if module_name in media_servers_config:
|
||||||
# 动态传递参数
|
server_config = media_servers_config[module_name]
|
||||||
media_servers[server_name] = ServerClass(**server_args)
|
media_servers[module_name] = ServerClass(**server_config)
|
||||||
|
else:
|
||||||
|
media_servers_config[module_name] = ServerClass().default_config
|
||||||
except (ImportError, AttributeError):
|
except (ImportError, AttributeError):
|
||||||
print(f"加载媒体服务器模块 {server_name} 失败。")
|
print(f"加载模块 {module_name} 失败")
|
||||||
return media_servers
|
return media_servers
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user