From 358a6029a19e7cd201dd60138805c1fe252c8acc Mon Sep 17 00:00:00 2001 From: Athou Date: Sun, 26 Oct 2014 18:13:09 +0100 Subject: [PATCH] cache default (missing) favicon too --- src/main/app/images/default_favicon.gif | Bin 238 -> 0 bytes .../backend/service/FeedService.java | 22 +++++++++++++++--- .../commafeed/frontend/resource/FeedREST.java | 8 +------ src/main/resources/images/default_favicon.ico | Bin 0 -> 1406 bytes 4 files changed, 20 insertions(+), 10 deletions(-) delete mode 100644 src/main/app/images/default_favicon.gif create mode 100644 src/main/resources/images/default_favicon.ico diff --git a/src/main/app/images/default_favicon.gif b/src/main/app/images/default_favicon.gif deleted file mode 100644 index de44d0147d2aff925688e6d02059e06779b3e874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZ?wbhEHb6krfwI3mojWACr-Ne>Pm|Fw4WkNL~Kzkc(7*_yAPzx?043$Sq>;O!RURXkgVy zV04(o*6gyVYK7IA#f=Qp1$2aXIAT=d@8q&E<*Tx>=&&$y@^cDSD={*1aZQ{Mqcweo Iup)ys0HV`Xs{jB1 diff --git a/src/main/java/com/commafeed/backend/service/FeedService.java b/src/main/java/com/commafeed/backend/service/FeedService.java index dbe85094..99fa629b 100644 --- a/src/main/java/com/commafeed/backend/service/FeedService.java +++ b/src/main/java/com/commafeed/backend/service/FeedService.java @@ -1,27 +1,40 @@ package com.commafeed.backend.service; +import java.io.IOException; import java.util.Date; import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; -import lombok.RequiredArgsConstructor; - import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.io.IOUtils; import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.favicon.AbstractFaviconFetcher; import com.commafeed.backend.feed.FeedUtils; import com.commafeed.backend.model.Feed; -@RequiredArgsConstructor(onConstructor = @__({ @Inject })) @Singleton public class FeedService { private final FeedDAO feedDAO; private final Set faviconFetchers; + private byte[] defaultFavicon; + + @Inject + public FeedService(FeedDAO feedDAO, Set faviconFetchers) { + this.feedDAO = feedDAO; + this.faviconFetchers = faviconFetchers; + + try { + defaultFavicon = IOUtils.toByteArray(getClass().getResource("/images/default_favicon.ico")); + } catch (IOException e) { + throw new RuntimeException("could not load default favicon", e); + } + } + public synchronized Feed findOrCreate(String url) { String normalized = FeedUtils.normalizeURL(url); Feed feed = feedDAO.findByUrl(normalized); @@ -46,6 +59,9 @@ public class FeedService { break; } } + if (icon == null) { + icon = defaultFavicon; + } return icon; } diff --git a/src/main/java/com/commafeed/frontend/resource/FeedREST.java b/src/main/java/com/commafeed/frontend/resource/FeedREST.java index d7038fa7..7dc5cbba 100644 --- a/src/main/java/com/commafeed/frontend/resource/FeedREST.java +++ b/src/main/java/com/commafeed/frontend/resource/FeedREST.java @@ -324,13 +324,7 @@ public class FeedREST { Feed feed = subscription.getFeed(); byte[] icon = feedService.fetchFavicon(feed); - ResponseBuilder builder = null; - if (icon == null) { - String baseUrl = FeedUtils.removeTrailingSlash(config.getApplicationSettings().getPublicUrl()); - builder = Response.status(Status.MOVED_PERMANENTLY).location(URI.create(baseUrl + "/images/default_favicon.gif")); - } else { - builder = Response.ok(icon, "image/x-icon"); - } + ResponseBuilder builder = Response.ok(icon, "image/x-icon"); CacheControl cacheControl = new CacheControl(); cacheControl.setMaxAge(2592000); diff --git a/src/main/resources/images/default_favicon.ico b/src/main/resources/images/default_favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f2b63c26eabd713029b522de275947e041a5b59d GIT binary patch literal 1406 zcmeHHElXEPsf=51zo!~lX%QGl((z6N#x?6GnRyR3D-5fR-_%y@Y{K{-6c^6nPZ z_!3{EGlbbI78fIg`3I`W7@wy@+#ekvgn;+Q2ln5XmQQ#-ImTi(#mm(>s`*<}|J9)n z`w8?D_~#SY?iL}EL?mn@)sS=~eC{_zlTb2EJ+zS