fix: count QSOs confirmed by either LoTW or DCL in stats
QSO stats were only counting LoTW-confirmed QSOs, excluding QSOs confirmed only by DCL from the "confirmed" count. Changed getQSOStats() to count QSOs as confirmed if EITHER LoTW OR DCL has confirmed them: - Before: q.lotwQslRstatus === 'Y' - After: q.lotwQslRstatus === 'Y' || q.dclQslRstatus === 'Y' Fixes stats showing 8317/8338 confirmed when all QSOs were confirmed by at least one system. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -401,6 +401,11 @@ Both LoTW and DCL return data in ADIF (Amateur Data Interchange Format):
|
|||||||
|
|
||||||
### Recent Commits
|
### Recent Commits
|
||||||
|
|
||||||
|
- `[uncommitted]`: fix: count QSOs confirmed by either LoTW or DCL in stats
|
||||||
|
- QSO stats were only counting LoTW-confirmed QSOs (`lotwQslRstatus === 'Y'`)
|
||||||
|
- QSOs confirmed only by DCL were excluded from "confirmed" count
|
||||||
|
- Fixed by changing filter to: `q.lotwQslRstatus === 'Y' || q.dclQslRstatus === 'Y'`
|
||||||
|
- Now correctly shows all QSOs confirmed by at least one system
|
||||||
- `233888c`: fix: make ADIF parser case-insensitive for EOR delimiter
|
- `233888c`: fix: make ADIF parser case-insensitive for EOR delimiter
|
||||||
- **Critical bug**: LoTW uses lowercase `<eor>` tags, parser was splitting on uppercase `<EOR>`
|
- **Critical bug**: LoTW uses lowercase `<eor>` tags, parser was splitting on uppercase `<EOR>`
|
||||||
- Caused 242K+ QSOs to be parsed as 1 giant record with fields overwriting each other
|
- Caused 242K+ QSOs to be parsed as 1 giant record with fields overwriting each other
|
||||||
|
|||||||
@@ -401,7 +401,7 @@ export async function getUserQSOs(userId, filters = {}, options = {}) {
|
|||||||
*/
|
*/
|
||||||
export async function getQSOStats(userId) {
|
export async function getQSOStats(userId) {
|
||||||
const allQSOs = await db.select().from(qsos).where(eq(qsos.userId, userId));
|
const allQSOs = await db.select().from(qsos).where(eq(qsos.userId, userId));
|
||||||
const confirmed = allQSOs.filter((q) => q.lotwQslRstatus === 'Y');
|
const confirmed = allQSOs.filter((q) => q.lotwQslRstatus === 'Y' || q.dclQslRstatus === 'Y');
|
||||||
|
|
||||||
const uniqueEntities = new Set();
|
const uniqueEntities = new Set();
|
||||||
const uniqueBands = new Set();
|
const uniqueBands = new Set();
|
||||||
|
|||||||
Reference in New Issue
Block a user