diff --git a/package.nw/GridTracker.html b/package.nw/GridTracker.html
index 645f0b9..d8aa395 100644
--- a/package.nw/GridTracker.html
+++ b/package.nw/GridTracker.html
@@ -2356,6 +2356,28 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ HamZone.cn
+
+
+
+
+
+
+ API Key
+
+
+
+
+
+ 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 de70eff..496a574 100644
--- a/package.nw/i18n/cn.json
+++ b/package.nw/i18n/cn.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/en.json b/package.nw/i18n/en.json
index 3c1d7c6..f1f1659 100644
--- a/package.nw/i18n/en.json
+++ b/package.nw/i18n/en.json
@@ -334,6 +334,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..63896b4 100644
--- a/package.nw/lib/adif.js
+++ b/package.nw/lib/adif.js
@@ -2170,6 +2170,15 @@ 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 +2797,96 @@ function ClublogTest(test)
}
}
+function HamZoneTest(test)
+{
+ if (test && test == true)
+ {
+ HamZoneTestResult.innerHTML = "Testing";
+
+ var postData = { key: HamZoneApiKey.value };
+ getPostJSONBuffer(
+ "https://www.hamzone.cn/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(
+ "https://www.hamzone.cn/v1/logbook?from=gridtracker",
+ HamZoneSendResult,
+ null,
+ "https",
+ 443,
+ postData,
+ 30000,
+ postRetryErrorCallaback,
+ "HamZone.cn"
+ );
+ }
+ }
+}
+
function getPostJSONBuffer(
file_url,
callback,
diff --git a/package.nw/lib/defaults.js b/package.nw/lib/defaults.js
index eae0255..beeaf06 100644
--- a/package.nw/lib/defaults.js
+++ b/package.nw/lib/defaults.js
@@ -154,7 +154,8 @@ var def_adifLogSettings = {
logHRDLOGqsoCheckBox: false,
logClubqsoCheckBox: false,
logCloudlogQSOCheckBox: false,
- logeQSLQSOCheckBox: false
+ logeQSLQSOCheckBox: false,
+ logHamZoneqsoCheckBox: false
},
nickname: {
nicknameeQSLCheckBox: false
@@ -175,7 +176,8 @@ var def_adifLogSettings = {
CloudlogStationProfileID: "1",
eQSLUser: "",
eQSLPassword: "",
- eQSLNickname: ""
+ eQSLNickname: "",
+ HamZoneApiKey: ""
},
downloads: {},
lastFetch: {