From 268fb26220b796df94308b51ae9f8e6401662aca Mon Sep 17 00:00:00 2001 From: Athou Date: Mon, 24 Jun 2013 10:18:07 +0200 Subject: [PATCH] strip html from entry titles (closes #329) --- .../com/commafeed/backend/feeds/FeedUtils.java | 17 +++++++++++------ .../backend/services/FeedUpdateService.java | 7 +++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedUtils.java b/src/main/java/com/commafeed/backend/feeds/FeedUtils.java index 33e9d804..fdc4bcd8 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedUtils.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedUtils.java @@ -40,7 +40,7 @@ import com.steadystate.css.parser.CSSOMParser; public class FeedUtils { protected static Logger log = LoggerFactory.getLogger(FeedUtils.class); - + private static final List ALLOWED_IFRAME_CSS_RULES = Arrays.asList( "height", "width", "border"); private static final char[] DISALLOWED_IFRAME_CSS_RULE_CHARACTERS = new char[] { @@ -105,7 +105,8 @@ public class FeedUtils { return encoding; } - public static String handleContent(String content, String baseUri) { + public static String handleContent(String content, String baseUri, + boolean keepTextOnly) { if (StringUtils.isNotBlank(content)) { baseUri = StringUtils.trimToEmpty(baseUri); Whitelist whitelist = new Whitelist(); @@ -158,8 +159,12 @@ public class FeedUtils { clean.outputSettings(new OutputSettings().escapeMode( EscapeMode.base).prettyPrint(false)); - content = clean.body().html(); - + Element body = clean.body(); + if (keepTextOnly) { + content = body.text(); + } else { + content = body.html(); + } } return content; } @@ -375,8 +380,8 @@ public class FeedUtils { for (Element element : elements) { String href = element.attr("src"); if (href != null) { - String proxy = removeTrailingSlash(publicUrl) + "/rest/server/proxy?u=" - + imageProxyEncoder(href); + String proxy = removeTrailingSlash(publicUrl) + + "/rest/server/proxy?u=" + imageProxyEncoder(href); element.attr("src", proxy); } } diff --git a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java index 7190d9d5..72589193 100644 --- a/src/main/java/com/commafeed/backend/services/FeedUpdateService.java +++ b/src/main/java/com/commafeed/backend/services/FeedUpdateService.java @@ -43,11 +43,10 @@ public class FeedUpdateService { FeedEntry update = null; if (existing == null) { FeedEntryContent content = entry.getContent(); - content.setTitle(FeedUtils.truncate( - FeedUtils.handleContent(content.getTitle(), feed.getLink()), - 2048)); + content.setTitle(FeedUtils.truncate(FeedUtils.handleContent( + content.getTitle(), feed.getLink(), true), 2048)); content.setContent(FeedUtils.handleContent(content.getContent(), - feed.getLink())); + feed.getLink(), false)); entry.setInserted(Calendar.getInstance().getTime()); entry.getFeeds().add(feed);