mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 13:40:45 +00:00
被控端 - 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%) - 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败) - 每分钟回头找局域网,自动切回快 400 倍的路径 - 画面心跳帧:静止时省流量,客户端仍知道流是活的 - 锁屏时给出可操作的提示 手表端 - 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException - 连接错误翻译成人话(证书/时间/解析/超时分别提示) - 经中转连上后用服务器报的地址刷新已配对记录 - 新增局域网连接页面、服务器延迟检测 服务器端 - 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502) - 网络调优脚本 net-tune.sh(开机自动应用) - 管理页:批量删除、网络体检、下载区 - 隧道改 HTTP/2 + 双连接 文档 - 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
136 lines
5.2 KiB
Python
136 lines
5.2 KiB
Python
# -*- 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())
|