diff --git a/README.md b/README.md index bafe493..182fc7f 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Core functionalities: - [x] V2RayN URI - [x] QX (SS, SSR, VMess, Trojan, HTTP) - [x] Loon (SS, SSR, VMess, Trojan, HTTP, WireGuard, VLESS) -- [x] Surge (SS, VMess, Trojan, HTTP, TUIC, Snell, SSR(external, only for macOS)) +- [x] Surge (SS, VMess, Trojan, HTTP, TUIC, Snell, SSR(external, only for macOS), WireGuard(Surge to Surge)) - [x] ShadowRocket (SS, SSR, VMess, Trojan, HTTP, Snell, VLESS, WireGuard, Hysteria) - [x] Clash.Meta (SS, SSR, VMess, Trojan, HTTP, Snell, VLESS, WireGuard, Hysteria) - [x] Stash (SS, SSR, VMess, Trojan, HTTP, Snell, VLESS, WireGuard, Hysteria) diff --git a/backend/package.json b/backend/package.json index 301472f..d58da61 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.14.47", + "version": "2.14.48", "description": "Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.", "main": "src/main.js", "scripts": { diff --git a/backend/src/restful/miscs.js b/backend/src/restful/miscs.js index 139e523..b59e84f 100644 --- a/backend/src/restful/miscs.js +++ b/backend/src/restful/miscs.js @@ -118,6 +118,23 @@ async function gistBackup(req, res) { case 'download': $.info(`还原备份中...`); content = await gist.download(GIST_BACKUP_FILE_NAME); + try { + if ( + Object.keys(JSON.parse(content).settings).length === + 0 + ) { + throw new Error( + '备份文件应该至少包含 settings 字段', + ); + } + } catch (err) { + $.error( + `Gist 备份文件校验失败, 无法还原\nReason: ${ + err.message ?? err + }`, + ); + throw new Error('Gist 备份文件校验失败, 无法还原'); + } // restore settings $.write(content, '#sub-store'); if ($.env.isNode) {