Files
xmz7891 b62ac865ea ykxmz 1.5.0:修复手表端 TLS 证书校验 + MTU 修复网络稳定性
被控端
- 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%)
- 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败)
- 每分钟回头找局域网,自动切回快 400 倍的路径
- 画面心跳帧:静止时省流量,客户端仍知道流是活的
- 锁屏时给出可操作的提示

手表端
- 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException
- 连接错误翻译成人话(证书/时间/解析/超时分别提示)
- 经中转连上后用服务器报的地址刷新已配对记录
- 新增局域网连接页面、服务器延迟检测

服务器端
- 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502)
- 网络调优脚本 net-tune.sh(开机自动应用)
- 管理页:批量删除、网络体检、下载区
- 隧道改 HTTP/2 + 双连接

文档
- 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
2026-10-06 19:01:05 +08:00

136 lines
5.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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())