diff options
Diffstat (limited to 'juick-common/src/main/java/com')
-rw-r--r-- | juick-common/src/main/java/com/juick/service/SubscriptionService.java | 2 | ||||
-rw-r--r-- | juick-common/src/main/java/com/juick/util/MessageUtils.java | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/juick-common/src/main/java/com/juick/service/SubscriptionService.java b/juick-common/src/main/java/com/juick/service/SubscriptionService.java index 8132ec10..98ea59e0 100644 --- a/juick-common/src/main/java/com/juick/service/SubscriptionService.java +++ b/juick-common/src/main/java/com/juick/service/SubscriptionService.java @@ -30,7 +30,7 @@ import java.util.List; public interface SubscriptionService { List<String> getJIDSubscribedToUser(int uid, boolean friendsonly); - List<User> getSubscribedUsers(int uid, int mid); + List<User> getSubscribedUsers(int uid, Message msg); List<User> getUsersSubscribedToComments(Message msg, Message reply); diff --git a/juick-common/src/main/java/com/juick/util/MessageUtils.java b/juick-common/src/main/java/com/juick/util/MessageUtils.java index bac24507..4de68cb9 100644 --- a/juick-common/src/main/java/com/juick/util/MessageUtils.java +++ b/juick-common/src/main/java/com/juick/util/MessageUtils.java @@ -68,6 +68,9 @@ public class MessageUtils { private final static String replyNumberRegex = "((?<=\\s)|(?<=\\A))\\/(\\d+)((?=\\s)|(?=\\Z)|(?=\\p{Punct}))"; + private final static String usernameRegex = "((?<=\\s)|(?<=\\A))@([\\w\\-]{2,16})((?=\\s)|(?=\\Z)|(?=\\p{Punct}))"; + private final static Pattern usernamePattern = Pattern.compile(usernameRegex); + public static String formatMessageCode(String msg) { msg = msg.replaceAll("&", "&"); msg = msg.replaceAll("<", "<"); @@ -139,7 +142,7 @@ public class MessageUtils { // @username // <a href="http://juick.com/username/">@username</a> - msg = msg.replaceAll("((?<=\\s)|(?<=\\A))@([\\w\\-]{2,16})((?=\\s)|(?=\\Z)|(?=\\p{Punct}))", "$1<a href=\"https://juick.com/$2/\">@$2</a>$3"); + msg = msg.replaceAll(usernameRegex, "$1<a href=\"https://juick.com/$2/\">@$2</a>$3"); // (http://juick.com/last?page=2) // (<a href="http://juick.com/last?page=2" rel="nofollow">juick.com</a>) @@ -301,4 +304,12 @@ public class MessageUtils { } return input; } + public static List<String> getMentions(Message msg) { + Matcher usernameMatcher = usernamePattern.matcher(msg.getText()); + List<String> result = new ArrayList<>(); + while (usernameMatcher.find()) { + result.add(usernameMatcher.group()); + } + return result; + } } |