# -*- coding: utf-8 -*- r'''清掉管理页深色残留(修正版:CSS 在 f-string 里,大括号是双写的)。 上一版只改成功了 4 处,因为我的匹配串用了单大括号 {{ }}, 而 relay.py 里那段 CSS 在 f-string 里,实际是 {{{{ }}}}。 ''' from __future__ import annotations import ast import re import sys from pathlib import Path RELAY = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\relay" r"\relay.py") # 用「深色值 -> 浅色值」直接替换,不管外层大括号怎么写的。 # 这样最稳,不会再被 f-string 的花括号坑到。 COLOR_MAP = [ ("#262c36", "#f3f4f6"), # 按钮悬停底色 ("#484f58", "#d0d7de"), # 边框/圆点 ("#1b222c", "#f6f8fa"), # 表格行悬停 ("#1c2733", "#eff6ff"), # 选中行 ("#213042", "#dbeafe"), # 选中行悬停 ("#2d1214", "#fff5f5"), # 删除按钮底 ("#6e2b2b", "#ffc9c9"), # 删除按钮边 ("#ff7b72", "#c92a2a"), # 删除按钮字 ("#4a1a1e", "#ffe3e3"), # 删除悬停底 ("#ffa198", "#a61b1b"), # 删除悬停字 ("#4a95f8", "#1d4ed8"), # 主按钮悬停 ("#0b1220", "#f6f8fa"), # 地址框底 ("#1f6feb44", "#d0d7de"), # 地址框边 ("#0008", "#0002"), # 提示条阴影 ] # 深色主题才用的值,替换后不该再有 DARK_LEFTOVERS = ["#0b1220", "#262c36", "#1b222c", "#1c2733", "#213042", "#2d1214", "#4a1a1e", "#484f58", "#0d1117"] def main() -> int: text = RELAY.read_text(encoding="utf-8") counts = {} for dark, light in COLOR_MAP: n = text.count(dark) if n: text = text.replace(dark, light) counts[dark] = (light, n) if counts: RELAY.write_text(text, encoding="utf-8", newline="\n") print(" 换了这些颜色:") for dark, (light, n) in counts.items(): print(" %s -> %s (%d 处)" % (dark, light, n)) else: print(" 没有要改的") try: ast.parse(text) print(" 语法 OK") except SyntaxError as exc: print(" [失败] 语法错误: 行 %s: %s" % (exc.lineno, exc.msg)) return 1 print() print(" 残留深色值:") left = [c for c in DARK_LEFTOVERS if c in text] if left: for c in left: print(" %s:" % c) for m in re.finditer(r".*" + re.escape(c) + r".*", text): print(" %s" % m.group(0).strip()[:76]) else: print(" 无 ✓") return 0 if __name__ == "__main__": sys.exit(main())