From 2652213a105f06b2c13bb22e7915e51257b317ef Mon Sep 17 00:00:00 2001 From: RoyirinRosmontis Date: Mon, 24 Aug 2026 12:16:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD=EF=BC=9A?= =?UTF-8?q?=20-=20=E8=AE=BE=E7=BD=AE=E9=A1=B5=E6=96=B0=E5=A2=9E=E3=80=8C?= =?UTF-8?q?=E8=B7=B3=E8=BF=87=E6=A3=80=E6=9F=A5=E6=9B=B4=E6=96=B0=E3=80=8D?= =?UTF-8?q?=E5=BC=80=E5=85=B3=EF=BC=88settings.json=20=E7=9A=84=20skip=5Fu?= =?UTF-8?q?pdate=5Fcheck=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=85=B3=EF=BC=89?= =?UTF-8?q?=EF=BC=9A=E5=BC=80=E5=90=AF=E5=90=8E=E8=B7=B3=E8=BF=87=20PAC=20?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=88=E6=8B=89=E5=8F=96=E4=B8=8E=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=89=88=E6=9C=AC=E6=A3=80=E6=9F=A5=E4=B8=94=E4=B8=8D?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=9B=B8=E5=85=B3=E6=97=A5=E5=BF=97=EF=BC=9B?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=85=8D=E7=BD=AE=E6=9B=B4=E6=96=B0=E4=B8=8E?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=AE=A4=E8=AF=81=E4=B8=8D=E5=8F=97?= =?UTF-8?q?=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lite/proxy_lite.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/lite/proxy_lite.py b/lite/proxy_lite.py index 97f371e..8c2951f 100644 --- a/lite/proxy_lite.py +++ b/lite/proxy_lite.py @@ -601,6 +601,18 @@ def _set_update_via_proxy(enabled): _settings_save(data) log(f"更新方式已设为: {'走代理隧道' if enabled else '直连仓库'}") +def _skip_update_check(): + """是否跳过 PAC 数据与程序版本检查(设置项,默认关)。 + 不影响节点配置更新与客户端认证。""" + return bool(_settings_load().get("skip_update_check", False)) + +def _set_skip_update_check(enabled): + """写回「跳过检查更新」设置(立即生效)。""" + data = _settings_load() + data["skip_update_check"] = bool(enabled) + _settings_save(data) + log(f"检查更新已{'跳过' if enabled else '恢复'}(PAC 与程序版本;节点更新不受影响)") + def _ver_tuple(v): """版本号转数字元组:'v0.1.0' -> (0, 1, 0),无法解析的段按 0 处理。""" parts = [] @@ -821,6 +833,8 @@ def _user_init_remote(base_url=None): 直接拉取两个数据文件(内含 version/date),按版本比对后更新;失败用本地副本。 节点配置的拉取走登录框(nodes_url 需 nginx 认证,见 LoginDialog)。 """ + if _skip_update_check(): + return # 设置跳过:不拉取也不打日志 base = (base_url or str(_config_val("pac_base_url", "") or "")).strip().rstrip("/") if not base: log("未配置 PAC 更新源(config.json 的 pac_base_url),使用本地数据") @@ -1401,7 +1415,7 @@ class SettingsDialog(QDialog): super().__init__(parent) self.setWindowTitle("设置") self.setWindowIcon(load_icon()) - self.setFixedSize(300, 260) + self.setFixedSize(300, 290) self.setStyleSheet(f""" QDialog {{ background-color: {C_BG}; }} QLabel {{ color: {C_TEXT}; font-family: "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; }} @@ -1456,6 +1470,17 @@ class SettingsDialog(QDialog): upd_row.addWidget(self.cb_update_proxy) layout.addLayout(upd_row) + # 跳过检查更新:左文字 + 右开关(默认关;不影响节点更新与认证) + skip_row = QHBoxLayout() + skip_lab = QLabel("跳过检查更新") + skip_lab.setStyleSheet(f"color: {C_SUBTEXT}; font-size: 12px;") + skip_row.addWidget(skip_lab) + skip_row.addStretch() + self.cb_skip_update = ToggleSwitch(checked=_skip_update_check()) + self.cb_skip_update.setToolTip("跳过 PAC 数据与程序版本检查(节点更新与登录不受影响),被跳过的检查不输出日志") + skip_row.addWidget(self.cb_skip_update) + layout.addLayout(skip_row) + layout.addStretch() # 底部:保存更改 + 退出登录 并排 @@ -1498,6 +1523,7 @@ class SettingsDialog(QDialog): return _set_local_port(port) _set_update_via_proxy(bool(self.cb_update_proxy.isChecked())) + _set_skip_update_check(bool(self.cb_skip_update.isChecked())) self.ed_port.setText(str(port)) self.lb_hint.setText(f"已保存: {port},下次开启代理生效") self.lb_hint.setStyleSheet(f"color: {C_GREEN}; font-size: 11px;") @@ -2079,6 +2105,8 @@ class MainWindow(QWidget): self._latest_version = "" self._download_url = "" try: + if _skip_update_check(): + return # 设置跳过:不检查也不打日志 import json, urllib.request # 基于 Gitea 仓库 releases API 检查更新;config.json 无 update_url 时用默认地址 url = str(_config_val("update_url", "") or "").strip()