mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
subscribe by website and parse html for feed url
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user