From 99baf5a83bb36b5ab6e7f77b8c2fa289895ce296 Mon Sep 17 00:00:00 2001 From: whes1015 Date: Mon, 18 Sep 2023 23:46:27 +0800 Subject: [PATCH] fix: bug --- src/core/index/api.js | 3 +- src/core/index/loop.js | 6 +++- src/core/index/ota.js | 61 ---------------------------------------- src/package-lock.json | 63 ++++++++++++++++++++++++++++++++---------- src/package.json | 13 +++++++-- 5 files changed, 66 insertions(+), 80 deletions(-) delete mode 100644 src/core/index/ota.js diff --git a/src/core/index/api.js b/src/core/index/api.js index b08a8f74..09e5d02a 100644 --- a/src/core/index/api.js +++ b/src/core/index/api.js @@ -7,6 +7,7 @@ let update = false; let start = false; const info_list = []; +const new_decay_formula = storage.getItem("new_decay_formula") ?? false; let click_report_id = -1; @@ -569,7 +570,7 @@ function eew_location_intensity(data, depth) { const dist_surface = Math.sqrt(pow((data.lat - info.lat) * 111) + pow((data.lon - info.lon) * 101)); const dist = Math.sqrt(pow(dist_surface) + pow(data.depth)); let pga = 1.657 * Math.pow(Math.E, (1.533 * data.scale)) * Math.pow(dist, -1.607) * (info.site ?? 1); - if (storage.getItem("new_decay_formula") ?? false) { + if (new_decay_formula) { pga = 12.44 * Math.exp(1.31 * data.scale) * Math.pow(dist, -1.837) * ((depth < 40) ? region[city][town].site_s : region[city][town].site_d); } if (pga > eew_max_pga) { diff --git a/src/core/index/loop.js b/src/core/index/loop.js index 348265b3..16853555 100644 --- a/src/core/index/loop.js +++ b/src/core/index/loop.js @@ -1,5 +1,9 @@ /* eslint-disable no-undef */ require("expose-gc"); +const { autoUpdater } = require("electron-updater"); + +autoUpdater.checkForUpdatesAndNotify(); + let drawer_lock = false; let focus_lock = false; let Zoom = false; @@ -311,7 +315,7 @@ setInterval(() => { if (Now().getMinutes() % 10 == 0) { get_station_info(); refresh_report_list(true); - check_ota(); + autoUpdater.checkForUpdatesAndNotify(); } }, 60_000); diff --git a/src/core/index/ota.js b/src/core/index/ota.js deleted file mode 100644 index f405239c..00000000 --- a/src/core/index/ota.js +++ /dev/null @@ -1,61 +0,0 @@ -/* eslint-disable no-undef */ -const unzipper = require("unzipper"); -let ota_ver = app.getVersion(); - -function downloadOTAFile(Url, ver) { - fetch(Url) - .then(res => { - const writer = fs.createWriteStream("./resources/app/trem.zip"); - res.body.pipe(writer); - writer.on("finish", () => { - fs.createReadStream("./resources/app/trem.zip") - .pipe(unzipper.Extract({ path: "./resources/app/" })) - .on("finish", () => { - fs.unlinkSync("./resources/app/trem.zip"); - const info = JSON.parse(fs.readFileSync("./resources/app/package.json")); - if (info.version == ver) { - if ((localStorage.getItem("ota_restart") ?? false)) { - const notification = new Notification("⬆️ OTA 更新", { - body : "已完成 OTA 更新!", - icon : "../TREM.ico", - }); - notification.addEventListener("click", () => { - MainWindow.focus(); - }); - setTimeout(() => ipcRenderer.send("restart"), 1500); - } else { - const notification = new Notification("⬆️ OTA 下載", { - body : "已完成 OTA 檔案下載!\n重新啟動完成更新", - icon : "../TREM.ico", - }); - notification.addEventListener("click", () => { - ipcRenderer.send("restart"); - }); - } - } else { - ota_ver = info.version; - check_ota(); - } - }); - }); - }); -} - -function check_ota() { - const controller = new AbortController(); - setTimeout(() => { - controller.abort(); - }, 2500); - fetch("https://exptech.com.tw/api/v1/file/trem-lite/version.json", { signal: controller.signal }) - .then((ans) => ans.json()) - .then((ans) => { - if (ans.ver != ota_ver && ans[ota_ver]) { - downloadOTAFile(`https://exptech.com.tw/api/v1/file/trem-lite/${ans[ota_ver]}.zip`, ans.ver); - } - }) - .catch((err) => { - log(err, 3, "api", "check_ota"); - }); -} - -check_ota(); \ No newline at end of file diff --git a/src/package-lock.json b/src/package-lock.json index ab36fa81..eb985ef5 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -12,6 +12,7 @@ "bytenode": "^1.5.1", "electron-common-ipc": "^16.0.4", "electron-fcm-push-receiver": "^2.1.7", + "electron-updater": "^6.1.4", "expose-gc": "^1.0.0", "leaflet": "^1.9.4", "leaflet-edgebuffer": "^1.0.6", @@ -983,8 +984,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/array-union": { "version": "2.1.0", @@ -1259,7 +1259,6 @@ "version": "9.2.1", "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz", "integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==", - "dev": true, "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -2071,6 +2070,35 @@ "mime": "^2.5.2" } }, + "node_modules/electron-updater": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.4.tgz", + "integrity": "sha512-yYAJc6RQjjV4WtInZVn+ZcLyXRhbVXoomKEfUUwDqIk5s2wxzLhWaor7lrNgxODyODhipjg4SVPMhJHi5EnsCA==", + "dependencies": { + "builder-util-runtime": "9.2.1", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.8", + "tiny-typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2538,7 +2566,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3311,7 +3338,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -3377,7 +3403,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -3443,8 +3468,7 @@ "node_modules/lazy-val": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", - "dev": true + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" }, "node_modules/leaflet": { "version": "1.9.4", @@ -3504,6 +3528,16 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3548,7 +3582,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4778,8 +4811,7 @@ "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/semver": { "version": "6.3.1", @@ -5391,6 +5423,11 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, "node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -5532,7 +5569,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -5769,8 +5805,7 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "17.7.2", diff --git a/src/package.json b/src/package.json index 10fb391d..6fe212e6 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "trem_lite", - "version": "1.9.12", + "version": "1.9.13", "description": "Taiwan Real-time Earthquake Monitoring ( 臺灣即時地震監測 )", "homepage": "https://exptech.com.tw/", "main": "main.js", @@ -49,7 +49,13 @@ ], "category": "Development", "maintainer": "ExpTechTW" - } + }, + "publish": [{ + "provider": "github", + "owner": "ExpTechTW", + "repo": "TREM-Lite", + "private": false + }] }, "devDependencies": { "electron": "^26.2.0", @@ -65,6 +71,7 @@ "bytenode": "^1.5.1", "electron-common-ipc": "^16.0.4", "electron-fcm-push-receiver": "^2.1.7", + "electron-updater": "^6.1.4", "expose-gc": "^1.0.0", "leaflet": "^1.9.4", "leaflet-edgebuffer": "^1.0.6", @@ -75,4 +82,4 @@ "unzipper": "^0.10.14", "ws": "^8.14.1" } -} \ No newline at end of file +}