Don't clear internal data anymore, just clean it

Fixed lotw log appending and syncronization issues
Tag 2022-12-17 16:18:43 -08:00
rodzic 86a36237f7
commit d981e273e9
3 zmienionych plików z 87 dodań i 75 usunięć

Wyświetl plik

@ -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()

Wyświetl plik

@ -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
};

Wyświetl plik

@ -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;