From e2a9db8056f2b8a964d0fe67d4ab26fee0221c78 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Tue, 10 Mar 2020 07:32:45 +0000 Subject: [PATCH] add an IDLE status to feeds for display purposes --- .../com/muwire/core/filefeeds/FeedFetchStatus.java | 2 +- .../com/muwire/core/filefeeds/FeedManager.groovy | 12 ++++++++++-- .../main/java/com/muwire/core/filefeeds/Feed.java | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/core/src/main/groovy/com/muwire/core/filefeeds/FeedFetchStatus.java b/core/src/main/groovy/com/muwire/core/filefeeds/FeedFetchStatus.java index 7545252e..57bb36f6 100644 --- a/core/src/main/groovy/com/muwire/core/filefeeds/FeedFetchStatus.java +++ b/core/src/main/groovy/com/muwire/core/filefeeds/FeedFetchStatus.java @@ -1,5 +1,5 @@ package com.muwire.core.filefeeds; public enum FeedFetchStatus { - CONNECTING, FETCHING, FINISHED, FAILED + IDLE, CONNECTING, FETCHING, FINISHED, FAILED } diff --git a/core/src/main/groovy/com/muwire/core/filefeeds/FeedManager.groovy b/core/src/main/groovy/com/muwire/core/filefeeds/FeedManager.groovy index ed73a708..ca0d9727 100644 --- a/core/src/main/groovy/com/muwire/core/filefeeds/FeedManager.groovy +++ b/core/src/main/groovy/com/muwire/core/filefeeds/FeedManager.groovy @@ -77,6 +77,8 @@ class FeedManager { feed.setItemsToKeep(parsed.itemsToKeep) feed.setAutoDownload(parsed.autoDownload) + feed.setStatus(FeedFetchStatus.IDLE.name()) + feeds.put(feed.getPublisher(), feed) eventBus.publish(new FeedLoadedEvent(feed : feed)) @@ -115,13 +117,19 @@ class FeedManager { } void onFeedFetchEvent(FeedFetchEvent e) { - if (e.status != FeedFetchStatus.FINISHED) - return + Feed feed = feeds.get(e.host) if (feed == null) { log.severe("Finished fetching non-existent feed " + e.host.getHumanReadableName()) return } + + feed.setStatus(e.status.name()) + + if (e.status != FeedFetchStatus.FINISHED) + return + + feed.setStatus(FeedFetchStatus.IDLE.name()) feed.setLastUpdated(e.getTimestamp()) // save feed items, then save feed persister.submit({saveFeedItems(e.host)} as Runnable) diff --git a/core/src/main/java/com/muwire/core/filefeeds/Feed.java b/core/src/main/java/com/muwire/core/filefeeds/Feed.java index 610dbb5a..6e4f6851 100644 --- a/core/src/main/java/com/muwire/core/filefeeds/Feed.java +++ b/core/src/main/java/com/muwire/core/filefeeds/Feed.java @@ -10,6 +10,7 @@ public class Feed { private long lastUpdated; private int itemsToKeep; private boolean autoDownload; + private String status; public Feed(Persona publisher) { this.publisher = publisher; @@ -51,4 +52,11 @@ public class Feed { return publisher; } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } }