import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
return false;
}
- private Article toArticle(String link, SyndEntry entry, SyndFeed feed, String lang) {
+ private Instant getArticleInstant(SyndEntry entry) {
+ Date date;
+
+ date = entry.getUpdatedDate();
+ if (date == null)
+ date = entry.getPublishedDate();
+
+ if (date == null)
+ return Instant.now();
+
+ return date.toInstant();
+ }
+
+ private Article toArticle(String link, SyndEntry entry, SyndFeed feed, String lang, Instant instant) {
String desc, title, thumbnail, feedTitle, str;
Date date;
List<String> entities;
desc = null;
LOG.severe("No description for " + feedTitle + " - " + title);
}
-
- date = entry.getPublishedDate();
- if (date == null)
- date = entry.getUpdatedDate();
- if (date == null)
- LOG.severe("The article " + feedTitle + " - " + title + " does not have a date");
-
-
+
entities = new ArrayList<>();
if (desc != null && lang.equals("en"))
try {
LOG.log(Level.SEVERE, "Cannot classify " + feedTitle, e1);
}
- return new Article(link, title, desc, thumbnail, date, feedTitle, entities.toArray(new String[0]));
+ return new Article(link, title, desc, thumbnail, instant, feedTitle, entities.toArray(new String[0]));
}
private void addArticles(Category cat, SyndFeed feed) {
continue ;
}
- a = ArticleStore.singleton.getArticle(link, ()->toArticle(link, entry, feed, cat.getLanguage()));
+ final Instant instant = getArticleInstant(entry);
+
+ if (config.isObsolete(instant))
+ continue ;
+
+ a = ArticleStore.singleton.getArticle(link, ()->toArticle(link, entry, feed, cat.getLanguage(), instant));
synchronized (articles) {
articles.add(a);