新增功能:
- 设置页新增「跳过检查更新」开关(settings.json 的 skip_update_check,默认关):开启后跳过 PAC 最新版拉取与程序版本检查且不输出相关日志;节点配置更新与客户端认证不受影响
This commit is contained in:
+29
-1
@@ -601,6 +601,18 @@ def _set_update_via_proxy(enabled):
|
|||||||
_settings_save(data)
|
_settings_save(data)
|
||||||
log(f"更新方式已设为: {'走代理隧道' if enabled else '直连仓库'}")
|
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):
|
def _ver_tuple(v):
|
||||||
"""版本号转数字元组:'v0.1.0' -> (0, 1, 0),无法解析的段按 0 处理。"""
|
"""版本号转数字元组:'v0.1.0' -> (0, 1, 0),无法解析的段按 0 处理。"""
|
||||||
parts = []
|
parts = []
|
||||||
@@ -821,6 +833,8 @@ def _user_init_remote(base_url=None):
|
|||||||
直接拉取两个数据文件(内含 version/date),按版本比对后更新;失败用本地副本。
|
直接拉取两个数据文件(内含 version/date),按版本比对后更新;失败用本地副本。
|
||||||
节点配置的拉取走登录框(nodes_url 需 nginx 认证,见 LoginDialog)。
|
节点配置的拉取走登录框(nodes_url 需 nginx 认证,见 LoginDialog)。
|
||||||
"""
|
"""
|
||||||
|
if _skip_update_check():
|
||||||
|
return # 设置跳过:不拉取也不打日志
|
||||||
base = (base_url or str(_config_val("pac_base_url", "") or "")).strip().rstrip("/")
|
base = (base_url or str(_config_val("pac_base_url", "") or "")).strip().rstrip("/")
|
||||||
if not base:
|
if not base:
|
||||||
log("未配置 PAC 更新源(config.json 的 pac_base_url),使用本地数据")
|
log("未配置 PAC 更新源(config.json 的 pac_base_url),使用本地数据")
|
||||||
@@ -1401,7 +1415,7 @@ class SettingsDialog(QDialog):
|
|||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.setWindowTitle("设置")
|
self.setWindowTitle("设置")
|
||||||
self.setWindowIcon(load_icon())
|
self.setWindowIcon(load_icon())
|
||||||
self.setFixedSize(300, 260)
|
self.setFixedSize(300, 290)
|
||||||
self.setStyleSheet(f"""
|
self.setStyleSheet(f"""
|
||||||
QDialog {{ background-color: {C_BG}; }}
|
QDialog {{ background-color: {C_BG}; }}
|
||||||
QLabel {{ color: {C_TEXT}; font-family: "Microsoft YaHei", "Segoe UI", sans-serif; font-size: 12px; }}
|
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)
|
upd_row.addWidget(self.cb_update_proxy)
|
||||||
layout.addLayout(upd_row)
|
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()
|
layout.addStretch()
|
||||||
|
|
||||||
# 底部:保存更改 + 退出登录 并排
|
# 底部:保存更改 + 退出登录 并排
|
||||||
@@ -1498,6 +1523,7 @@ class SettingsDialog(QDialog):
|
|||||||
return
|
return
|
||||||
_set_local_port(port)
|
_set_local_port(port)
|
||||||
_set_update_via_proxy(bool(self.cb_update_proxy.isChecked()))
|
_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.ed_port.setText(str(port))
|
||||||
self.lb_hint.setText(f"已保存: {port},下次开启代理生效")
|
self.lb_hint.setText(f"已保存: {port},下次开启代理生效")
|
||||||
self.lb_hint.setStyleSheet(f"color: {C_GREEN}; font-size: 11px;")
|
self.lb_hint.setStyleSheet(f"color: {C_GREEN}; font-size: 11px;")
|
||||||
@@ -2079,6 +2105,8 @@ class MainWindow(QWidget):
|
|||||||
self._latest_version = ""
|
self._latest_version = ""
|
||||||
self._download_url = ""
|
self._download_url = ""
|
||||||
try:
|
try:
|
||||||
|
if _skip_update_check():
|
||||||
|
return # 设置跳过:不检查也不打日志
|
||||||
import json, urllib.request
|
import json, urllib.request
|
||||||
# 基于 Gitea 仓库 releases API 检查更新;config.json 无 update_url 时用默认地址
|
# 基于 Gitea 仓库 releases API 检查更新;config.json 无 update_url 时用默认地址
|
||||||
url = str(_config_val("update_url", "") or "").strip()
|
url = str(_config_val("update_url", "") or "").strip()
|
||||||
|
|||||||
Reference in New Issue
Block a user