From d77fcd8ef547df1170b8778f45309cb1ca9c2d00 Mon Sep 17 00:00:00 2001 From: rouggy Date: Tue, 21 Oct 2025 19:27:58 +0200 Subject: [PATCH] up --- TCPClient.go | 2 +- httpserver.go | 3 + spot.go | 2 + spotprocessor.go | 1 - watchlist.go | 3 +- watchlist.json | 362 +++++++++++++++++++++++++---------------------- 6 files changed, 196 insertions(+), 177 deletions(-) diff --git a/TCPClient.go b/TCPClient.go index ab30da9..87e929f 100644 --- a/TCPClient.go +++ b/TCPClient.go @@ -15,7 +15,7 @@ import ( log "github.com/sirupsen/logrus" ) -var spotRe *regexp.Regexp = regexp.MustCompile(`(?i)DX\sde\s([\w\d\-#]+).*?:\s*(\d+\.\d+)\s+([\w\d\/]+)\s+(?:(CW|SSB|FT8|FT4|RTTY|USB|LSB|FM)\s+)?(.+?)\s+(\d{4}Z)`) +var spotRe *regexp.Regexp = regexp.MustCompile(`(?i)DX\sde\s([\w\d\/]+?)(?:-[#\d-]+)?\s*:\s*(\d+\.\d+)\s+([\w\d\/]+)\s+(?:(CW|SSB|FT8|FT4|RTTY|USB|LSB|FM)\s+)?(.+?)\s+(\d{4}Z)`) var defaultLoginRe *regexp.Regexp = regexp.MustCompile("[\\w\\d-_]+ login:") var defaultPasswordRe *regexp.Regexp = regexp.MustCompile("Password:") diff --git a/httpserver.go b/httpserver.go index d6abcfc..8669ade 100644 --- a/httpserver.go +++ b/httpserver.go @@ -773,6 +773,7 @@ func (s *HTTPServer) getWatchlistSpotsWithStatus(w http.ResponseWriter, r *http. for _, pattern := range watchlistCallsigns { if spot.DX == pattern || strings.HasPrefix(spot.DX, pattern) { isInWatchlist = true + Log.Debugf("✅ Watchlist match in API: %s matches pattern %s", spot.DX, pattern) break } } @@ -782,6 +783,8 @@ func (s *HTTPServer) getWatchlistSpotsWithStatus(w http.ResponseWriter, r *http. } } + Log.Debugf("📊 Watchlist spots API returned %d spots", len(relevantSpots)) + type BandModeKey struct { Band string Mode string diff --git a/spot.go b/spot.go index 3d791e9..39001e2 100644 --- a/spot.go +++ b/spot.go @@ -321,6 +321,8 @@ func (spot *TelnetSpot) GuessMode(rawSpot string) { spot.Mode = "FT8" } else if freqInt < 14083 { spot.Mode = "FT4" + } else if freqInt < 14095 { + spot.Mode = "FT8" } else if freqInt < 14112 { spot.Mode = "RTTY" } else { diff --git a/spotprocessor.go b/spotprocessor.go index 4874943..697d074 100644 --- a/spotprocessor.go +++ b/spotprocessor.go @@ -84,7 +84,6 @@ func (sp *SpotProcessor) processSpot(spot TelnetSpot) { if sp.HTTPServer != nil && sp.HTTPServer.Watchlist != nil { if sp.HTTPServer.Watchlist.Matches(flexSpot.DX) { flexSpot.InWatchlist = true - flexSpot.Comment = flexSpot.Comment + " [Watchlist]" // Mark as seen and update last seen time sp.HTTPServer.Watchlist.MarkSeen(flexSpot.DX) diff --git a/watchlist.go b/watchlist.go index 45a1b61..3e90821 100644 --- a/watchlist.go +++ b/watchlist.go @@ -10,8 +10,7 @@ import ( ) type WatchlistEntry struct { - Callsign string `json:"callsign"` - // ✅ NOTES SUPPRIMÉES + Callsign string `json:"callsign"` LastSeen time.Time `json:"lastSeen"` LastSeenStr string `json:"lastSeenStr"` AddedAt time.Time `json:"addedAt"` diff --git a/watchlist.json b/watchlist.json index afa5749..d02bb83 100644 --- a/watchlist.json +++ b/watchlist.json @@ -1,12 +1,60 @@ [ { - "callsign": "9L9L", + "callsign": "PY0FB", "lastSeen": "0001-01-01T00:00:00Z", "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:53.3401773+02:00", + "addedAt": "2025-10-18T17:17:24.3843986+02:00", "spotCount": 0, "playSound": true }, + { + "callsign": "5H3MB", + "lastSeen": "2025-10-20T22:27:00.0920217+02:00", + "lastSeenStr": "20 hours ago", + "addedAt": "2025-10-18T17:18:42.8402097+02:00", + "spotCount": 6, + "playSound": true + }, + { + "callsign": "C5R", + "lastSeen": "2025-10-21T19:27:01.1572273+02:00", + "lastSeenStr": "Just now", + "addedAt": "2025-10-18T17:18:04.5006892+02:00", + "spotCount": 219, + "playSound": true + }, + { + "callsign": "SU0ERA", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:18:45.8848244+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "XT2AW", + "lastSeen": "2025-10-21T04:49:21.3973928+02:00", + "lastSeenStr": "14 hours ago", + "addedAt": "2025-10-18T17:17:27.3839089+02:00", + "spotCount": 69, + "playSound": true + }, + { + "callsign": "3B8M", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:18:32.6851135+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "5K0UA", + "lastSeen": "2025-10-21T19:26:43.7522993+02:00", + "lastSeenStr": "Just now", + "addedAt": "2025-10-18T17:17:53.7390559+02:00", + "spotCount": 437, + "playSound": true + }, { "callsign": "9L8MD", "lastSeen": "0001-01-01T00:00:00Z", @@ -16,11 +64,11 @@ "playSound": true }, { - "callsign": "PJ6Y", - "lastSeen": "2025-10-19T18:26:10.9139291+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:17:47.7237081+02:00", - "spotCount": 319, + "callsign": "E6AD", + "lastSeen": "2025-10-20T20:08:38.1641735+02:00", + "lastSeenStr": "23 hours ago", + "addedAt": "2025-10-18T17:17:40.8765179+02:00", + "spotCount": 459, "playSound": true }, { @@ -32,19 +80,19 @@ "playSound": true }, { - "callsign": "XT2AW", - "lastSeen": "2025-10-19T17:43:24.3788757+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:17:27.3839089+02:00", - "spotCount": 22, + "callsign": "4X6TT", + "lastSeen": "2025-10-19T19:59:28.3446792+02:00", + "lastSeenStr": "1 day ago", + "addedAt": "2025-10-18T17:18:13.335878+02:00", + "spotCount": 1, "playSound": true }, { - "callsign": "PY0FB", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:24.3843986+02:00", - "spotCount": 0, + "callsign": "PJ6Y", + "lastSeen": "2025-10-21T19:25:29.1180452+02:00", + "lastSeenStr": "Just now", + "addedAt": "2025-10-18T17:17:47.7237081+02:00", + "spotCount": 664, "playSound": true }, { @@ -56,29 +104,13 @@ "playSound": true }, { - "callsign": "EL2BG", - "lastSeen": "2025-10-19T18:20:24.2625789+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:18:10.2000017+02:00", - "spotCount": 19, - "playSound": true - }, - { - "callsign": "5R8IC", + "callsign": "9L9L", "lastSeen": "0001-01-01T00:00:00Z", "lastSeenStr": "Never", - "addedAt": "2025-10-19T18:18:58.8382325+02:00", + "addedAt": "2025-10-18T17:18:53.3401773+02:00", "spotCount": 0, "playSound": true }, - { - "callsign": "TJ1GD", - "lastSeen": "2025-10-19T17:30:20.2860148+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:18:27.6004027+02:00", - "spotCount": 11, - "playSound": true - }, { "callsign": "VP2M", "lastSeen": "0001-01-01T00:00:00Z", @@ -87,6 +119,94 @@ "spotCount": 0, "playSound": true }, + { + "callsign": "ZL7IO", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:17:30.7153757+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "5R8IC", + "lastSeen": "2025-10-21T07:25:10.6322383+02:00", + "lastSeenStr": "11 hours ago", + "addedAt": "2025-10-19T18:18:58.8382325+02:00", + "spotCount": 61, + "playSound": true + }, + { + "callsign": "XV9", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:18:24.9155327+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "5J0EA", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:17:51.0758741+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "VP8LP", + "lastSeen": "2025-10-20T22:46:40.9079579+02:00", + "lastSeenStr": "20 hours ago", + "addedAt": "2025-10-18T17:18:49.0576187+02:00", + "spotCount": 21, + "playSound": true + }, + { + "callsign": "EL2BG", + "lastSeen": "2025-10-21T05:41:57.870261+02:00", + "lastSeenStr": "13 hours ago", + "addedAt": "2025-10-18T17:18:10.2000017+02:00", + "spotCount": 22, + "playSound": true + }, + { + "callsign": "YJ0CA", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:17:33.3921665+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "TZ4AM", + "lastSeen": "2025-10-21T01:27:17.0524499+02:00", + "lastSeenStr": "17 hours ago", + "addedAt": "2025-10-18T17:19:00.3154177+02:00", + "spotCount": 46, + "playSound": true + }, + { + "callsign": "H44MS", + "lastSeen": "2025-10-20T19:29:23.5019952+02:00", + "lastSeenStr": "23 hours ago", + "addedAt": "2025-10-18T17:16:49.1572859+02:00", + "spotCount": 1, + "playSound": true + }, + { + "callsign": "TJ1GD", + "lastSeen": "2025-10-21T07:18:19.1978587+02:00", + "lastSeenStr": "12 hours ago", + "addedAt": "2025-10-18T17:18:27.6004027+02:00", + "spotCount": 41, + "playSound": true + }, + { + "callsign": "C5LT", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:18:07.2442738+02:00", + "spotCount": 0, + "playSound": true + }, { "callsign": "C8K", "lastSeen": "0001-01-01T00:00:00Z", @@ -95,132 +215,12 @@ "spotCount": 0, "playSound": true }, - { - "callsign": "E51MWA", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:43.6895454+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "4X6TT", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:13.335878+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "VP8LP", - "lastSeen": "2025-10-19T18:19:58.5335162+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:18:49.0576187+02:00", - "spotCount": 17, - "playSound": true - }, - { - "callsign": "5X2I", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:14.6598633+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "SU0ERA", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:45.8848244+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "C5R", - "lastSeen": "2025-10-19T18:19:31.7179248+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:18:04.5006892+02:00", - "spotCount": 99, - "playSound": true - }, - { - "callsign": "5J0EA", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:51.0758741+02:00", - "spotCount": 0, - "playSound": true - }, { "callsign": "FW5K", - "lastSeen": "2025-10-19T17:35:31.6022206+02:00", - "lastSeenStr": "Just now", + "lastSeen": "2025-10-21T07:17:42.220076+02:00", + "lastSeenStr": "12 hours ago", "addedAt": "2025-10-18T17:17:37.9061157+02:00", - "spotCount": 75, - "playSound": true - }, - { - "callsign": "XV9", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:24.9155327+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "3B8M", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:32.6851135+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "YJ0CA", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:33.3921665+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "C5LT", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:07.2442738+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "TZ4AM", - "lastSeen": "2025-10-19T13:54:22.6033432+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:19:00.3154177+02:00", - "spotCount": 27, - "playSound": true - }, - { - "callsign": "H44MS", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:16:49.1572859+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "5H3MB", - "lastSeen": "0001-01-01T00:00:00Z", - "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:18:42.8402097+02:00", - "spotCount": 0, - "playSound": true - }, - { - "callsign": "V85NPV", - "lastSeen": "2025-10-19T15:42:31.3912491+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:18:15.8781583+02:00", - "spotCount": 2, + "spotCount": 111, "playSound": true }, { @@ -232,27 +232,43 @@ "playSound": true }, { - "callsign": "5K0UA", - "lastSeen": "2025-10-19T18:24:42.7186896+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:17:53.7390559+02:00", - "spotCount": 116, + "callsign": "V85NPV", + "lastSeen": "2025-10-19T15:42:31.3912491+02:00", + "lastSeenStr": "2 days ago", + "addedAt": "2025-10-18T17:18:15.8781583+02:00", + "spotCount": 2, "playSound": true }, { - "callsign": "E6AD", - "lastSeen": "2025-10-19T18:25:32.690685+02:00", - "lastSeenStr": "Just now", - "addedAt": "2025-10-18T17:17:40.8765179+02:00", - "spotCount": 385, - "playSound": true - }, - { - "callsign": "ZL7IO", + "callsign": "5X2I", "lastSeen": "0001-01-01T00:00:00Z", "lastSeenStr": "Never", - "addedAt": "2025-10-18T17:17:30.7153757+02:00", + "addedAt": "2025-10-18T17:17:14.6598633+02:00", "spotCount": 0, "playSound": true + }, + { + "callsign": "E51MWA", + "lastSeen": "0001-01-01T00:00:00Z", + "lastSeenStr": "Never", + "addedAt": "2025-10-18T17:17:43.6895454+02:00", + "spotCount": 0, + "playSound": true + }, + { + "callsign": "DP0GVN", + "lastSeen": "2025-10-21T07:20:49.6910744+02:00", + "lastSeenStr": "12 hours ago", + "addedAt": "2025-10-20T07:00:51.7088369+02:00", + "spotCount": 77, + "playSound": true + }, + { + "callsign": "D2A", + "lastSeen": "2025-10-21T07:21:58.7128427+02:00", + "lastSeenStr": "11 hours ago", + "addedAt": "2025-10-20T22:11:35.4767205+02:00", + "spotCount": 76, + "playSound": true } ] \ No newline at end of file