From f9cfea4f799a28ffdbecc66ecc908e82578157ba Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 23 May 2013 10:03:15 +0200 Subject: [PATCH] make sure enclosure urls fit in the database field --- .../com/commafeed/backend/feeds/FeedFetcher.java | 3 +-- .../java/com/commafeed/backend/feeds/FeedUtils.java | 7 +++++++ .../backend/services/FeedSubscriptionService.java | 3 ++- .../backend/services/FeedUpdateService.java | 13 ++++--------- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java b/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java index e322cfcc..763ffd23 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedFetcher.java @@ -50,8 +50,7 @@ public class FeedFetcher { fetchedFeed = parser.parse(feedUrl, result.getContent()); Feed feed = fetchedFeed.getFeed(); feed.setLastModifiedHeader(result.getLastModifiedSince()); - feed.setEtagHeader(org.apache.commons.lang.StringUtils.substring( - result.geteTag(), 0, 255)); + feed.setEtagHeader(FeedUtils.truncate(result.geteTag(), 255)); fetchedFeed.setFetchDuration(result.getDuration()); return fetchedFeed; } diff --git a/src/main/java/com/commafeed/backend/feeds/FeedUtils.java b/src/main/java/com/commafeed/backend/feeds/FeedUtils.java index 17fa576b..3d967b3c 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedUtils.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedUtils.java @@ -20,6 +20,13 @@ import com.google.api.client.util.Lists; public class FeedUtils { + public static String truncate(String string, int length) { + if (string != null) { + string = string.substring(0, Math.min(length, string.length())); + } + return string; + } + public static String guessEncoding(byte[] bytes) { String DEFAULT_ENCODING = "UTF-8"; UniversalDetector detector = new UniversalDetector(null); diff --git a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java index 2c4c1228..b154a72e 100644 --- a/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java +++ b/src/main/java/com/commafeed/backend/services/FeedSubscriptionService.java @@ -9,6 +9,7 @@ import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.feeds.FeedRefreshTaskGiver; +import com.commafeed.backend.feeds.FeedUtils; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedEntry; @@ -69,7 +70,7 @@ public class FeedSubscriptionService { newSubscription = true; } sub.setCategory(category); - sub.setTitle(title.substring(0, Math.min(128, title.length()))); + sub.setTitle(FeedUtils.truncate(title, 128)); feedSubscriptionDAO.saveOrUpdate(sub); if (newSubscription) { diff --git a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java index 67cb7cf0..97256d3d 100644 --- a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java +++ b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java @@ -98,17 +98,12 @@ public class FeedUpdateService { private void handleEntry(Feed feed, FeedEntry entry) { String baseUri = feed.getLink(); FeedEntryContent content = entry.getContent(); - + content.setEnclosureUrl(FeedUtils.truncate(content.getEnclosureUrl(), + 2048)); content.setContent(FeedUtils.handleContent(content.getContent(), baseUri)); String title = FeedUtils.handleContent(content.getTitle(), baseUri); - if (title != null) { - content.setTitle(title.substring(0, Math.min(2048, title.length()))); - } - String author = entry.getAuthor(); - if (author != null) { - entry.setAuthor(author.substring(0, Math.min(128, author.length()))); - } + content.setTitle(FeedUtils.truncate(title, 2048)); + entry.setAuthor(FeedUtils.truncate(entry.getAuthor(), 128)); } - }