From 6a4b7e58d3c3645bc0401cea429ae64b0e534879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B5=E5=AE=9D=E4=BB=99=E5=B0=8A?= Date: Thu, 5 Nov 2026 16:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=99=A8=EF=BC=9A=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E6=9B=B4=E6=96=B0=E6=8B=86=E5=88=86=E4=B8=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D/=E5=8E=86=E5=8F=B2=E5=8F=8C=E5=AD=90=E9=A1=B5?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=85=B3=E4=BA=8E=E6=88=91=E4=BB=AC?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 游戏更新页改为「当前更新 / 历史更新」两个标签页,历史页显示条数 - 更新日志合并仓库 Release 与本地 更新日志.txt,按日期去重、仓库优先;断网时仅用本地记录 - 主导航新增「关于我们」,内容与游戏内控制台关于页一致(四行文案 + 赞助/公众号二维码) - 新增 /qr/ 白名单路由读取启动器目录 qr\ 下图片,防止目录穿越 - 二维码支持点击放大(灯箱),图片缺失时显示占位而不是破图 - 打包 spec 补入 qr 三张图,静态响应统一 Cache-Control: no-store --- launcher/DNF90启动器.spec | 3 +- launcher/index.html | 53 +++++++++++++++- launcher/qr/alipay.png | Bin 0 -> 24225 bytes launcher/qr/gzh.jpg | Bin 0 -> 41060 bytes launcher/qr/wechat.png | Bin 0 -> 31570 bytes launcher/server.py | 128 ++++++++++++++++++++++++++++++++++++-- launcher/shell.css | 51 +++++++++++++++ launcher/shell.js | 112 ++++++++++++++++++++++++--------- 8 files changed, 311 insertions(+), 36 deletions(-) create mode 100644 launcher/qr/alipay.png create mode 100644 launcher/qr/gzh.jpg create mode 100644 launcher/qr/wechat.png diff --git a/launcher/DNF90启动器.spec b/launcher/DNF90启动器.spec index 00cd46f..ad40fe3 100644 --- a/launcher/DNF90启动器.spec +++ b/launcher/DNF90启动器.spec @@ -1,7 +1,8 @@ # -*- mode: python ; coding: utf-8 -*- from PyInstaller.utils.hooks import collect_all -datas = [('index.html', '.'), ('style.css', '.'), ('shell.css', '.'), ('app.js', '.'), ('shell.js', '.'), ('sponsor.png', '.'), ('db.py', '.'), ('native.py', '.'), ('launcher.ico', '.')] +datas = [('index.html', '.'), ('style.css', '.'), ('shell.css', '.'), ('app.js', '.'), ('shell.js', '.'), ('sponsor.png', '.'), ('db.py', '.'), ('native.py', '.'), ('launcher.ico', '.'), + ('qr/alipay.png', 'qr'), ('qr/wechat.png', 'qr'), ('qr/gzh.jpg', 'qr')] binaries = [] hiddenimports = ['clr_loader', 'pythonnet'] tmp_ret = collect_all('webview') diff --git a/launcher/index.html b/launcher/index.html index 9c74bce..79d226e 100644 --- a/launcher/index.html +++ b/launcher/index.html @@ -30,6 +30,7 @@ +
@@ -127,7 +128,55 @@
-

游戏更新

从自托管仓库(Lingbao/90CNServer)的发布记录自动获取。

+
+

游戏更新

优先读取仓库(Lingbao/90CNServer)的发布记录,并用本地「更新日志.txt」补齐仓库还没发布的版本;断网时只显示本地记录。

+
+ + +
+
正在获取更新日志…
+ +
+
+ +
+
+
+

地下城与勇士 · 九零轮回单机

+

汉服电脑宅 · 灵宝小竹模拟器

+

由灵宝仙尊联合淡竹茹开发,由汉服电脑宅团队开发维护

+

本模拟器资源禁止倒卖,请到官方微信公众号或社群下载

+
+ +
+
+
赞助我们
+
+
+ 支付宝收款码 +
支付宝
+
+
+ 微信收款码 +
微信
+
+
+
金额随意,感谢支持;扫码后备注游戏名,方便记录。
+
+
+
团队公众号
+
+
+ 团队公众号二维码 +
扫码关注
+
+
+
更新公告 · 开服时间 · 玩法说明
+
+
+ +

点击任意二维码可放大查看;把同名图片放进启动器目录下的 qr 文件夹即可替换。

+
@@ -165,6 +214,8 @@
+ + diff --git a/launcher/qr/alipay.png b/launcher/qr/alipay.png new file mode 100644 index 0000000000000000000000000000000000000000..9da38f795fe4ec7c1dbebb004e175d1f4f09743c GIT binary patch literal 24225 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 k{zC*r`Ts3in3p0cm47ng9R* literal 0 HcmV?d00001 diff --git a/launcher/qr/gzh.jpg b/launcher/qr/gzh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..47a7bf86fece932fb3645fd14adfd6f6f29a7f3b GIT binary patch literal 41060 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 H`J?MkUUn`= literal 0 HcmV?d00001 diff --git a/launcher/qr/wechat.png b/launcher/qr/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..ba4b11b1d4d862c02901fb89d8732c86a70747ba GIT binary patch literal 31570 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 z�~IS;F~C=>lvw#t%BNJ(k_&_o97`~KqT(rlC9QmD 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 document.getElementById(id); - const pages = ['start','changelog','gm','loadout','gamesettings']; + const pages = ['start','changelog','gm','loadout','gamesettings','about']; let shellGmInit = false; let loConfig = null, loPage = 0, loScheme = -1; let loCooldownUntil = 0, loCooldownCharacter = '', loCooldownTimer = null; let hotkeyCapture = false; - const crumb = {start:'开始 / 本地服务端',changelog:'游戏更新',gm:'GM工具',loadout:'工具 / 一键换装',gamesettings:'工具 / 游戏设置'}; + const crumb = {start:'开始 / 本地服务端',changelog:'游戏更新',gm:'GM工具',loadout:'工具 / 一键换装',gamesettings:'工具 / 游戏设置',about:'关于我们'}; function shellGo(page) { if (!pages.includes(page)) page = 'start'; @@ -258,43 +258,60 @@ } } - // 更新日志页面:拉取所有 Release 的 changelog - async function loadChangelog() { - const box = $('changelogBody'); - if (!box) return; - box.innerHTML = '
正在获取更新日志…
'; + // 更新日志:当前更新 = 最新一条;历史更新 = 其余。优先 Gitea,断网退回本地 更新日志.txt + function updDate(rel) { + return rel.published_at ? rel.published_at.replace('T', ' ').slice(0, 16) : ''; + } + + function updCard(rel, featured) { + const badge = rel.prerelease ? '预发布' : ''; + const body = (rel.body || '').replace(/\r?\n/g, '
'); + const assets = (rel.assets || []).map(a => + `⬇ ${escapeHtml(a.name)} (${fmt(a.size)} B)` + ).join(''); + const when = updDate(rel); + return `
+
+ ${escapeHtml(rel.tag || rel.name || '')} + ${escapeHtml(rel.name || '')} + ${badge} + ${escapeHtml(when)} +
+
${body || '(这次没有填写更新说明)'}
+ ${assets ? '
' + assets + '
' : ''} + ${featured ? `在浏览器中查看 ↗` : ''} +
`; + } + + async function loadChangelog(force) { + const latestBox = $('updLatest'), historyBox = $('updHistory'); + if (!latestBox || !historyBox) return; + latestBox.innerHTML = '
正在获取更新日志…
'; + historyBox.innerHTML = ''; try { - const r = await api('/api/update/changelog'); + const r = await api('/api/update/changelog' + (force ? '?force=1' : '')); if (!r.ok) { - box.innerHTML = '
获取失败:' + escapeHtml(r.error || '未知错误') + '
'; + latestBox.innerHTML = '
获取失败:' + escapeHtml(r.error || '未知错误') + '
'; + if ($('updHistoryCount')) $('updHistoryCount').textContent = ''; return; } const rels = r.releases || []; if (!rels.length) { - box.innerHTML = '
暂无发布记录。
在 Gitea 仓库「发布 Release」并填写更新说明后,这里会自动显示。
'; + latestBox.innerHTML = '
暂无更新记录。
在仓库发布 Release,或把「更新日志.txt」放在启动器目录,这里就会显示。
'; + if ($('updHistoryCount')) $('updHistoryCount').textContent = ''; return; } - box.innerHTML = rels.map(rel => { - const badge = rel.prerelease ? '预发布' : ''; - const body = (rel.body || '').replace(/\r?\n/g, '
'); - const assets = (rel.assets || []).map(a => - `⬇ ${escapeHtml(a.name)} (${fmt(a.size)} B)` - ).join(''); - const when = rel.published_at ? rel.published_at.replace('T', ' ').slice(0, 16) : ''; - return `
-
- ${escapeHtml(rel.tag || rel.name || '')} - ${escapeHtml(rel.name || '')} - ${badge} - ${escapeHtml(when)} -
-
${body}
- ${assets ? '
' + assets + '
' : ''} - 在浏览器中查看 ↗ -
`; - }).join(''); + const source = r.source === 'local' + ? '
未连接更新仓库,以下内容读取自本地「更新日志.txt」。
' + : ''; + latestBox.innerHTML = source + updCard(rels[0], true); + const rest = rels.slice(1); + historyBox.innerHTML = rest.length + ? rest.map(rel => updCard(rel, false)).join('') + : '
还没有更早的更新记录。
'; + if ($('updHistoryCount')) $('updHistoryCount').textContent = rest.length ? '(' + rest.length + ')' : ''; } catch (e) { - box.innerHTML = '
获取失败:' + escapeHtml(e && e.message ? e.message : e) + '
'; + latestBox.innerHTML = '
获取失败:' + escapeHtml(e && e.message ? e.message : e) + '
'; } } @@ -745,6 +762,41 @@ }); }); + // ---------------- 游戏更新:当前 / 历史 两个子页 ---------------- + (function bindUpdTabs() { + const tabs = document.querySelectorAll('#updTabs .st-tab'); + tabs.forEach(btn => { + btn.addEventListener('click', () => { + const which = btn.dataset.upd; + tabs.forEach(b => b.classList.toggle('active', b === btn)); + $('updLatestPane').style.display = which === 'latest' ? '' : 'none'; + $('updHistoryPane').style.display = which === 'history' ? '' : 'none'; + }); + }); + const refresh = $('updRefresh'); + if (refresh) refresh.addEventListener('click', () => loadChangelog(true)); + })(); + + // ---------------- 关于我们:二维码放大 ---------------- + (function bindQrLightbox() { + const box = $('qrLightbox'), img = $('qrLightboxImg'), tip = $('qrLightboxTip'); + if (!box || !img) return; + document.querySelectorAll('#page-about .about-qr').forEach(fig => { + fig.addEventListener('click', () => { + const src = fig.querySelector('img'); + if (!src) return; + img.src = src.getAttribute('src'); + img.alt = src.getAttribute('alt') || ''; + tip.textContent = (fig.dataset.qr || '') + ' · 点击任意处关闭'; + box.classList.remove('hidden'); + }); + }); + box.addEventListener('click', () => box.classList.add('hidden')); + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') box.classList.add('hidden'); + }); + })(); + // 兼容旧 GM 页面里的返回 window.shellGo = shellGo; loadStart();