diff options
author | k0st1x | 2018-04-20 15:42:49 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2018-04-20 16:16:49 +0300 |
commit | e4defa51ce6f124a76fc369c862c64553f7a0114 (patch) | |
tree | 0c4a2dba9596fb0448feca27cbb3e715a7c68750 /juick-server-jdbc/src/main/java/com/juick/service | |
parent | e858e33bf615e354df8b234418162c8b6a9f2025 (diff) |
fixes issue — do not collect tags from commented/quoted lines
Diffstat (limited to 'juick-server-jdbc/src/main/java/com/juick/service')
-rw-r--r-- | juick-server-jdbc/src/main/java/com/juick/service/TagServiceImpl.java | 25 |
1 files changed, 13 insertions, 12 deletions
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<Tag> 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<Tag> 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<Tag> 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) |