package qso import ( "strings" ) type QSO struct { Call string Band string Mode string Freq string QSODate string TimeOn string RSTR string RSTS string Country string GridSquare string StationCallsign string } func NewQSO() QSO { return *&QSO{} } func (q *QSO) ExtractQSOData(msg []string) { for _, entry := range msg { entry = strings.Trim(entry, " ") switch { case strings.Contains(entry, "FREQ:"): q.Freq = "<" + entry case strings.Contains(entry, "CALL:"): q.Call = "<" + entry case strings.Contains(entry, "BAND:"): q.Band = "<" + entry case strings.Contains(entry, "MODE:"): q.Mode = "<" + entry case strings.Contains(entry, "QSO_DATE:"): if q.QSODate == "" { q.QSODate = "<" + entry } case strings.Contains(entry, "TIME_ON:"): q.TimeOn = "<" + entry case strings.Contains(entry, "RST_RCVD:"): q.RSTR = "<" + entry case strings.Contains(entry, "RST_SENT:"): q.RSTS = "<" + entry case strings.Contains(entry, "COUNTRY:"): q.Country = "<" + entry case strings.Contains(entry, "GRIDSQUARE:"): q.GridSquare = "<" + entry case strings.Contains(entry, "STATION_CALLSIGN:"): q.StationCallsign = "<" + entry } } }