From e4defa51ce6f124a76fc369c862c64553f7a0114 Mon Sep 17 00:00:00 2001 From: k0st1x Date: Fri, 20 Apr 2018 15:42:49 +0300 Subject: fixes issue — do not collect tags from commented/quoted lines --- .../java/com/juick/service/TagServiceImpl.java | 25 +++++++++++----------- 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'juick-server-jdbc/src/main/java/com/juick') diff --git a/juick-server-jdbc/src/main/java/com/juick/service/TagServiceImpl.java b/juick-server-jdbc/src/main/java/com/juick/service/TagServiceImpl.java index 403dac09..63e07bd2 100644 --- a/juick-server-jdbc/src/main/java/com/juick/service/TagServiceImpl.java +++ b/juick-server-jdbc/src/main/java/com/juick/service/TagServiceImpl.java @@ -224,20 +224,21 @@ public class TagServiceImpl extends BaseJdbcService implements TagService { @Override public List fromString(final String txt, final boolean tagsOnly) { Pattern tagsPattern = tagsOnly ? TAGS_PATTERN1 : TAGS_PATTERN2; - - if (tagsPattern.matcher(txt).matches()) { - Matcher tagMatcher = TAG_PATTERN.matcher(txt); - - List tags = new ArrayList<>(); - - // TODO: process readonly, private, friends, public - while (tagMatcher.find()) { - for (int i = 1; i <= tagMatcher.groupCount(); i++) - tags.add(getTag(tagMatcher.group(i), true)); + List tags = new ArrayList<>(); + for (String line : txt.split("\n")) { + if (line.startsWith(">")) + continue; + if (tagsPattern.matcher(line).matches()) { + Matcher tagMatcher = TAG_PATTERN.matcher(line); + + // TODO: process readonly, private, friends, public + while (tagMatcher.find()) { + for (int i = 1; i <= tagMatcher.groupCount(); i++) + tags.add(getTag(tagMatcher.group(i), true)); + } } - return tags; } - return Collections.emptyList(); + return tags; } @Transactional(readOnly = true) -- cgit v1.2.3