updated
This commit is contained in:
parent
32c5cae17a
commit
1efe2d08e1
4 changed files with 42 additions and 30 deletions
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue