X-Git-Url: https://git.wpitchoune.net/gitweb/?p=pnews.git;a=blobdiff_plain;f=war%2Fsrc%2Fmain%2Fjava%2Fpnews%2Fservlet%2FArticleProvider.java;h=3e90d11320ae4024a3d1124c340ce9a6df0dec81;hp=48c551b277ba6ebbdcd9797a02881e1b17521134;hb=386f46525e32212ac5f3653135a6539c1b2639eb;hpb=27591c1933180a43423c78cc8cda28a3da1bfccf diff --git a/war/src/main/java/pnews/servlet/ArticleProvider.java b/war/src/main/java/pnews/servlet/ArticleProvider.java index 48c551b..3e90d11 100644 --- a/war/src/main/java/pnews/servlet/ArticleProvider.java +++ b/war/src/main/java/pnews/servlet/ArticleProvider.java @@ -27,15 +27,17 @@ import com.rometools.rome.io.XmlReader; import pnews.Article; import pnews.Category; +import pnews.Feed; public class ArticleProvider { - public final static ArticleProvider singleton = new ArticleProvider(); private static final Logger LOG = Logger.getLogger(ArticleProvider.class.getName()); private final Map> articlesByCategory = new HashMap<>(); private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); + private final Config config; - private ArticleProvider() { - for (Category cat:Category.values()) + public ArticleProvider(Config config) { + this.config = config; + for (Category cat: config.getCategories()) scheduler.scheduleAtFixedRate(new Refresher(cat), 2, 600, TimeUnit.SECONDS); } @@ -47,8 +49,6 @@ public class ArticleProvider { return new SyndFeedInput().build(r); } - - private List
getArticlesForUpdate(Category cat) { List
result; @@ -117,7 +117,7 @@ public class ArticleProvider { feedTitle = feed.getTitle().trim(); - LOG.info("addArticles " + cat.getId() + " " + feedTitle + " number of articles: " + feed.getEntries().size()); + LOG.info("addArticles " + cat.getName() + " " + feedTitle + " number of articles: " + feed.getEntries().size()); for (SyndEntry entry: feed.getEntries()) { String link = entry.getLink().trim(); @@ -147,21 +147,21 @@ public class ArticleProvider { } } - LOG.info("addArticles done " + cat.getId()); + LOG.info("addArticles done " + cat.getName()); } private void retrieveArticles(Category cat) throws IllegalArgumentException, MalformedURLException, FeedException, IOException { - String[] feeds; + List feeds; - feeds = Config.getFeedsByCategory().get(cat); + feeds = config.getFeedsByCategory().get(cat); if (feeds != null) - for (String str: feeds) + for (Feed f: feeds) try { - addArticles(cat, getSyndFeed(str)); + addArticles(cat, getSyndFeed(f.getURL())); } catch (Throwable e) { LOG.log(Level.SEVERE, - "retrieveArticles failure " + cat.getId() + " " + str, + "retrieveArticles failure " + cat.getName() + " " + f.toString(), e); } else @@ -193,7 +193,7 @@ public class ArticleProvider { @Override public void run() { - LOG.info("refresher "+ category.getId()); + LOG.info("refresher "+ category.getName()); try { retrieveArticles(category); @@ -201,7 +201,7 @@ public class ArticleProvider { LOG.log(Level.SEVERE, "refresher failure", e); } - LOG.info("refresher "+ category.getId() + " done"); + LOG.info("refresher "+ category.getName() + " done"); } } }