up
This commit is contained in:
@@ -120,6 +120,25 @@ func SingleRecordADIF(q qso.QSO) string {
|
||||
return b.String()
|
||||
}
|
||||
|
||||
// BatchRecordsADIF wraps already-serialised records (each terminated by <EOR>,
|
||||
// e.g. from SingleRecordADIF) in a minimal ADIF document with a standard
|
||||
// header. Used by file-based batch upload APIs such as Club Log's putlogs.php.
|
||||
func BatchRecordsADIF(records []string) string {
|
||||
var b strings.Builder
|
||||
now := time.Now().UTC().Format("20060102 150405")
|
||||
fmt.Fprintf(&b, "<ADIF_VER:%d>%s <PROGRAMID:6>OpsLog <CREATED_TIMESTAMP:15>%s <EOH>\n\n",
|
||||
len(adifVersion), adifVersion, now)
|
||||
for _, r := range records {
|
||||
r = strings.TrimRight(r, "\r\n")
|
||||
if r == "" {
|
||||
continue
|
||||
}
|
||||
b.WriteString(r)
|
||||
b.WriteString("\n")
|
||||
}
|
||||
return b.String()
|
||||
}
|
||||
|
||||
// writeRecord serialises one QSO as ADIF tags terminated by <EOR>.
|
||||
// Empty fields are omitted. MODE/SUBMODE are massaged so a "promoted"
|
||||
// mode (e.g. FT4 stored without a parent) is exported as the canonical
|
||||
|
||||
Reference in New Issue
Block a user