بنقرة واحدة
quark-auto-save
Manage quark-auto-save tasks via CLI. (QAS, 夸克自动转存, 夸克转存, 夸克订阅, 管理任务, 运行任务, 修复失效链接, pan.quark.cn)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manage quark-auto-save tasks via CLI. (QAS, 夸克自动转存, 夸克转存, 夸克订阅, 管理任务, 运行任务, 修复失效链接, pan.quark.cn)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | quark-auto-save |
| description | Manage quark-auto-save tasks via CLI. (QAS, 夸克自动转存, 夸克转存, 夸克订阅, 管理任务, 运行任务, 修复失效链接, pan.quark.cn) |
| metadata | {"openclaw":{"emoji":"💾","homepage":"https://github.com/Cp0204/quark-auto-save","requires":{"env":["QAS_BASE_URL","QAS_TOKEN"],"anyBins":["curl","python3"]},"primaryEnv":"QAS_TOKEN"}} |
Manage quark-auto-save tasks via CLI.
QAS, 夸克自动转存, 夸克转存, 夸克订阅, 管理任务, 运行任务, 修复失效链接
When user send message like https://pan.quark.cn/s/***, get detail, add a QAS task.
Env:
QAS_BASE_URL - User provided, e.g., http://192.168.1.x:5005QAS_TOKEN - User providedSet in the skill's env config (e.g.,
openclaw.json→skills.entries.quark-auto-save.env.QAS_BASE_URL). Restart gateway after editing.
After the user sets the token, the following analysis must be performed and recorded in TOOLS.md:
Get Current Configuration:
python3 {baseDir}/scripts/qas_client.py get-config
Analyze Saving Habits:
savepath directory patterns from existing tasks (e.g., /video/tv/, /video/anime/, /video/movie/)pattern + replace: deduce the final renamed filename format by applying the regex to a sample source file (e.g., 01.mp4 → Black Mirror.S01E01.mp4). Record the result pattern, not the raw regex.magic_regex key the user prefers (e.g. $TV_MAGIC)Record to TOOLS.md: The following is just an example, not specific values, everything is analyzed based on user configuration.
### quark-auto-save habits
#### TV Series
- Directory: `/video/tv/{name}`
- naming preferences: `$TV_MAGIC `(e.g., {TASKNAME}.{SXX}E{E}.{EXT})
#### Anime
- Directory: `/video/anime/{name}`
- naming preferences: `Rick and Morty.S01E01.mp4`
#### Movie
- Directory: `/video/movie/{name} {year}`
- naming preferences: `{TASKNAME}.mp4`
-
...
Use {baseDir}/scripts/qas_client.py for all operations:
python3 {baseDir}/scripts/qas_client.py get-config # Get all config & tasks
python3 {baseDir}/scripts/qas_client.py search "query" [-d] # Search resources
python3 {baseDir}/scripts/qas_client.py get-share "<shareurl>" [-a] # Get share detail (-a for all files)
python3 {baseDir}/scripts/qas_client.py check-path "/path" # Check savepath
python3 {baseDir}/scripts/qas_client.py delete-file "/path/to/file" # Delete cloud file
python3 {baseDir}/scripts/qas_client.py rename-file "/path/to/file" "new_name" # Rename cloud file
python3 {baseDir}/scripts/qas_client.py add-task '{"taskname": "Name", ...}' # Add task
python3 {baseDir}/scripts/qas_client.py run-task [taskname|json] # Run task(s)
python3 {baseDir}/scripts/qas_client.py update-task "TaskName" '{"savepath": "/new"}' # Update task
python3 {baseDir}/scripts/qas_client.py delete-task "TaskName" # Delete task
python3 {baseDir}/scripts/qas_client.py update-config '{"key": "value"}' # Update config
{
"taskname": "MediaName",
"shareurl": "https://pan.quark.cn/s/xxx#/list/share/fid",
"savepath": "/video/tv/MediaName",
"pattern": "$TV_MAGIC",
"replace": "",
"update_subdir": "",
"ignore_extension": false,
"runweek": [1,2,3,4,5,6,7]
}
Required Fields: taskname, shareurl, savepath
Optional Fields: pattern, replace, update_subdir, ignore_extension, runweek, addition
add-taskauto-detects zip/rar/7z files and enablesauto_unarchiveplugin automatically. No manualadditionconfig needed for this.
shareurl Formathttps://pan.quark.cn/s/{abc123}https://pan.quark.cn/s/{abc123}#/list/share/{fid}Archive files (zip, rar, 7z) are also supported — auto-unarchive is enabled automatically by
add-taskrun-task.
Get subdir info:
python3 {baseDir}/scripts/qas_client.py get-share "<shareurl>"
Add task example:
python3 {baseDir}/scripts/qas_client.py add-task '{"taskname": "Black Mirror", "shareurl": "https://pan.quark.cn/s/xxx", "savepath": "/video/tv/Black Mirror", "pattern": "$TV_MAGIC"}'
pattern & replaceWIKI:
| Pattern | Replace | Result |
|---|---|---|
.* | Save all files | |
\.(mp4|mkv)$ | Save video files only | |
^(\d+)\.mp4 | S02E\1.mp4 | 01.mp4 → S02E01.mp4 |
$TV_MAGIC | Use custom magic regex |
replace Magic Variables| Variable | Description |
|---|---|
{TASKNAME} | Task name |
{II} | Index number (01, 02...) |
{EXT} | File extension |
{SXX} | Season (S01, S02...) |
{E} | Episode number |
{DATE} | Date (YYYYMMDD) |
python3 {baseDir}/scripts/qas_client.py search "MediaName" -dpython3 {baseDir}/scripts/qas_client.py get-share "<shareurl>"
shareurl is valid (not banned)pattern & replace: Ensure the final renamed filename matches the naming preferences in TOOLS.md.
"pattern": ".*", replace: "" (save as-is)pattern to capture groups, replace with magic variables. E.g., source 01.mp4, TOOLS.md says Black Mirror.S01E01.mp4 → "pattern": "^(\\d+)\\.mp4$", "replace": "{TASKNAME}.S01E\\1.{EXT}"X集全, 全X集, 完结, 全集, single movie) → run-taskadd-task# One-time (completed)
python3 {baseDir}/scripts/qas_client.py run-task '{"taskname": "MediaName", "shareurl": "...", "savepath": "...", "pattern": "...", "replace": "..."}'
# Subscription (ongoing)
python3 {baseDir}/scripts/qas_client.py add-task '{"taskname": "MediaName", "shareurl": "...", "savepath": "...", "pattern": "...", "replace": "..."}'
savepath and (pattern+replace) MUST follow the user's existing habits recorded in TOOLS.mdrun-task "TaskName" immediately to execute the first save.python3 {baseDir}/scripts/qas_client.py get-configshareurl_ban key in tasklistpython3 {baseDir}/scripts/qas_client.py check-path "<task_savepath>" — record the naming format and the latest episode number (e.g., E24) of already-saved filespython3 {baseDir}/scripts/qas_client.py search "<taskname>" -d to get candidate shareurlspython3 {baseDir}/scripts/qas_client.py get-share "<candidate_shareurl>" -a — check file list.mkv → pick .mkv source, existing .mp4 → pick .mp4 source)pattern/replace so the final renamed result matches the existing naming. If source already matches, keep pattern/replace unchanged.python3 {baseDir}/scripts/qas_client.py update-task "TaskName" '{"shareurl": "<verified_url>", "shareurl_ban": "", "pattern": "...", "replace": "..."}' — include pattern/replace if they were adjustedpython3 {baseDir}/scripts/qas_client.py run-task "TaskName" — execute immediately after fixing the link.python3 {baseDir}/scripts/qas_client.py delete-task "TaskName"
# Partial update (only specified fields are changed)
python3 {baseDir}/scripts/qas_client.py update-task "TaskName" '{"savepath": "/new/path"}'
python3 {baseDir}/scripts/qas_client.py update-task "TaskName" '{"pattern": "$TV_MAGIC", "runweek": [1,3,5]}'
# Update global config (allowed keys: cookie, crontab, push_config, tasklist, magic_regex, plugins, source)
python3 {baseDir}/scripts/qas_client.py update-config '{"crontab": "0 9 * * *"}'
python3 {baseDir}/scripts/qas_client.py run-task # All tasks
python3 {baseDir}/scripts/qas_client.py run-task "TaskName" # Specific task
python3 {baseDir}/scripts/qas_client.py run-task '{"taskname": "Test", ...}' # Direct task
All commands output text. First word indicates status:
OK on first line, followed by log lines