Compare commits

...

3 Commits

Author SHA1 Message Date
Cp0204
92df9239af 📝 更新文档 media_serversplugins
Some checks are pending
Docker Publish / build-and-push (push) Waiting to run
2024-11-27 01:14:29 +08:00
Cp0204
7e612541a4 插件 aria2 添加暂停选项
- 增加暂停选项,可仅添加任务不下载
- 优化任务选项读取逻辑
2024-11-27 01:13:33 +08:00
Cp0204
10030346d0 ♻️ 优化任务插件选项读取逻辑 2024-11-27 01:10:25 +08:00
4 changed files with 29 additions and 20 deletions

View File

@ -4,7 +4,7 @@
## 基本结构
* 插件位于 `media_servers` 目录下.
* 插件位于 `plugins` 目录下.
* 每个插件是一个 `.py` 文件 (例如 `emby.py`, `plex.py`),文件名小写。
* 每个插件文件包含一个与文件名对应的首字母大写命名类(例如 `emby.py` 中的 `Emby` 类)。
@ -58,12 +58,12 @@ except requests.exceptions.RequestException as e:
## 使用自定义插件
放到 `/media_servers` 目录即可识别,如果你使用 docker 运行:
放到 `/plugins` 目录即可识别,如果你使用 docker 运行:
```shell
docker run -d \
# ... 例如添加这行挂载,其它一致
-v ./quark-auto-save/media_servers/plex.py:/app/media_servers/plex.py \
-v ./quark-auto-save/plugins/plex.py:/app/plugins/plex.py \
# ...
```
@ -71,7 +71,7 @@ docker run -d \
## 配置文件
`quark_config.json``media_servers` 中配置插件参数:
`quark_config.json``plugins` 中配置插件参数:
```json
{

View File

@ -58,9 +58,11 @@ class Alist_strm_gen:
self.strm_server = f"{self.url.strip()}/d"
def run(self, task, **kwargs):
if task_config := task.get("addition", {}).get(self.plugin_name, {}):
if not task_config.get("auto_gen"):
return
task_config = task.get("addition", {}).get(
self.plugin_name, self.default_task_config
)
if not task_config.get("auto_gen"):
return
if task.get("savepath") and task.get("savepath").startswith(
self.quark_root_dir
):

View File

@ -10,7 +10,8 @@ class Aria2:
"dir": "/Downloads", # 下载目录需要Aria2有权限访问
}
default_task_config = {
"auto_download": False, # 是否开启自动下载
"auto_download": False, # 是否自动添加下载任务
"pause": False, # 添加任务后为暂停状态,不自动开始(手动下载)
}
is_active = False
rpc_url = None
@ -29,9 +30,11 @@ class Aria2:
self.is_active = True
def run(self, task, **kwargs):
if task_config := task.get("addition", {}).get(self.plugin_name, {}):
if not task_config.get("auto_download"):
return
task_config = task.get("addition", {}).get(
self.plugin_name, self.default_task_config
)
if not task_config.get("auto_download"):
return
if (tree := kwargs.get("tree")) and (account := kwargs.get("account")):
for node in tree.all_nodes_itr():
if not node.data.get("is_dir", True):
@ -52,6 +55,7 @@ class Aria2:
],
"out": os.path.basename(save_path),
"dir": os.path.dirname(save_path),
"pause": task_config.get("pause"),
},
]
self.add_uri(aria2_params)

View File

@ -26,15 +26,18 @@ class Emby:
self.is_active = True
def run(self, task, **kwargs):
if task_config := task.get("addition", {}).get(self.plugin_name, {}):
if media_id := task_config.get("media_id"):
if media_id != "0":
self.refresh(media_id)
elif task_config.get("try_match"):
if match_media_id := self.search(task["taskname"]):
self.refresh(match_media_id)
task["addition"][self.plugin_name]["media_id"] = match_media_id
return task
task_config = task.get("addition", {}).get(
self.plugin_name, self.default_task_config
)
if media_id := task_config.get("media_id"):
if media_id != "0":
self.refresh(media_id)
elif task_config.get("try_match"):
if match_media_id := self.search(task["taskname"]):
self.refresh(match_media_id)
task_config["media_id"] = match_media_id
task.setdefault("addition", {})[self.plugin_name] = task_config
return task
def get_info(self):
url = f"{self.url}/emby/System/Info"