From a6d789ee4450ba363d0a683d8878c5ba78aea7d5 Mon Sep 17 00:00:00 2001 From: ze0s <43699394+zze0s@users.noreply.github.com> Date: Sat, 2 Sep 2023 23:06:21 +0200 Subject: [PATCH] feat(feeds): show next run (#1074) --- internal/domain/feed.go | 1 + internal/feed/service.go | 16 +++++++++++++++- web/src/screens/settings/Feed.tsx | 18 ++++++++++++++---- web/src/types/Feed.d.ts | 1 + 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/internal/domain/feed.go b/internal/domain/feed.go index 00b5fdf..1b4f93c 100644 --- a/internal/domain/feed.go +++ b/internal/domain/feed.go @@ -52,6 +52,7 @@ type Feed struct { Indexerr FeedIndexer `json:"-"` LastRun time.Time `json:"last_run"` LastRunData string `json:"last_run_data"` + NextRun time.Time `json:"next_run"` } type FeedSettingsJSON struct { diff --git a/internal/feed/service.go b/internal/feed/service.go index 8329cbf..262ec05 100644 --- a/internal/feed/service.go +++ b/internal/feed/service.go @@ -91,7 +91,21 @@ func (s *service) FindByIndexerIdentifier(ctx context.Context, indexer string) ( } func (s *service) Find(ctx context.Context) ([]domain.Feed, error) { - return s.repo.Find(ctx) + feeds, err := s.repo.Find(ctx) + if err != nil { + return nil, err + } + + for i, feed := range feeds { + t, err := s.scheduler.GetNextRun(feedKey{id: feed.ID}.ToString()) + if err != nil { + continue + } + feed.NextRun = t + feeds[i] = feed + } + + return feeds, nil } func (s *service) GetCacheByID(ctx context.Context, feedId int) ([]domain.FeedCacheItem, error) { diff --git a/web/src/screens/settings/Feed.tsx b/web/src/screens/settings/Feed.tsx index fcc10e7..f7b9258 100644 --- a/web/src/screens/settings/Feed.tsx +++ b/web/src/screens/settings/Feed.tsx @@ -118,7 +118,7 @@ function FeedSettings() { Enabled {sortedFeeds.getSortIndicator("enabled")}
sortedFeeds.requestSort("name")}> Name {sortedFeeds.getSortIndicator("name")}
@@ -128,10 +128,15 @@ function FeedSettings() { Type {sortedFeeds.getSortIndicator("type")}
sortedFeeds.requestSort("last_run")}> Last run {sortedFeeds.getSortIndicator("last_run")}
+
sortedFeeds.requestSort("next_run")}> + Next run {sortedFeeds.getSortIndicator("next_run")} +
{sortedFeeds.items.map((feed) => ( @@ -193,7 +198,7 @@ function ListItem({ feed }: ListItemProps) { /> -
+
{feed.name} {feed.indexer} @@ -202,11 +207,16 @@ function ListItem({ feed }: ListItemProps) {
{ImplementationBadges[feed.type.toLowerCase()]}
-
+
{IsEmptyDate(feed.last_run)}
+
+ + {IsEmptyDate(feed.next_run)} + +