fix: improve cw decoding with qrm

This commit is contained in:
2026-06-20 02:25:53 +02:00
parent 32878c17be
commit 2228816057
3 changed files with 87 additions and 74 deletions
+19 -25
View File
@@ -6096,37 +6096,31 @@ func (a *App) extShouldUpload(svc extsvc.Service, id int64) bool {
// tells the frontend to refresh that row's confirmation columns.
func (a *App) markExtUploaded(svc extsvc.Service, id int64, logID string) {
date := time.Now().UTC().Format("20060102")
// Use a fresh background context, NOT a.ctx: this stamp often runs during
// the on-close upload, and a.ctx is cancelled as the app shuts down — which
// would silently abort the UPDATE and leave the QSO at "R" forever despite a
// successful upload.
ctx := context.Background()
if a.qso == nil {
return
}
var err error
switch svc {
case extsvc.ServiceQRZ:
if a.qso != nil {
if err := a.qso.MarkQRZUploaded(a.ctx, id, date); err != nil {
applog.Printf("extsvc: mark qrz uploaded %d: %v", id, err)
}
}
err = a.qso.MarkQRZUploaded(ctx, id, date)
case extsvc.ServiceClublog:
if a.qso != nil {
if err := a.qso.MarkClublogUploaded(a.ctx, id, date); err != nil {
applog.Printf("extsvc: mark clublog uploaded %d: %v", id, err)
}
}
err = a.qso.MarkClublogUploaded(ctx, id, date)
case extsvc.ServiceLoTW:
if a.qso != nil {
if err := a.qso.MarkLoTWUploaded(a.ctx, id, date); err != nil {
applog.Printf("extsvc: mark lotw uploaded %d: %v", id, err)
}
}
err = a.qso.MarkLoTWUploaded(ctx, id, date)
case extsvc.ServiceHRDLog:
if a.qso != nil {
if err := a.qso.MarkHRDLogUploaded(a.ctx, id, date); err != nil {
applog.Printf("extsvc: mark hrdlog uploaded %d: %v", id, err)
}
}
err = a.qso.MarkHRDLogUploaded(ctx, id, date)
case extsvc.ServiceEQSL:
if a.qso != nil {
if err := a.qso.MarkEQSLSent(a.ctx, id, date); err != nil {
applog.Printf("extsvc: mark eqsl sent %d: %v", id, err)
}
}
err = a.qso.MarkEQSLSent(ctx, id, date)
}
if err != nil {
applog.Printf("extsvc: mark %s uploaded %d failed: %v", svc, id, err)
} else {
applog.Printf("extsvc: marked %s QSO %d as sent", svc, id)
}
if a.ctx != nil {
wruntime.EventsEmit(a.ctx, "extsvc:uploaded", map[string]any{