]> code.octet-stream.net Git - broadcaster/commitdiff
Handle timestamps with no seconds cleanly
authorThomas Karpiniec <tom.karpiniec@outlook.com>
Wed, 28 May 2025 12:31:33 +0000 (22:31 +1000)
committerThomas Karpiniec <tom.karpiniec@outlook.com>
Wed, 28 May 2025 12:31:33 +0000 (22:31 +1000)
internal/protocol/protocol.go
radio/main.go
server/main.go

index 7b0a1197ffd461f7561c7648696b67e9c813fabd..f8b420be7193a78b4796f22297d64a196b439812 100644 (file)
@@ -7,8 +7,9 @@ import (
 )
 
 const (
 )
 
 const (
-       StartTimeFormat = "2006-01-02T15:04:05"
-       LocalTimeFormat = "Mon _2 Jan 2006 15:04:05"
+       StartTimeFormat     = "2006-01-02T15:04"
+       StartTimeFormatSecs = "2006-01-02T15:04:05"
+       LocalTimeFormat     = "Mon _2 Jan 2006 15:04:05"
 
        // Radio to server
 
 
        // Radio to server
 
index 22658a38633fab0219c54e1fee37a80c4e44e95f..85d15b1d715e6046b60dd1366da574acbf8ff15e 100644 (file)
@@ -227,7 +227,10 @@ func playlistWorker(ch <-chan []protocol.PlaylistSpec, stop <-chan bool) {
                        }
                        var soonestTime time.Time
                        for _, v := range specs {
                        }
                        var soonestTime time.Time
                        for _, v := range specs {
-                               t, err := time.ParseInLocation(protocol.StartTimeFormat, v.StartTime, loc)
+                               t, err := time.ParseInLocation(protocol.StartTimeFormatSecs, v.StartTime, loc)
+                               if err != nil {
+                                       t, err = time.ParseInLocation(protocol.StartTimeFormat, v.StartTime, loc)
+                               }
                                if err != nil {
                                        log.Println("Error parsing start time", err)
                                        continue
                                if err != nil {
                                        log.Println("Error parsing start time", err)
                                        continue
index ca921686bf97f9d3ad3db9d0961ca4c9d47962b3..363b708fff85764c912f1e71ae4238a9f91305ef 100644 (file)
@@ -15,12 +15,12 @@ import (
        "strings"
        "time"
 
        "strings"
        "time"
 
+       "code.octet-stream.net/broadcaster/internal/protocol"
        "golang.org/x/crypto/bcrypt"
        "golang.org/x/net/websocket"
 )
 
 const version = "v1.1.0"
        "golang.org/x/crypto/bcrypt"
        "golang.org/x/net/websocket"
 )
 
 const version = "v1.1.0"
-const formatString = "2006-01-02T15:04:05"
 
 //go:embed templates/*
 var content embed.FS
 
 //go:embed templates/*
 var content embed.FS
@@ -519,7 +519,7 @@ func editPlaylistPage(w http.ResponseWriter, r *http.Request, id int, user User)
        if id == 0 {
                data.Playlist.Enabled = true
                data.Playlist.Name = "New Playlist"
        if id == 0 {
                data.Playlist.Enabled = true
                data.Playlist.Name = "New Playlist"
-               data.Playlist.StartTime = time.Now().Format(formatString)
+               data.Playlist.StartTime = time.Now().Format(protocol.StartTimeFormatSecs)
                data.Entries = append(data.Entries, PlaylistEntry{})
        } else {
                playlist, err := db.GetPlaylist(id)
                data.Entries = append(data.Entries, PlaylistEntry{})
        } else {
                playlist, err := db.GetPlaylist(id)
@@ -544,7 +544,10 @@ func submitPlaylist(w http.ResponseWriter, r *http.Request) {
                if err != nil {
                        return
                }
                if err != nil {
                        return
                }
-               _, err = time.Parse(formatString, r.Form.Get("playlistStartTime"))
+               _, err = time.Parse(protocol.StartTimeFormatSecs, r.Form.Get("playlistStartTime"))
+               if err != nil {
+                       _, err = time.Parse(protocol.StartTimeFormat, r.Form.Get("playlistStartTime"))
+               }
                if err != nil {
                        return
                }
                if err != nil {
                        return
                }