adds visual indication for queue + no duplication in queue
This commit is contained in:
parent
5b88c53165
commit
6e4419dd61
2 changed files with 16 additions and 4 deletions
|
@ -3,6 +3,7 @@ package cmd
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"slices"
|
"slices"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/charmbracelet/bubbles/list"
|
"github.com/charmbracelet/bubbles/list"
|
||||||
|
@ -29,7 +30,6 @@ func (fe feedEntry) FilterValue() string { return fmt.Sprintf("%s - %s", fe.Name
|
||||||
type feedEntriesModel struct {
|
type feedEntriesModel struct {
|
||||||
minifluxClient *miniflux.Client
|
minifluxClient *miniflux.Client
|
||||||
entries list.Model
|
entries list.Model
|
||||||
selectedEntry *feedEntry
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type MsgFetchedEntries []feedEntry
|
type MsgFetchedEntries []feedEntry
|
||||||
|
@ -71,10 +71,11 @@ func (m *feedEntriesModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||||
switch msg.String() {
|
switch msg.String() {
|
||||||
case "enter":
|
case "enter":
|
||||||
fnGetSelected := func() tea.Msg {
|
fnGetSelected := func() tea.Msg {
|
||||||
i, ok := m.entries.SelectedItem().(feedEntry)
|
i, _ := m.entries.SelectedItem().(feedEntry)
|
||||||
if ok {
|
if strings.HasPrefix(i.Name, "[QUEUE]") == false {
|
||||||
m.selectedEntry = &i
|
i.Name = "[QUEUE] " + i.Name
|
||||||
}
|
}
|
||||||
|
m.entries.SetItem(m.entries.Index(), i)
|
||||||
|
|
||||||
return MsgPlayEntry(i)
|
return MsgPlayEntry(i)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -80,6 +82,7 @@ func (m *playerModel) View() string {
|
||||||
// truncate name if needed
|
// truncate name if needed
|
||||||
// name := m.entry.Name
|
// name := m.entry.Name
|
||||||
name := m.currentlyPlaying.Name
|
name := m.currentlyPlaying.Name
|
||||||
|
name = strings.TrimPrefix(name, "[QUEUE] ")
|
||||||
if len(name) > playerMaxTitleLength {
|
if len(name) > playerMaxTitleLength {
|
||||||
name = name[0:playerMaxTitleLength] + "..."
|
name = name[0:playerMaxTitleLength] + "..."
|
||||||
}
|
}
|
||||||
|
@ -98,6 +101,14 @@ func (m *playerModel) View() string {
|
||||||
|
|
||||||
// other functions
|
// other functions
|
||||||
func (m *playerModel) queue(f feedEntry) error {
|
func (m *playerModel) queue(f feedEntry) error {
|
||||||
|
// check if already exists
|
||||||
|
// TODO: handle actually showing errros?
|
||||||
|
for _, e := range m.playQueue {
|
||||||
|
if e.ID == f.ID {
|
||||||
|
return errors.New("already exists")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m.playQueue = append(m.playQueue, f)
|
m.playQueue = append(m.playQueue, f)
|
||||||
|
|
||||||
if len(m.playQueue) == 1 && m.mpv.IsPlaying() == false {
|
if len(m.playQueue) == 1 && m.mpv.IsPlaying() == false {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue