playlist retry-exhaustion handling
This commit is contained in:
@@ -11,8 +11,9 @@ import (
|
||||
)
|
||||
|
||||
type playlistFile struct {
|
||||
Entries []playlistFileEntry `json:"entries"`
|
||||
Loop bool `json:"loop"`
|
||||
Entries []playlistFileEntry `json:"entries"`
|
||||
Loop bool `json:"loop"`
|
||||
OnFailure string `json:"on_failure"`
|
||||
}
|
||||
|
||||
type playlistFileEntry struct {
|
||||
@@ -62,6 +63,16 @@ func decodePlaylistFile(reader io.Reader) (playback.Playlist, error) {
|
||||
Entries: make([]playback.PlaylistEntry, len(file.Entries)),
|
||||
Loop: file.Loop,
|
||||
}
|
||||
switch file.OnFailure {
|
||||
case "", "wait":
|
||||
playlist.OnFailure = playback.PlaylistFailureWait
|
||||
case "next":
|
||||
playlist.OnFailure = playback.PlaylistFailureNext
|
||||
default:
|
||||
return playback.Playlist{}, fmt.Errorf(
|
||||
"on_failure %q: %w", file.OnFailure, playback.ErrPlaylistFailurePolicy,
|
||||
)
|
||||
}
|
||||
for index, entry := range file.Entries {
|
||||
duration := time.Duration(0)
|
||||
if entry.Duration != "" {
|
||||
|
||||
Reference in New Issue
Block a user