# -*- coding: utf-8 -*- r'''给官网首页加 60 秒缓存。 (download 那处已经用 edit 工具改好了:no-store -> public,max-age=604800,immutable。) 首页原来走 _send 的默认 Cache-Control: no-store, 每次刷新都穿隧道回 4G 源站。加 60 秒缓存: * 挡住"刷新就重新回源"的浪费 * 又不会让页面上的当前版本号 / 下载按钮过期太久 ''' from __future__ import annotations import sys from pathlib import Path SRC = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\relay\relay.py") def main() -> int: text = SRC.read_text(encoding="utf-8") marker = 'self._send(200, _site_page().encode("utf-8"),\n' idx = text.find(marker) if idx < 0: print(" ✗ 找不到首页的 _send") return 1 # 打印现场,确认空白 end = text.find("\n", text.find("return", idx)) print(" 现场:") for line in text[idx:end + 1].splitlines(): print(" %r" % line) old = ('self._send(200, _site_page().encode("utf-8"),\n' ' "text/html; charset=utf-8")') new = ('# 缓存 60 秒:挡住"刷新就重新回源"的浪费,\n' ' # 又不会让页面上的当前版本号和下载按钮过期太久。\n' ' self._send(200, _site_page().encode("utf-8"),\n' ' "text/html; charset=utf-8",\n' ' {"Cache-Control": "public, max-age=60"})') if old not in text: print() print(" ✗ 精确串还是没匹配上(看上面的 repr 对齐空白)") return 1 text = text.replace(old, new, 1) SRC.write_text(text, encoding="utf-8", newline="\n") print() print(" ✓ 已加首页缓存") # 复核 for i, line in enumerate( SRC.read_text(encoding="utf-8").splitlines(), 1): if "max-age=60" in line: print(" 第 %d 行: %s" % (i, line.strip())) return 0 if __name__ == "__main__": sys.exit(main())