if a already queued item is selected, it is moved to the front

This commit is contained in:
eyjhb 2025-02-08 23:56:56 +01:00
parent 6e4419dd61
commit aad6ef5d72
Signed by: eyjhb
GPG key ID: 609F508E3239F920

View file

@ -1,7 +1,6 @@
package cmd
import (
"errors"
"fmt"
"regexp"
"strings"
@ -103,13 +102,19 @@ func (m *playerModel) View() string {
func (m *playerModel) queue(f feedEntry) error {
// check if already exists
// TODO: handle actually showing errros?
for _, e := range m.playQueue {
queueIndex := -1
for i, e := range m.playQueue {
if e.ID == f.ID {
return errors.New("already exists")
queueIndex = i
}
}
m.playQueue = append(m.playQueue, f)
if queueIndex >= 0 && len(m.playQueue) > 1 {
m.playQueue = append([]feedEntry{f}, append(m.playQueue[:queueIndex], m.playQueue[queueIndex+1:]...)...)
} else {
m.playQueue = append(m.playQueue, f)
}
if len(m.playQueue) == 1 && m.mpv.IsPlaying() == false {
m.currentlyPlaying = &m.playQueue[0]