mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
filter out old entries
This commit is contained in:
@@ -14,7 +14,6 @@ import javax.annotation.PreDestroy;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -119,7 +118,8 @@ public class FeedRefreshUpdater {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
boolean ok = true;
|
boolean ok = true;
|
||||||
if (CollectionUtils.isNotEmpty(entries) && hasWork()) {
|
filterOldEntries();
|
||||||
|
if (entries.isEmpty() == false) {
|
||||||
List<FeedSubscription> subscriptions = feedSubscriptionDAO
|
List<FeedSubscription> subscriptions = feedSubscriptionDAO
|
||||||
.findByFeed(feed);
|
.findByFeed(feed);
|
||||||
for (FeedEntry entry : entries) {
|
for (FeedEntry entry : entries) {
|
||||||
@@ -137,26 +137,30 @@ public class FeedRefreshUpdater {
|
|||||||
taskGiver.giveBack(feed);
|
taskGiver.giveBack(feed);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasWork() {
|
private void filterOldEntries() {
|
||||||
boolean hasWork = false;
|
List<FeedEntry> keep = Lists.newArrayList();
|
||||||
|
|
||||||
List<String> guids = Lists.newArrayList();
|
if (entries != null) {
|
||||||
for (FeedEntry entry : entries) {
|
List<String> guids = Lists.newArrayList();
|
||||||
guids.add(entry.getGuid());
|
for (FeedEntry entry : entries) {
|
||||||
}
|
guids.add(entry.getGuid());
|
||||||
|
}
|
||||||
|
|
||||||
List<FeedEntry> existingEntries = feedEntryDAO.findByGuids(guids);
|
List<FeedEntry> existingEntries = feedEntryDAO
|
||||||
for (FeedEntry entry : entries) {
|
.findByGuids(guids);
|
||||||
FeedEntry foundEntry = FeedUtils.findEntry(existingEntries,
|
|
||||||
entry);
|
for (FeedEntry entry : entries) {
|
||||||
if (foundEntry == null
|
FeedEntry found = FeedUtils.findEntry(existingEntries,
|
||||||
|| FeedUtils.findFeed(foundEntry.getFeeds(), feed) == null) {
|
entry);
|
||||||
hasWork = true;
|
if (found == null
|
||||||
break;
|
|| FeedUtils.findFeed(found.getFeeds(), feed) == null) {
|
||||||
|
keep.add(entry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return hasWork;
|
entries = keep;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean updateEntry(final Feed feed, final FeedEntry entry,
|
private boolean updateEntry(final Feed feed, final FeedEntry entry,
|
||||||
|
|||||||
Reference in New Issue
Block a user