refactor(canvas): 预演台 - 重构工作台与场景交互链路
This commit is contained in:
72
tools/refactor_director_to_previs.py
Normal file
72
tools/refactor_director_to_previs.py
Normal file
@@ -0,0 +1,72 @@
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path.cwd()
|
||||
TEXT_EXTENSIONS = {".ts", ".tsx", ".go", ".mjs", ".json", ".css", ".md", ".mdx", ".yaml", ".yml", ".html", ".glsl", ".txt"}
|
||||
SCAN_ROOTS = [
|
||||
ROOT / "web" / "src",
|
||||
ROOT / "web" / "test",
|
||||
ROOT / "web" / "scripts",
|
||||
ROOT / "backend" / "internal",
|
||||
ROOT / "web" / "package.json",
|
||||
ROOT / "README.md",
|
||||
ROOT / "docs",
|
||||
]
|
||||
|
||||
|
||||
def iter_files():
|
||||
for root in SCAN_ROOTS:
|
||||
if root.is_file():
|
||||
yield root
|
||||
continue
|
||||
if not root.exists():
|
||||
continue
|
||||
for path in root.rglob("*"):
|
||||
if path.is_file() and path.suffix in TEXT_EXTENSIONS:
|
||||
yield path
|
||||
|
||||
|
||||
def rewrite_text(text: str) -> str:
|
||||
replacements = [
|
||||
("director-desk", "previs"),
|
||||
("Director", "Previs"),
|
||||
("DIRECTOR", "PREVIS"),
|
||||
("director", "previs"),
|
||||
("导演台", "预演台"),
|
||||
]
|
||||
for old, new in replacements:
|
||||
text = text.replace(old, new)
|
||||
return text
|
||||
|
||||
|
||||
files = list(iter_files())
|
||||
for path in files:
|
||||
try:
|
||||
before = path.read_text(encoding="utf-8")
|
||||
except UnicodeDecodeError:
|
||||
continue
|
||||
after = rewrite_text(before)
|
||||
if after != before:
|
||||
path.write_text(after, encoding="utf-8")
|
||||
|
||||
rename_targets = []
|
||||
for root in [ROOT / "web" / "src", ROOT / "web" / "scripts", ROOT / "backend" / "internal", ROOT / "web" / "public"]:
|
||||
if not root.exists():
|
||||
continue
|
||||
for path in root.rglob("*"):
|
||||
if path.is_file() and "director" in path.name.lower():
|
||||
rename_targets.append(path)
|
||||
|
||||
for path in sorted(rename_targets, key=lambda item: len(item.parts), reverse=True):
|
||||
new_name = path.name.replace("director", "previs").replace("Director", "Previs").replace("DIRECTOR", "PREVIS")
|
||||
target = path.with_name(new_name)
|
||||
if target != path:
|
||||
target.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.rename(target)
|
||||
|
||||
for path in [ROOT / "web" / "src" / "components" / "canvas" / "director", ROOT / "web" / "src" / "lib" / "canvas" / "director"]:
|
||||
if path.exists():
|
||||
target = path.with_name("previs")
|
||||
if not target.exists():
|
||||
path.rename(target)
|
||||
|
||||
print(f"rewritten={len(files)} renamed={len(rename_targets)}")
|
||||
Reference in New Issue
Block a user