mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
use entry date if more recent than feed published date
This commit is contained in:
@@ -72,7 +72,6 @@ public class FeedParser {
|
|||||||
fetchedFeed.setTopic(findSelf(rss));
|
fetchedFeed.setTopic(findSelf(rss));
|
||||||
feed.setUrl(feedUrl);
|
feed.setUrl(feedUrl);
|
||||||
feed.setLink(rss.getLink());
|
feed.setLink(rss.getLink());
|
||||||
feed.setLastPublishedDate(validateDate(rss.getPublishedDate()));
|
|
||||||
List<SyndEntry> items = rss.getEntries();
|
List<SyndEntry> items = rss.getEntries();
|
||||||
for (SyndEntry item : items) {
|
for (SyndEntry item : items) {
|
||||||
FeedEntry entry = new FeedEntry();
|
FeedEntry entry = new FeedEntry();
|
||||||
@@ -90,7 +89,7 @@ public class FeedParser {
|
|||||||
entry.setUrl(FeedUtils.truncate(
|
entry.setUrl(FeedUtils.truncate(
|
||||||
FeedUtils.toAbsoluteUrl(item.getLink(), feed.getLink()),
|
FeedUtils.toAbsoluteUrl(item.getLink(), feed.getLink()),
|
||||||
2048));
|
2048));
|
||||||
entry.setUpdated(validateDate(getUpdateDate(item)));
|
entry.setUpdated(validateDate(getEntryUpdateDate(item)));
|
||||||
entry.setAuthor(FeedUtils.truncate(item.getAuthor(), 128));
|
entry.setAuthor(FeedUtils.truncate(item.getAuthor(), 128));
|
||||||
|
|
||||||
FeedEntryContent content = new FeedEntryContent();
|
FeedEntryContent content = new FeedEntryContent();
|
||||||
@@ -108,9 +107,15 @@ public class FeedParser {
|
|||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
}
|
}
|
||||||
Date lastEntryDate = null;
|
Date lastEntryDate = null;
|
||||||
|
|
||||||
if (!entries.isEmpty()) {
|
if (!entries.isEmpty()) {
|
||||||
Long timestamp = FeedUtils.getSortedTimestamps(entries).get(0);
|
List<Long> sortedTimestamps = FeedUtils
|
||||||
|
.getSortedTimestamps(entries);
|
||||||
|
Long timestamp = sortedTimestamps.get(0);
|
||||||
lastEntryDate = new Date(timestamp);
|
lastEntryDate = new Date(timestamp);
|
||||||
|
|
||||||
|
feed.setLastPublishedDate(getFeedPublishedDate(
|
||||||
|
validateDate(rss.getPublishedDate()), entries));
|
||||||
}
|
}
|
||||||
fetchedFeed.setLastEntryDate(lastEntryDate);
|
fetchedFeed.setLastEntryDate(lastEntryDate);
|
||||||
|
|
||||||
@@ -146,10 +151,19 @@ public class FeedParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Date getUpdateDate(SyndEntry item) {
|
private Date getFeedPublishedDate(Date publishedDate,
|
||||||
|
List<FeedEntry> entries) {
|
||||||
|
for (FeedEntry entry : entries) {
|
||||||
|
if (entry.getUpdated().getTime() > publishedDate.getTime()) {
|
||||||
|
publishedDate = entry.getUpdated();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return publishedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date getEntryUpdateDate(SyndEntry item) {
|
||||||
Date date = item.getUpdatedDate();
|
Date date = item.getUpdatedDate();
|
||||||
if (date == null) {
|
if (date == null) {
|
||||||
date = item.getPublishedDate();
|
date = item.getPublishedDate();
|
||||||
|
|||||||
Reference in New Issue
Block a user