Compare commits
2 commits
5b88c53165
...
aad6ef5d72
Author | SHA1 | Date | |
---|---|---|---|
![]() |
aad6ef5d72 | ||
![]() |
6e4419dd61 |
2 changed files with 22 additions and 5 deletions
|
@ -3,6 +3,7 @@ package cmd
|
|||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/charmbracelet/bubbles/list"
|
||||
|
@ -29,7 +30,6 @@ func (fe feedEntry) FilterValue() string { return fmt.Sprintf("%s - %s", fe.Name
|
|||
type feedEntriesModel struct {
|
||||
minifluxClient *miniflux.Client
|
||||
entries list.Model
|
||||
selectedEntry *feedEntry
|
||||
}
|
||||
|
||||
type MsgFetchedEntries []feedEntry
|
||||
|
@ -71,10 +71,11 @@ func (m *feedEntriesModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||
switch msg.String() {
|
||||
case "enter":
|
||||
fnGetSelected := func() tea.Msg {
|
||||
i, ok := m.entries.SelectedItem().(feedEntry)
|
||||
if ok {
|
||||
m.selectedEntry = &i
|
||||
i, _ := m.entries.SelectedItem().(feedEntry)
|
||||
if strings.HasPrefix(i.Name, "[QUEUE]") == false {
|
||||
i.Name = "[QUEUE] " + i.Name
|
||||
}
|
||||
m.entries.SetItem(m.entries.Index(), i)
|
||||
|
||||
return MsgPlayEntry(i)
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package cmd
|
|||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -80,6 +81,7 @@ func (m *playerModel) View() string {
|
|||
// truncate name if needed
|
||||
// name := m.entry.Name
|
||||
name := m.currentlyPlaying.Name
|
||||
name = strings.TrimPrefix(name, "[QUEUE] ")
|
||||
if len(name) > playerMaxTitleLength {
|
||||
name = name[0:playerMaxTitleLength] + "..."
|
||||
}
|
||||
|
@ -98,7 +100,21 @@ func (m *playerModel) View() string {
|
|||
|
||||
// other functions
|
||||
func (m *playerModel) queue(f feedEntry) error {
|
||||
m.playQueue = append(m.playQueue, f)
|
||||
// check if already exists
|
||||
// TODO: handle actually showing errros?
|
||||
queueIndex := -1
|
||||
for i, e := range m.playQueue {
|
||||
if e.ID == f.ID {
|
||||
queueIndex = i
|
||||
}
|
||||
}
|
||||
|
||||
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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue