mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
display error messages
This commit is contained in:
@@ -43,6 +43,13 @@ public class FeedFetcher {
|
||||
HttpResponse response = httpclient.execute(httpget);
|
||||
HttpEntity entity = response.getEntity();
|
||||
String content = EntityUtils.toString(entity, "UTF-8");
|
||||
String extractedUrl = extractFeedUrl(content);
|
||||
if (extractedUrl != null) {
|
||||
httpget = new HttpGet(feedUrl);
|
||||
response = httpclient.execute(httpget);
|
||||
entity = response.getEntity();
|
||||
content = EntityUtils.toString(entity, "UTF-8");
|
||||
}
|
||||
feed = parser.parse(feedUrl, content);
|
||||
} catch (Exception e) {
|
||||
throw new FeedException(e.getMessage(), e);
|
||||
@@ -52,7 +59,7 @@ public class FeedFetcher {
|
||||
return feed;
|
||||
}
|
||||
|
||||
public String extractFeedUrl(String html) {
|
||||
private String extractFeedUrl(String html) {
|
||||
String foundUrl = null;
|
||||
|
||||
Document doc = Jsoup.parse(html);
|
||||
|
||||
@@ -27,11 +27,11 @@ public class FeedParser {
|
||||
@SuppressWarnings("unchecked")
|
||||
public Feed parse(String feedUrl, String xml) throws FeedException {
|
||||
Feed feed = new Feed();
|
||||
feed.setUrl(feedUrl);
|
||||
feed.setLastUpdated(Calendar.getInstance().getTime());
|
||||
|
||||
try {
|
||||
SyndFeed rss = new SyndFeedInput().build(new StringReader(xml));
|
||||
feed.setUrl(rss.getLink() != null ? rss.getLink() : feedUrl);
|
||||
feed.setTitle(rss.getTitle());
|
||||
List<SyndEntry> items = rss.getEntries();
|
||||
for (SyndEntry item : items) {
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.google.common.collect.Lists;
|
||||
@SuppressWarnings("serial")
|
||||
public class Entries implements Serializable {
|
||||
private String name;
|
||||
private String message;
|
||||
private List<Entry> entries = Lists.newArrayList();
|
||||
|
||||
public String getName() {
|
||||
@@ -26,4 +27,12 @@ public class Entries implements Serializable {
|
||||
this.entries = entries;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ public class EntriesREST extends AbstractREST {
|
||||
getUser(), Long.valueOf(id));
|
||||
if (subscription != null) {
|
||||
entries.setName(subscription.getTitle());
|
||||
entries.setMessage(subscription.getFeed().getMessage());
|
||||
entries.getEntries().addAll(
|
||||
buildEntries(subscription, offset, limit, unreadOnly));
|
||||
}
|
||||
|
||||
@@ -53,7 +53,15 @@ public class SubscriptionsREST extends AbstractREST {
|
||||
Preconditions.checkNotNull(req.getTitle());
|
||||
Preconditions.checkNotNull(req.getUrl());
|
||||
|
||||
Feed feed = feedService.findByUrl(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 feed = feedService.findByUrl(fetchedFeed.getUrl());
|
||||
if (feed == null) {
|
||||
feed = new Feed();
|
||||
feed.setUrl(req.getUrl());
|
||||
|
||||
Reference in New Issue
Block a user