mirror of
https://github.com/Cp0204/quark-auto-save.git
synced 2026-01-11 22:50:45 +08:00
Compare commits
3 Commits
9d599b5e64
...
92df9239af
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92df9239af | ||
|
|
7e612541a4 | ||
|
|
10030346d0 |
@ -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
|
||||
{
|
||||
|
||||
@ -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
|
||||
):
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user