From c8b587a94bdc2da3db6f0771aa01be4abeb827b9 Mon Sep 17 00:00:00 2001 From: Athou Date: Mon, 1 Apr 2013 09:16:24 +0200 Subject: [PATCH] subscribe by website and parse html for feed url --- .../java/com/commafeed/backend/feeds/FeedFetcher.java | 3 ++- .../java/com/commafeed/backend/feeds/FeedParser.java | 2 +- .../frontend/rest/resources/SubscriptionsREST.java | 11 ++--------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java b/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java index 0bc40ba6..46617410 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java @@ -45,10 +45,11 @@ public class FeedFetcher { String content = EntityUtils.toString(entity, "UTF-8"); String extractedUrl = extractFeedUrl(content); if (extractedUrl != null) { - httpget = new HttpGet(feedUrl); + httpget = new HttpGet(extractedUrl); response = httpclient.execute(httpget); entity = response.getEntity(); content = EntityUtils.toString(entity, "UTF-8"); + feedUrl = extractedUrl; } feed = parser.parse(feedUrl, content); } catch (Exception e) { diff --git a/src/main/java/com/commafeed/backend/feeds/FeedParser.java b/src/main/java/com/commafeed/backend/feeds/FeedParser.java index fd5506ab..e155d993 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedParser.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedParser.java @@ -31,7 +31,7 @@ public class FeedParser { try { SyndFeed rss = new SyndFeedInput().build(new StringReader(xml)); - feed.setUrl(rss.getLink() != null ? rss.getLink() : feedUrl); + feed.setUrl(feedUrl); feed.setTitle(rss.getTitle()); List items = rss.getEntries(); for (SyndEntry item : items) { diff --git a/src/main/java/com/commafeed/frontend/rest/resources/SubscriptionsREST.java b/src/main/java/com/commafeed/frontend/rest/resources/SubscriptionsREST.java index 348eed13..f3fafe8b 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/SubscriptionsREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/SubscriptionsREST.java @@ -53,18 +53,11 @@ public class SubscriptionsREST extends AbstractREST { Preconditions.checkNotNull(req.getTitle()); Preconditions.checkNotNull(req.getUrl()); - Feed fetchedFeed = null; - try { - fetchedFeed = feedFetcher.fetch(req.getUrl()); - } catch (FeedException e) { - return Response.status(Status.NOT_FOUND).entity(e.getMessage()) - .build(); - } - + Feed fetchedFeed = fetchFeed(req.getUrl()); Feed feed = feedService.findByUrl(fetchedFeed.getUrl()); if (feed == null) { feed = new Feed(); - feed.setUrl(req.getUrl()); + feed.setUrl(fetchedFeed.getUrl()); feedService.save(feed); }