Skip to content

Commit ad49a0a

Browse files
committed
feat: 更新版本信息获取逻辑,支持从新URL读取稳定版和夜间版信息
1 parent ba0ed06 commit ad49a0a

3 files changed

Lines changed: 74 additions & 21 deletions

File tree

‎src/constants.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export const FIRMWARE_URLS = {
66
nightly: 'https://simdevices.bysb.net/SimGEKI/nightly/SimGEKI-SimGETRO_Public.bin',
77
}
88

9+
export const VERSION_INFO_URL = 'https://simdevices.bysb.net/SimGEKI/latest.json'
10+
911
export const API_URLS = {
1012
latest: 'https://api.github.com/repos/SimDevices-Project/SimGEKI/releases/latest',
1113
nightly: 'https://api.github.com/repos/SimDevices-Project/SimGEKI/releases/tags/nightly',

‎src/index.js‎

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,9 @@ if (document.readyState === 'loading') {
441441
'https://simdevices.bysb.net/SimGEKI/nightly/SimGEKI-SimGETRO_Public.bin',
442442
}
443443

444-
// GitHub API URLs for version information
444+
const VERSION_INFO_URL = 'https://simdevices.bysb.net/SimGEKI/latest.json'
445+
446+
// GitHub API URLs for version information (fallback)
445447
const API_URLS = {
446448
latest:
447449
'https://api.github.com/repos/SimDevices-Project/SimGEKI/releases/latest',
@@ -457,13 +459,25 @@ if (document.readyState === 'loading') {
457459
latestVersionElement.className = 'version-value loading'
458460
latestVersionElement.textContent = '获取中...'
459461

460-
const response = await fetch(API_URLS.latest)
461-
if (!response.ok) {
462-
throw new Error(`HTTP ${response.status}`)
462+
let version = null
463+
464+
try {
465+
const response = await fetch(VERSION_INFO_URL)
466+
if (response.ok) {
467+
const data = await response.json()
468+
version = data.stable?.tag_name
469+
}
470+
} catch (_) {
463471
}
464472

465-
const data = await response.json()
466-
const version = data.tag_name || '未知版本'
473+
if (!version) {
474+
const response = await fetch(API_URLS.latest)
475+
if (!response.ok) {
476+
throw new Error(`HTTP ${response.status}`)
477+
}
478+
const data = await response.json()
479+
version = data.tag_name || '未知版本'
480+
}
467481

468482
latestVersionElement.className = 'version-value'
469483
latestVersionElement.textContent = version
@@ -483,13 +497,25 @@ if (document.readyState === 'loading') {
483497
nightlyVersionElement.className = 'version-value loading'
484498
nightlyVersionElement.textContent = '获取中...'
485499

486-
const response = await fetch(API_URLS.nightly)
487-
if (!response.ok) {
488-
throw new Error(`HTTP ${response.status}`)
500+
let publishedAt = null
501+
502+
try {
503+
const response = await fetch(VERSION_INFO_URL)
504+
if (response.ok) {
505+
const data = await response.json()
506+
publishedAt = data.nightly?.build_time
507+
}
508+
} catch (_) {
489509
}
490510

491-
const data = await response.json()
492-
const publishedAt = data.published_at
511+
if (!publishedAt) {
512+
const response = await fetch(API_URLS.nightly)
513+
if (!response.ok) {
514+
throw new Error(`HTTP ${response.status}`)
515+
}
516+
const data = await response.json()
517+
publishedAt = data.published_at
518+
}
493519

494520
if (publishedAt) {
495521
// Format the date: "2025-07-18T15:23:30Z" -> "2025-07-18 15:23"

‎src/modules/firmware.js‎

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
FIRMWARE_URLS,
55
HID_TIMEOUT,
66
REPORT_ID,
7+
VERSION_INFO_URL,
78
} from '../constants'
89

910
export const createFirmwareController = ({
@@ -63,13 +64,25 @@ export const createFirmwareController = ({
6364
latestVersionElement.className = 'version-value loading'
6465
latestVersionElement.textContent = '获取中...'
6566

66-
const response = await fetch(API_URLS.latest)
67-
if (!response.ok) {
68-
throw new Error(`HTTP ${response.status}`)
67+
let version = null
68+
69+
try {
70+
const response = await fetch(VERSION_INFO_URL)
71+
if (response.ok) {
72+
const data = await response.json()
73+
version = data.stable?.tag_name
74+
}
75+
} catch (_) {
6976
}
7077

71-
const data = await response.json()
72-
const version = data.tag_name || '未知版本'
78+
if (!version) {
79+
const response = await fetch(API_URLS.latest)
80+
if (!response.ok) {
81+
throw new Error(`HTTP ${response.status}`)
82+
}
83+
const data = await response.json()
84+
version = data.tag_name || '未知版本'
85+
}
7386

7487
latestVersionElement.className = 'version-value'
7588
latestVersionElement.textContent = version
@@ -86,13 +99,25 @@ export const createFirmwareController = ({
8699
nightlyVersionElement.className = 'version-value loading'
87100
nightlyVersionElement.textContent = '获取中...'
88101

89-
const response = await fetch(API_URLS.nightly)
90-
if (!response.ok) {
91-
throw new Error(`HTTP ${response.status}`)
102+
let publishedAt = null
103+
104+
try {
105+
const response = await fetch(VERSION_INFO_URL)
106+
if (response.ok) {
107+
const data = await response.json()
108+
publishedAt = data.nightly?.build_time
109+
}
110+
} catch (_) {
92111
}
93112

94-
const data = await response.json()
95-
const publishedAt = data.published_at
113+
if (!publishedAt) {
114+
const response = await fetch(API_URLS.nightly)
115+
if (!response.ok) {
116+
throw new Error(`HTTP ${response.status}`)
117+
}
118+
const data = await response.json()
119+
publishedAt = data.published_at
120+
}
96121

97122
if (publishedAt) {
98123
const date = new Date(publishedAt)

0 commit comments

Comments
 (0)