change favicon rest method to accept a subscription id

This commit is contained in:
Athou
2013-06-11 13:01:12 +02:00
parent ee5422a585
commit ddd65f69bf
6 changed files with 49 additions and 44 deletions

View File

@@ -47,8 +47,8 @@ public class Entry implements Serializable {
entry.setFeedId(String.valueOf(status.getSubscription().getId()));
entry.setFeedUrl(status.getSubscription().getFeed().getUrl());
entry.setFeedLink(status.getSubscription().getFeed().getLink());
entry.setIconUrl(FeedUtils.getFaviconUrl(status.getSubscription()
.getFeed().getLink(), publicUrl));
entry.setIconUrl(FeedUtils.getFaviconUrl(status.getSubscription(),
publicUrl));
return entry;
}

View File

@@ -34,7 +34,7 @@ public class Subscription implements Serializable {
sub.setErrorCount(feed.getErrorCount());
sub.setFeedUrl(feed.getUrl());
sub.setFeedLink(feed.getLink());
sub.setIconUrl(FeedUtils.getFaviconUrl(feed.getLink(), publicUrl));
sub.setIconUrl(FeedUtils.getFaviconUrl(subscription, publicUrl));
sub.setLastRefresh(feed.getLastUpdated());
sub.setNextRefresh((feed.getDisabledUntil() != null && feed
.getDisabledUntil().before(now)) ? null : feed

View File

@@ -18,7 +18,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
@@ -31,13 +30,13 @@ import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.http.impl.cookie.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.commafeed.backend.StartupBean;
import com.commafeed.backend.feeds.FeedUtils;
import com.commafeed.backend.feeds.FetchedFeed;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedCategory;
import com.commafeed.backend.model.FeedEntryStatus;
import com.commafeed.backend.model.FeedSubscription;
@@ -253,8 +252,16 @@ public class FeedREST extends AbstractResourceREST {
@GET
@Path("/favicon")
@ApiOperation(value = "Fetch a feed's icon", notes = "Fetch icon of a feed")
public Response getFavicon(@QueryParam("url") String url) {
public Response getFavicon(@QueryParam("id") Long id) {
Preconditions.checkNotNull(id);
FeedSubscription subscription = feedSubscriptionDAO.findById(getUser(),
id);
if (subscription == null) {
return Response.status(Status.NOT_FOUND).build();
}
Feed feed = subscription.getFeed();
String url = feed.getLink() != null ? feed.getLink() : feed.getUrl();
byte[] icon = faviconFetcher.fetch(url);
ResponseBuilder builder = null;