kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Don't clear internal data anymore, just clean it
Fixed lotw log appending and syncronization issues
rodzic
86a36237f7
commit
d981e273e9
|
@ -121,7 +121,11 @@ function onAdiLoadComplete(adiBuffer, saveAdifFile, adifFileName, newFile)
|
|||
var dLastLOTW_QSO = Date.parse(g_adifLogSettings.lastFetch.lotw_qso);
|
||||
if ((isNaN(dRXQSO) == false) && (isNaN(dLastLOTW_QSO) == false) && (dRXQSO > dLastLOTW_QSO))
|
||||
{
|
||||
g_adifLogSettings.lastFetch.lotw_qso = appLoTW_RXQSO;
|
||||
// add a second
|
||||
dRXQSO += 1000;
|
||||
var date = new Date(dRXQSO); // create Date object
|
||||
var timestring = date.toISOString();
|
||||
g_adifLogSettings.lastFetch.lotw_qso = timestring.slice(0, 10) + " " + timestring.slice(11, 19);
|
||||
lotwTimestampUpdated = true;
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +137,11 @@ function onAdiLoadComplete(adiBuffer, saveAdifFile, adifFileName, newFile)
|
|||
var dLastLOTW_QSL = Date.parse(g_adifLogSettings.lastFetch.lotw_qsl);
|
||||
if ((isNaN(dRXQSL) == false) && (isNaN(dLastLOTW_QSL) == false) && (dRXQSL > dLastLOTW_QSL))
|
||||
{
|
||||
g_adifLogSettings.lastFetch.lotw_qsl = appLoTW_RXQSL;
|
||||
// add a second
|
||||
dRXQSL += 1000;
|
||||
var date = new Date(dRXQSL); // create Date object
|
||||
var timestring = date.toISOString();
|
||||
g_adifLogSettings.lastFetch.lotw_qsl = timestring.slice(0, 10) + " " + timestring.slice(11, 19);
|
||||
lotwTimestampUpdated = true;
|
||||
}
|
||||
}
|
||||
|
@ -602,44 +610,46 @@ function lotwCallback(buffer, flag)
|
|||
var rawAdiBuffer = String(buffer);
|
||||
if (rawAdiBuffer.indexOf("password incorrect") > -1)
|
||||
{
|
||||
if (flag) lotwTestResult.innerHTML = "Invalid";
|
||||
if (flag)
|
||||
{
|
||||
lotwTestResult.innerHTML = "Invalid";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flag) lotwTestResult.innerHTML = "Passed";
|
||||
if (flag)
|
||||
{
|
||||
lotwTestResult.innerHTML = "Passed";
|
||||
}
|
||||
else
|
||||
{
|
||||
var shouldAppend = false;
|
||||
var shouldAppend = true;
|
||||
var adiFileName = "LogbookOfTheWorld.adif";
|
||||
g_fromDirectCallNoFileDialog = true;
|
||||
|
||||
// Extract header showing last fetched date from call
|
||||
var lotwQSHeader = rawAdiBuffer.match(/^<APP_LoTW_LAST(QSL|QSORX):\d+>(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})/m);
|
||||
if (lotwQSHeader !== null)
|
||||
// Extract header showing type of call
|
||||
// var lotwQSHeader = rawAdiBuffer.match(/^<APP_LoTW_LAST(QSL|QSORX):\d+>(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})/m);
|
||||
|
||||
if (rawAdiBuffer.indexOf("QSL ONLY: YES") == -1)
|
||||
{
|
||||
if (lotwQSHeader[1].toUpperCase() == "QSORX")
|
||||
{
|
||||
g_adifLogSettings.lastFetch.lotw_qso = lotwQSHeader[2]
|
||||
}
|
||||
else if (lotwQSHeader[1].toUpperCase() == "QSL")
|
||||
{
|
||||
g_adifLogSettings.lastFetch.lotw_qsl = lotwQSHeader[2];
|
||||
}
|
||||
// This is the QSO download, fire the QSL download now
|
||||
nodeTimers.setTimeout(grabLoTWQSL, 500);
|
||||
}
|
||||
|
||||
rawAdiBuffer = cleanAndPrepADIF(
|
||||
"lotw.adif",
|
||||
adiFileName,
|
||||
rawAdiBuffer,
|
||||
true,
|
||||
shouldAppend
|
||||
);
|
||||
|
||||
rawAdiBuffer = tryToWriteAdifToDocFolder(
|
||||
"lotw.adif",
|
||||
adiFileName,
|
||||
rawAdiBuffer,
|
||||
shouldAppend
|
||||
);
|
||||
|
||||
onAdiLoadComplete(rawAdiBuffer, true, "lotw.adif", true);
|
||||
onAdiLoadComplete(rawAdiBuffer, true, adiFileName, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -706,7 +716,7 @@ function grabLOtWLog(test)
|
|||
if (test == false)
|
||||
{
|
||||
nodeTimers.setTimeout(grabLoTWQSO, 500);
|
||||
nodeTimers.setTimeout(grabLoTWQSL, 10000);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -739,9 +749,10 @@ function grabLoTWQSO()
|
|||
|
||||
function grabLoTWQSL()
|
||||
{
|
||||
var dLoTWQSL = Date.parse(dateToISO8601(g_adifLogSettings.lastFetch.lotw_qsl, "Z"));
|
||||
var tmpDate = ((new Date().getTime()) - 300);
|
||||
var dLoTWQSL = Date.parse(dateToISO8601(g_adifLogSettings.lastFetch.lotw_qsl, "Z")) / 1000;
|
||||
var tmpDate = timeNowSec() - 300;
|
||||
|
||||
// Don't grab if the last QSL was less than 5 minutes ago
|
||||
if ((g_isGettingLOTW == false) && ((isNaN(dLoTWQSL) == false) && (dLoTWQSL < tmpDate)))
|
||||
{
|
||||
lastQSLDateString = "&qso_qslsince=" + g_adifLogSettings.lastFetch.lotw_qsl;
|
||||
|
@ -760,30 +771,10 @@ function grabLoTWQSL()
|
|||
"g_isGettingLOTW",
|
||||
120000
|
||||
);
|
||||
|
||||
// Fetch QSLs
|
||||
nodeTimers.setTimeout(downloadLoTWQSL, 10000);
|
||||
}
|
||||
}
|
||||
|
||||
function downloadLoTWQSL()
|
||||
{
|
||||
getABuffer(
|
||||
"https://lotw.arrl.org/lotwuser/lotwreport.adi?login=" +
|
||||
lotwLogin.value +
|
||||
"&password=" +
|
||||
encodeURIComponent(lotwPassword.value) +
|
||||
"&qso_query=1&qso_qsl=yes&qso_qsldetail=yes&qso_withown=yes" +
|
||||
lastQSLDateString,
|
||||
lotwCallback,
|
||||
null,
|
||||
"https",
|
||||
443,
|
||||
lotwLogImg,
|
||||
"g_isGettingLOTW",
|
||||
120000
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function qrzCallback(buffer, flag)
|
||||
{
|
||||
|
@ -1143,6 +1134,12 @@ function loadLoTWLogFile()
|
|||
g_fromDirectCallNoFileDialog = true;
|
||||
onAdiLoadComplete(fs.readFileSync(g_LoTWLogFile), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We have no history, so our dates are not valid any more
|
||||
g_adifLogSettings.lastFetch.lotw_qso = "1940-01-01";
|
||||
g_adifLogSettings.lastFetch.lotw_qsl = "1940-01-01";
|
||||
}
|
||||
}
|
||||
|
||||
function loadWsjtLogFile()
|
||||
|
|
|
@ -284,3 +284,38 @@ var def_pstrotatorSettings = {
|
|||
port: 12000,
|
||||
ip: "127.0.0.1"
|
||||
};
|
||||
|
||||
var def_qso = {
|
||||
band: "",
|
||||
cnty: null,
|
||||
confirmed: false,
|
||||
cont: null,
|
||||
cqz: "",
|
||||
DEcall: "",
|
||||
delta: -1,
|
||||
digital: false,
|
||||
DXcall: "",
|
||||
dxcc: -1,
|
||||
grid: "",
|
||||
IOTA: "",
|
||||
ituz: "",
|
||||
mode: "",
|
||||
msg: "-",
|
||||
phone: false,
|
||||
pota: null,
|
||||
propMode: "",
|
||||
px: null,
|
||||
qso: true,
|
||||
qual: false,
|
||||
rect: null,
|
||||
RSTrecv: "",
|
||||
RSTsent: "",
|
||||
satName: "",
|
||||
state: null,
|
||||
time: 0,
|
||||
vucc_grids: [],
|
||||
worked: false,
|
||||
wspr: null,
|
||||
zipcode: null,
|
||||
zone: null
|
||||
};
|
||||
|
|
|
@ -1105,7 +1105,6 @@ function addDeDx(
|
|||
)
|
||||
{
|
||||
details.grid = finalGrid;
|
||||
details.grid4 = finalGrid.substr(0, 4);
|
||||
}
|
||||
}
|
||||
if (finalRSTsent.length > 0) details.RSTsent = finalRSTsent;
|
||||
|
@ -1144,6 +1143,7 @@ function addDeDx(
|
|||
details.px = null;
|
||||
details.zone = null;
|
||||
details.cont = null;
|
||||
details.cnty = finalCnty;
|
||||
details.vucc_grids = finalVucc;
|
||||
details.propMode = finalPropMode;
|
||||
details.digital = finalDigital;
|
||||
|
@ -5064,9 +5064,7 @@ function clearQSOs()
|
|||
|
||||
function clearLogFilesAndCounts()
|
||||
{
|
||||
tryToDeleteLog("lotw_QSL.adif");
|
||||
tryToDeleteLog("lotw_QSO.adif");
|
||||
tryToDeleteLog("lotw.adif");
|
||||
tryToDeleteLog("LogbookOfTheWorld.adif");
|
||||
tryToDeleteLog("qrz.adif");
|
||||
tryToDeleteLog("clublog.adif");
|
||||
g_adifLogSettings.downloads = {};
|
||||
|
@ -10224,6 +10222,7 @@ function redrawGrids()
|
|||
clearGrids();
|
||||
clearQsoGrids();
|
||||
|
||||
|
||||
g_QSLcount = 0;
|
||||
g_QSOcount = 0;
|
||||
|
||||
|
@ -15441,7 +15440,7 @@ function mediaCheck()
|
|||
g_scriptDir += g_dirSeperator;
|
||||
|
||||
g_qsoLogFile = path.join(g_appData, "GridTracker_QSO.adif");
|
||||
g_LoTWLogFile = path.join(g_appData, "lotw.adif");
|
||||
g_LoTWLogFile = path.join(g_appData, "LogbookOfTheWorld.adif");
|
||||
|
||||
logEventMedia.appendChild(newOption("none", "None"));
|
||||
msgAlertMedia.appendChild(newOption("none", "Select File"));
|
||||
|
@ -15493,7 +15492,9 @@ function mediaCheck()
|
|||
g_QSLcount = 0;
|
||||
g_QSOcount = 0;
|
||||
|
||||
// Old log filename, no longer referenced
|
||||
// Old log filenames, no longer referenced
|
||||
tryToDeleteLog("lotw_QSL.adif");
|
||||
tryToDeleteLog("lotw_QSO.adif");
|
||||
tryToDeleteLog("lotw.adif");
|
||||
|
||||
try
|
||||
|
@ -15518,43 +15519,22 @@ function mediaCheck()
|
|||
g_tracker.confirmed.pota = {};
|
||||
}
|
||||
|
||||
g_QSOhash = data.g_QSOhash;
|
||||
|
||||
for (var i in g_QSOhash)
|
||||
for (const i in data.g_QSOhash)
|
||||
{
|
||||
if (typeof g_QSOhash[i].px == "undefined" || g_QSOhash[i].px == null)
|
||||
{
|
||||
if (g_QSOhash[i].dxcc != -1)
|
||||
{
|
||||
g_QSOhash[i].px = getWpx(g_QSOhash[i].DEcall);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_QSOhash[i].px = null;
|
||||
}
|
||||
}
|
||||
|
||||
g_QSOhash[i].pota = null;
|
||||
|
||||
g_QSOhash[i] = fillObjectFromTemplate(def_qso, data.g_QSOhash[i]);
|
||||
g_QSOcount++;
|
||||
if (g_QSOhash[i].confirmed) g_QSLcount++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clearLogFilesAndCounts();
|
||||
}
|
||||
|
||||
fs.unlinkSync(g_NWappData + "internal_qso.json");
|
||||
}
|
||||
else
|
||||
{
|
||||
clearLogFilesAndCounts();
|
||||
}
|
||||
|
||||
loadReceptionReports();
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
clearLogFilesAndCounts();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Ładowanie…
Reference in New Issue