diff options
Diffstat (limited to 'juick-server-jdbc/src')
-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) |