diff --git a/backend/package.json b/backend/package.json index 109a6dd..c82e184 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "sub-store", - "version": "2.16.55", + "version": "2.16.56", "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 ea650a5..7d521d9 100644 --- a/backend/src/restful/miscs.js +++ b/backend/src/restful/miscs.js @@ -109,6 +109,21 @@ async function gistBackupAction(action) { const updated = settings.syncTime; switch (action) { case 'upload': + try { + content = $.read('#sub-store'); + if ($.env.isNode) content = JSON.stringify($.cache, null, ` `); + $.info(`下载备份, 与本地内容对比...`); + const onlineContent = await gist.download( + GIST_BACKUP_FILE_NAME, + ); + if (onlineContent === content) { + $.info(`内容一致, 无需上传备份`); + return; + } + } catch (error) { + $.error(`${error.message ?? error}`); + } + // update syncTime settings.syncTime = new Date().getTime(); $.write(settings, SETTINGS_KEY); diff --git a/backend/src/utils/gist.js b/backend/src/utils/gist.js index a6736d7..6949628 100644 --- a/backend/src/utils/gist.js +++ b/backend/src/utils/gist.js @@ -118,6 +118,7 @@ export default class Gist { .get('/gists?per_page=100&page=1') .then((response) => { const gists = JSON.parse(response.body); + $.info(`获取到当前 GitHub 用户的 gist: ${gists.length} 个`); for (let g of gists) { if (g.description === this.key) { return g;