diff --git a/README.md b/README.md index 63309ba..b7fac1c 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtow * url: Alist 访问地址,例如:http://127.0.0.1:5244 * token:Alist 访问令牌,Alist 管理后台-设置-其他-令牌-复制令牌 -* path_prefix: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` +* quark_root_path: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` * quark_root_dir: Alist 挂载的夸克网盘根目录,Alist 管理后台-存储-夸克驱动-根文件夹ID(Alist 填写的为文件夹 ID,此处需要填写文件夹路径),默认 `/` #### alist_strm_lite @@ -165,7 +165,7 @@ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtow * url: Alist 访问地址,例如:http://127.0.0.1:5244 * webdav_username: Alist WebDAV 用户名 * webdav_password: Alist WebDAV 密码 -* path_prefix: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` +* quark_root_path: Alist 夸克网盘的挂载路径,Alist 管理后台-存储-夸克驱动-挂载路径,默认 `/quark` * quark_root_dir: Alist 挂载的夸克网盘根目录,Alist 管理后台-存储-夸克驱动-根文件夹ID(Alist 填写的为文件夹 ID,此处需要填写文件夹路径),默认 `/` * strm_save_dir: strm 文件保存路径,如使用 docker 对应 docker 内部路径,默认 `/media` * strm_url_host: strm 文件内链接使用的主机地址,例如:http://example.host ,配合自定义 host 解析在 strm 文件迁移机器时无需重新生成 strm 文件,修改自定义 host 解析地址即可,默认为空时使用 url 配置 diff --git a/media_servers/alist_strm_lite.py b/media_servers/alist_strm_lite.py index 7f5c418..aa4555e 100644 --- a/media_servers/alist_strm_lite.py +++ b/media_servers/alist_strm_lite.py @@ -16,7 +16,7 @@ from webdav3.client import Client class Alist_strm_lite: video_exts = ["mp4", "mkv", "flv", "mov", "m4v", "avi", "webm", "wmv"] - default_config = {"url": "", "webdav_username": "", "webdav_password": "", "path_prefix": "/quark", "quark_root_dir": "/", "strm_save_dir": "/media", "strm_url_host": ""} + default_config = {"url": "", "webdav_username": "", "webdav_password": "", "quark_root_path": "/quark", "quark_root_dir": "/", "strm_save_dir": "/media", "strm_url_host": ""} is_active = False def __init__(self, **kwargs): @@ -40,8 +40,10 @@ class Alist_strm_lite: def run(self, task): if task.get("savepath") and task.get("savepath").startswith(self.quark_root_dir): - path = self._normalize_path(task["savepath"]) - self.refresh(path) + full_path = os.path.normpath( + os.path.join(self.quark_root_path, task["savepath"].lstrip("/").lstrip(self.quark_root_dir)) + ).replace("\\", "/") + self.refresh(full_path) def get_info(self): try: @@ -82,9 +84,3 @@ class Alist_strm_lite: host = self.strm_url_host.rstrip("/") if self.strm_url_host.strip() else self.url.rstrip("/") strm_file.write(f"{host}/d{file_path}") print(f"📺 生成STRM文件 {strm_path} 成功✅") - - def _normalize_path(self, path): - """标准化路径格式""" - if not path.startswith(self.path_prefix): - path = f"/{self.path_prefix}/{path.lstrip(self.quark_root_dir)}" - return re.sub(r"/{2,}", "/", path) diff --git a/quark_config.json b/quark_config.json index c178067..474131e 100644 --- a/quark_config.json +++ b/quark_config.json @@ -10,14 +10,14 @@ "alist": { "url": "", "token": "", - "path_prefix": "/quark", + "quark_root_path": "/quark", "quark_root_dir": "/" }, "alist_strm_lite": { "url": "", "webdav_username": "", "webdav_password": "", - "path_prefix": "/quark", + "quark_root_path": "/quark", "quark_root_dir": "/", "strm_save_dir": "/media", "strm_url_host": ""