feat(hamlog): read confirmations back from a HAMLOG.online ADIF
Their agent protocol has no download verb, so the return path is a file exported from their site. Running that file through the ordinary ADIF import is the wrong tool and does real damage: it matches on callsign + UTC minute + band + mode, their export is rebuilt from their own database and rarely agrees to the minute, and 'update duplicates' then inserts everything that failed to match -- several hundred copies of contacts already in the log. This path matches only. It stamps the confirmation on QSOs it finds, falls back to the mode-CLASS key for the modes their export renames, and REPORTS what it could not match instead of adding it: an unmatched confirmation is a question about the log, not a contact to create. Also logs and reports how many rows a delete actually removed -- silence there made a delete that did nothing indistinguishable from one that worked.
This commit is contained in:
Vendored
+2
@@ -693,6 +693,8 @@ export function ImportAwardReferencesText(arg1:string,arg2:string):Promise<numbe
|
||||
|
||||
export function ImportAwards():Promise<main.AwardImportResult>;
|
||||
|
||||
export function ImportHamlogConfirmations(arg1:string):Promise<main.HamlogCfmResult>;
|
||||
|
||||
export function InspectAwardImport():Promise<main.AwardImportPreview>;
|
||||
|
||||
export function IsNewUSCounty(arg1:string,arg2:string):Promise<boolean>;
|
||||
|
||||
@@ -1326,6 +1326,10 @@ export function ImportAwards() {
|
||||
return window['go']['main']['App']['ImportAwards']();
|
||||
}
|
||||
|
||||
export function ImportHamlogConfirmations(arg1) {
|
||||
return window['go']['main']['App']['ImportHamlogConfirmations'](arg1);
|
||||
}
|
||||
|
||||
export function InspectAwardImport() {
|
||||
return window['go']['main']['App']['InspectAwardImport']();
|
||||
}
|
||||
|
||||
@@ -2699,6 +2699,28 @@ export namespace main {
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class HamlogCfmResult {
|
||||
total: number;
|
||||
confirmed: number;
|
||||
matched: number;
|
||||
by_class: number;
|
||||
unmatched: number;
|
||||
samples: string[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new HamlogCfmResult(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.total = source["total"];
|
||||
this.confirmed = source["confirmed"];
|
||||
this.matched = source["matched"];
|
||||
this.by_class = source["by_class"];
|
||||
this.unmatched = source["unmatched"];
|
||||
this.samples = source["samples"];
|
||||
}
|
||||
}
|
||||
export class ModePreset {
|
||||
name: string;
|
||||
default_rst_sent?: string;
|
||||
|
||||
Reference in New Issue
Block a user