From dde0c18f51334b2b77f8e9136d0b687570d1486a Mon Sep 17 00:00:00 2001 From: Joerg Date: Thu, 15 Jan 2026 22:05:09 +0100 Subject: [PATCH] 1st sync Full --- src/backend/services/lotw.service.js | 29 +++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/backend/services/lotw.service.js b/src/backend/services/lotw.service.js index dc78ab9..4788b0b 100644 --- a/src/backend/services/lotw.service.js +++ b/src/backend/services/lotw.service.js @@ -99,15 +99,15 @@ export async function fetchQSOsFromLoTW(lotwUsername, lotwPassword, sinceDate = qso_withown: 'yes', // Include own callsign }); - // Add date filter - ALWAYS send qso_qslsince to get all QSOs - // LoTW default behavior only returns QSOs since last download, so we must - // explicitly send a date to get QSOs since that date - const dateStr = sinceDate - ? sinceDate.toISOString().split('T')[0] - : '2026-01-01'; // Default: Get QSOs since 2026-01-01 - params.append('qso_qslsince', dateStr); - - console.error('Date filter:', dateStr, sinceDate ? '(User-specified date)' : '(Default: since 2026-01-01)'); + // Add date filter - only add qso_qslsince if we have a last QSL date + // For first sync (no QSOs in DB), don't filter by date to get ALL QSOs + if (sinceDate) { + const dateStr = sinceDate.toISOString().split('T')[0]; + params.append('qso_qslsince', dateStr); + console.error('Date filter:', dateStr, '(Incremental sync since last QSL date)'); + } else { + console.error('No date filter - fetching ALL QSOs (first sync)'); + } const fullUrl = `${url}?${params.toString()}`; @@ -623,9 +623,16 @@ export async function syncQSOsForJob(jobId, userId, data) { // Get last LoTW QSL date for incremental sync const lastQSLDate = await getLastLoTWQSLDate(userId); - const sinceDate = lastQSLDate || new Date('2026-01-01'); // Default as per Wavelog - console.error(`[Job ${jobId}] Syncing LoTW QSOs since ${sinceDate.toISOString().split('T')[0]}`); + // If no QSOs exist, use a far past date to get ALL QSOs (first sync) + // Otherwise, use the last QSL date for incremental sync + const sinceDate = lastQSLDate || new Date('2000-01-01'); + + if (lastQSLDate) { + console.error(`[Job ${jobId}] Incremental sync since ${sinceDate.toISOString().split('T')[0]}`); + } else { + console.error(`[Job ${jobId}] Full sync - fetching ALL QSOs since 2000-01-01`); + } // Fetch from LoTW const adifQSOs = await fetchQSOsFromLoTW(lotwUsername, lotwPassword, sinceDate);