# -*- coding: utf-8 -*- """把所有"名字"里的中文去掉,统一成 ykxmz / ASCII。 用户要求:"名字不要带中文,就 ykxmz" 要改的"名字"(不含文档正文,正文还是中文,那是内容不是名字): 1. 版本信息里的 FileDescription: "ykxmz 被控端" -> "ykxmz" 2. 交付包顶层目录: LanRemote-跨网络版-1.4.0 -> ykxmz-1.4.0 3. 压缩包文件名: LanRemote-跨网络版-1.4.0.zip -> ykxmz-1.4.0.zip 4. 三个子目录: 1-被控端(电脑) -> 1-agent 2-服务器端(随身WiFi) -> 2-server 3-控制端(手表) -> 3-watch 5. 说明文件名: 先看这个.txt -> README.txt 使用说明.txt -> README-<部分>.txt 文档**正文**保持中文 —— 用户是中文用户,正文翻译成英文反而没法看。 这里只动"名字"。 """ from __future__ import annotations import sys from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") VERSION = ROOT / "windows" / "version_info.txt" PKG = ROOT / "_build" / "package_remote.py" DIR_NAMES = ("1-agent", "2-server", "3-watch") # ---------- 1. 版本信息 ---------- VER_OLD = 'StringStruct("FileDescription", "ykxmz 被控端")' VER_NEW = 'StringStruct("FileDescription", "ykxmz")' # ---------- 2. 打包脚本 ---------- PKG_RULES = [ # 顶层目录名和压缩包名 ('NAME = f"LanRemote-跨网络版-{VERSION}"', 'NAME = f"ykxmz-{VERSION}"'), ('f"LanRemote-跨网络版-{VERSION}.zip"', 'f"ykxmz-{VERSION}.zip"'), ('dist / f"{NAME}.zip"', 'dist / f"{NAME}.zip"'), # 子目录名 ('agent_dir = build / "1-被控端(电脑)"', 'agent_dir = build / "1-agent"'), ('relay_dir = build / "2-服务器端(随身WiFi)"', 'relay_dir = build / "2-server"'), ('watch_dir = build / "3-控制端(手表)"', 'watch_dir = build / "3-watch"'), # 说明文件名(正文不动) ('write_readme(agent_dir / "使用说明.txt", AGENT_README)', 'write_readme(agent_dir / "README-agent.txt", AGENT_README)'), ('write_readme(relay_dir / "使用说明.txt", RELAY_README)', 'write_readme(relay_dir / "README-server.txt", RELAY_README)'), ('write_readme(watch_dir / "使用说明.txt"', 'write_readme(watch_dir / "README-watch.txt"'), ('write_readme(build / "先看这个.txt", TOP_README)', 'write_readme(build / "README.txt", TOP_README)'), # 校验里的文件名 ('agent_dir / "使用说明.txt"', 'agent_dir / "README-agent.txt"'), ('relay_dir / "使用说明.txt"', 'relay_dir / "README-server.txt"'), ('watch_dir / "使用说明.txt"', 'watch_dir / "README-watch.txt"'), ('build / "先看这个.txt"', 'build / "README.txt"'), # 顶层说明里提到的路径名 ('├── 先看这个.txt ← 三步上手说明', '├── README.txt ← 三步上手说明'), ('├── 1-被控端(电脑)/ 998 个文件', '├── 1-agent/ 998 个文件'), ('├── 2-服务器端(随身WiFi)/ 4 个文件', '├── 2-server/ 4 个文件'), ('└── 3-控制端(手表)', '└── 3-watch'), ] def main() -> int: ok = True # ---- 版本信息 ---- text = VERSION.read_text(encoding="utf-8") if VER_OLD in text: text = text.replace(VER_OLD, VER_NEW, 1) VERSION.write_text(text, encoding="utf-8", newline="\n") print(" version_info.txt: FileDescription -> ykxmz(去掉中文)") elif VER_NEW in text: print(" version_info.txt: 已经是纯 ykxmz") else: print(" [警告] version_info.txt 里找不到 FileDescription") # ---- 打包脚本 ---- text = PKG.read_text(encoding="utf-8") changed = 0 for old, new in PKG_RULES: if old in text and old != new: text = text.replace(old, new) changed += 1 if changed: PKG.write_text(text, encoding="utf-8", newline="\n") print(f" package_remote.py: 改了 {changed} 类名字") else: print(" package_remote.py: 没变化(可能已改过)") # ---- 语法 ---- import ast try: ast.parse(PKG.read_text(encoding="utf-8")) print(" package_remote.py 语法 OK") except SyntaxError as exc: print(f" package_remote.py 语法错误: {exc}") ok = False # ---- 复核:还有没有中文名字 ---- print() print(" 复核 —— 打包脚本里还剩哪些含中文的字符串(应以文档正文为主):") text = PKG.read_text(encoding="utf-8") import re name_like = [] for match in re.finditer(r'"([^"\n]*[\u4e00-\u9fff][^"\n]*)"', text): value = match.group(1) # 只关心"看起来像文件名/目录名"的 looks_like_name = any( token in value for token in (".txt", ".zip", "/", "\\")) if looks_like_name and len(value) < 40: name_like.append(value) if name_like: for item in sorted(set(name_like)): print(f" 还有: {item}") else: print(" 没有(文件名都已经是 ASCII)") return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())