# -*- coding: utf-8 -*- """Download six v3 scenes into 全脚本空场景 with final v3 filenames (backup v1 first).""" import json, ssl, pathlib, urllib.request, shutil BASE = "https://192.168.31.88:8042" CFG = pathlib.Path(r"C:\Users\admin\.zcode\cli\config.json") pat = json.loads(CFG.read_text(encoding="utf-8-sig"))["mcp"]["servers"]["sorb"]["env"]["SORB_PAT"] ctx = ssl._create_unverified_context() OUT = pathlib.Path(r"D:\腾讯\吕布\视频资产\全脚本空场景") BAK = OUT / "v1_backup" BAK.mkdir(exist_ok=True) TASKS = [ (13352, "S02_虎牢关前关道_晨_v3.png", "S02_虎牢关前关道_晨.png"), (13353, "S04_凤仪亭内帐_夜_v3.png", "S04_凤仪亭内帐_夜.png"), (13354, "S05_董卓营帐_夜_v3.png", "S05_董卓营帐_夜.png"), (13355, "S06_濮阳城外战场_黄昏_v3.png", "S06_濮阳城外战场_黄昏.png"), (13356, "S07_辕门营地_日间_v3.png", "S07_辕门营地_日间.png"), (13357, "S09_游戏古战场_高饱和_v3.png", "S09_游戏古战场_高饱和.png"), ] for tid, fname, replace_name in TASKS: req = urllib.request.Request(BASE + "/api/external/v1/tasks/" + str(tid), headers={"Authorization": "Bearer " + pat}) o = json.loads(urllib.request.urlopen(req, context=ctx, timeout=60).read().decode("utf-8")) url = o.get("image_url") if not url: print(tid, "no image_url, status=", o.get("status")) continue full = url if url.startswith("http") else BASE + url req = urllib.request.Request(full, headers={"Authorization": "Bearer " + pat}) data = urllib.request.urlopen(req, context=ctx, timeout=120).read() # backup v1 then write v3 under its own name and also overwrite the canonical name old = OUT / replace_name if old.exists(): shutil.copy2(old, BAK / replace_name) (OUT / fname).write_bytes(data) (OUT / replace_name).write_bytes(data) print(tid, "->", fname, len(data), "| canonical replaced:", replace_name)