This commit is contained in:
eyjhb 2025-01-26 22:37:17 +01:00
parent 32c5cae17a
commit 1efe2d08e1
Signed by: eyjhb
GPG key ID: 609F508E3239F920
4 changed files with 42 additions and 30 deletions

View file

@ -12,6 +12,7 @@ import (
)
type feedEntry struct {
ID int64
Name string
Feed string
Link string
@ -35,7 +36,7 @@ type MsgFetchedEntries []feedEntry
type MsgFetchedEntriesError error
func (m *feedEntriesModel) fetchEntries() tea.Msg {
entriesResult, err := m.minifluxClient.CategoryEntries(4, nil)
entriesResult, err := m.minifluxClient.CategoryEntries(4, &miniflux.Filter{Statuses: []string{miniflux.EntryStatusUnread}})
if err != nil {
return MsgFetchedEntriesError(err)
}
@ -43,6 +44,7 @@ func (m *feedEntriesModel) fetchEntries() tea.Msg {
var feedEntries []feedEntry
for _, e := range entriesResult.Entries {
feedEntries = append(feedEntries, feedEntry{
ID: e.ID,
Name: e.Title,
Feed: e.Feed.Title,
Link: e.URL,
@ -65,21 +67,22 @@ func (m *feedEntriesModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case tea.KeyMsg:
switch msg.String() {
case "enter":
fnChangeView := func() tea.Msg { return MsgChangeView(ViewPlayer) }
fnGetSelected := func() tea.Msg {
i, ok := m.entries.SelectedItem().(feedEntry)
if ok {
m.selectedEntry = &i
}
return MsgSelectedItem(i)
return MsgPlayEntry(i)
}
return m, tea.Sequence(fnChangeView, fnGetSelected)
return m, fnGetSelected
}
break
case MsgWatchedEntry:
m.markEntryRead(int64(msg))
case MsgFetchedEntries:
var items []list.Item
for _, e := range msg {
@ -98,3 +101,7 @@ func (m *feedEntriesModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
func (m *feedEntriesModel) View() string {
return m.entries.View()
}
func (m *feedEntriesModel) markEntryRead(entryID int64) {
m.minifluxClient.UpdateEntries([]int64{entryID}, miniflux.EntryStatusRead)
}