From 0b0b831d737698f7139e5693e0e431db13ee7252 Mon Sep 17 00:00:00 2001 From: "emin.lin" Date: Tue, 14 Mar 2023 00:33:55 +0800 Subject: [PATCH] Support to upload log to HamZone.cn --- package.nw/GridTracker.html | 22 ++++++++ package.nw/i18n/cn-t.json | 3 ++ package.nw/i18n/cn.json | 3 ++ package.nw/i18n/en.json | 3 ++ package.nw/lib/adif.js | 100 ++++++++++++++++++++++++++++++++++++ 5 files changed, 131 insertions(+) diff --git a/package.nw/GridTracker.html b/package.nw/GridTracker.html index 3a37fcc..2e082af 100644 --- a/package.nw/GridTracker.html +++ b/package.nw/GridTracker.html @@ -2355,6 +2355,28 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + HamZone.cn + + + + + + + + + + + +
+ Test +
+ + + N1MM Logger+ diff --git a/package.nw/i18n/cn-t.json b/package.nw/i18n/cn-t.json index 3bc2a9f..d0d5648 100644 --- a/package.nw/i18n/cn-t.json +++ b/package.nw/i18n/cn-t.json @@ -335,6 +335,9 @@ "settings.logging.LoTW.details.station": "台站位置", "settings.logging.LoTW.test.downloadButton": "測試下載", "settings.logging.LoTW.test.TQSLButton": "測試TQSL", + "settings.logging.HamZone.source": "HamZone.cn", + "settings.logging.HamZone.details.apiKey": "API密鑰", + "settings.logging.HamZone.test.button": "測試", "settings.logging.N1MM.source": "N1MM Logger+", "settings.logging.N1MM.details.IP": "IP地址", "settings.logging.N1MM.details.Port": "埠號", diff --git a/package.nw/i18n/cn.json b/package.nw/i18n/cn.json index 83f7e6a..c3ac1de 100644 --- a/package.nw/i18n/cn.json +++ b/package.nw/i18n/cn.json @@ -334,6 +334,9 @@ "settings.logging.LoTW.details.station": "台站位置", "settings.logging.LoTW.test.downloadButton": "测试下载", "settings.logging.LoTW.test.TQSLButton": "测试TQSL", + "settings.logging.HamZone.source": "HamZone.cn", + "settings.logging.HamZone.details.apiKey": "API密钥", + "settings.logging.HamZone.test.button": "测试", "settings.logging.N1MM.source": "N1MM Logger+", "settings.logging.N1MM.details.IP": "IP地址", "settings.logging.N1MM.details.Port": "端口", diff --git a/package.nw/i18n/en.json b/package.nw/i18n/en.json index bdd25a0..f123729 100644 --- a/package.nw/i18n/en.json +++ b/package.nw/i18n/en.json @@ -333,6 +333,9 @@ "settings.logging.LoTW.details.station": "Station Name", "settings.logging.LoTW.test.downloadButton":"Test Download", "settings.logging.LoTW.test.TQSLButton": "Test TQSL", + "settings.logging.HamZone.source": "HamZone.cn", + "settings.logging.HamZone.details.apiKey": "API Key", + "settings.logging.HamZone.test.button": "Test", "settings.logging.N1MM.source": "N1MM Logger+", "settings.logging.N1MM.details.IP": "IP", "settings.logging.N1MM.details.Port": "Port", diff --git a/package.nw/lib/adif.js b/package.nw/lib/adif.js index ed9a98e..d52b13b 100644 --- a/package.nw/lib/adif.js +++ b/package.nw/lib/adif.js @@ -2170,6 +2170,16 @@ function finishSendingReport(record, localMode) addLastTraffic("Exception LoTW Log"); } + try + { + sendHamZoneEntry(report); + } + catch (e) + { + addLastTraffic("Exception HamZone Log"); + } + + if ( logeQSLQSOCheckBox.checked == true && nicknameeQSLCheckBox.checked == true && @@ -2788,6 +2798,96 @@ function ClublogTest(test) } } +function HamZoneTest(test) +{ + if (test && test == true) + { + HamZoneTestResult.innerHTML = "Testing"; + + var postData = { key: HamZoneApiKey.value }; + getPostJSONBuffer( + "http://127.0.0.1:5100/v1/logbook?from=gridtracker", + HamZoneSendResult, + test, + "https", + 443, + postData, + 10000, + HamZoneErrorCallback, + "Failed" + ); + } +} + +function HamZoneErrorCallback( + file_url, + callback, + flag, + mode, + port, + theData, + timeoutMs, + timeoutCallback, + message +) +{ + HamZoneTestResult.innerHTML = message; +} + +function HamZoneSendResult(buffer, flag) +{ + if (flag && flag == true) + { + if (buffer) + { + if (buffer.indexOf("Invalid") > -1) + { + HamZoneTestResult.innerHTML = "Invalid"; + } + else if (buffer.indexOf("Pass") > -1) + { + HamZoneTestResult.innerHTML = "Passed"; + } + else + { + HamZoneTestResult.innerHTML = "Unknown Error"; + } + } + else + { + HamZoneTestResult.innerHTML = "Resp Err"; + } + } +} + +function sendHamZoneEntry(report) +{ + if (g_mapSettings.offlineMode == true) return; + + if (logHamZoneqsoCheckBox.checked == true) + { + if (typeof nw != "undefined") + { + var postData = { + key: HamZoneApiKey.value, + app: "GridTracker " + gtVersion, + adif: report + }; + getPostBuffer( + "http://127.0.0.1:5100/v1/logbook?from=gridtracker", + HamZoneSendResult, + null, + "https", + 443, + postData, + 30000, + postRetryErrorCallaback, + "HamZone.cn" + ); + } + } +} + function getPostJSONBuffer( file_url, callback,