subscribe by website and parse html for feed url

This commit is contained in:
Athou
2013-04-01 09:16:24 +02:00
parent ca1cbc09ca
commit c8b587a94b
3 changed files with 5 additions and 11 deletions

View File

@@ -45,10 +45,11 @@ public class FeedFetcher {
String content = EntityUtils.toString(entity, "UTF-8"); String content = EntityUtils.toString(entity, "UTF-8");
String extractedUrl = extractFeedUrl(content); String extractedUrl = extractFeedUrl(content);
if (extractedUrl != null) { if (extractedUrl != null) {
httpget = new HttpGet(feedUrl); httpget = new HttpGet(extractedUrl);
response = httpclient.execute(httpget); response = httpclient.execute(httpget);
entity = response.getEntity(); entity = response.getEntity();
content = EntityUtils.toString(entity, "UTF-8"); content = EntityUtils.toString(entity, "UTF-8");
feedUrl = extractedUrl;
} }
feed = parser.parse(feedUrl, content); feed = parser.parse(feedUrl, content);
} catch (Exception e) { } catch (Exception e) {

View File

@@ -31,7 +31,7 @@ public class FeedParser {
try { try {
SyndFeed rss = new SyndFeedInput().build(new StringReader(xml)); SyndFeed rss = new SyndFeedInput().build(new StringReader(xml));
feed.setUrl(rss.getLink() != null ? rss.getLink() : feedUrl); feed.setUrl(feedUrl);
feed.setTitle(rss.getTitle()); feed.setTitle(rss.getTitle());
List<SyndEntry> items = rss.getEntries(); List<SyndEntry> items = rss.getEntries();
for (SyndEntry item : items) { for (SyndEntry item : items) {

View File

@@ -53,18 +53,11 @@ public class SubscriptionsREST extends AbstractREST {
Preconditions.checkNotNull(req.getTitle()); Preconditions.checkNotNull(req.getTitle());
Preconditions.checkNotNull(req.getUrl()); Preconditions.checkNotNull(req.getUrl());
Feed fetchedFeed = null; Feed fetchedFeed = fetchFeed(req.getUrl());
try {
fetchedFeed = feedFetcher.fetch(req.getUrl());
} catch (FeedException e) {
return Response.status(Status.NOT_FOUND).entity(e.getMessage())
.build();
}
Feed feed = feedService.findByUrl(fetchedFeed.getUrl()); Feed feed = feedService.findByUrl(fetchedFeed.getUrl());
if (feed == null) { if (feed == null) {
feed = new Feed(); feed = new Feed();
feed.setUrl(req.getUrl()); feed.setUrl(fetchedFeed.getUrl());
feedService.save(feed); feedService.save(feed);
} }