diff options
Diffstat (limited to 'juick-server/src/main/java/com/juick/server')
-rw-r--r-- | juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java | 121 | ||||
-rw-r--r-- | juick-server/src/main/java/com/juick/server/protocol/ProtocolReply.java | 17 |
2 files changed, 55 insertions, 83 deletions
diff --git a/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java b/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java index 111a434a..6f61e4d6 100644 --- a/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java +++ b/juick-server/src/main/java/com/juick/server/protocol/JuickProtocol.java @@ -11,6 +11,7 @@ import com.juick.server.helpers.TagStats; import com.juick.server.protocol.annotation.UserCommand; import com.juick.service.*; import com.juick.util.TagUtils; +import org.apache.commons.lang3.math.NumberUtils; import javax.inject.Inject; import java.lang.reflect.InvocationTargetException; @@ -88,8 +89,7 @@ public class JuickProtocol { String body = input.substring(TagUtils.toString(tags).length()); int mid = messagesService.createMessage(user.getUid(), body, null, tags); subscriptionService.subscribeMessage(mid, user.getUid()); - return new ProtocolReply("New message posted.\n#" + mid + " " + baseUri + mid, - Optional.of(json.writeValueAsString(Collections.singletonList(messagesService.getMessage(mid))))); + return new ProtocolReply("New message posted.\n#" + mid + " " + baseUri + mid); } @UserCommand(pattern = "^#(\\++)$", help = "#+ - Show last Juick messages (#++ - second page, ...)") @@ -99,7 +99,7 @@ public class JuickProtocol { List<Integer> mids = messagesService.getAll(user.getUid(), page); List<Message> messages = messagesService.getMessages(mids); return new ProtocolReply("Last messages: \n" + String.join("\n", messages.stream().map(PlainTextFormatter::formatPost) - .collect(Collectors.toList())), Optional.of(json.writeValueAsString(messages))); + .collect(Collectors.toList()))); } @UserCommand(pattern = "^\\s*bl\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, @@ -130,7 +130,7 @@ public class JuickProtocol { if (txt.isEmpty()) { txt = "You don't have any users or tags in your blacklist."; } - return new ProtocolReply(txt, Optional.empty()); + return new ProtocolReply(txt); } @UserCommand(pattern = "^bl\\s+@([^\\s\\n\\+]+)", patternFlags = Pattern.CASE_INSENSITIVE, @@ -140,12 +140,12 @@ public class JuickProtocol { if (blUser != null) { PrivacyQueriesService.PrivacyResult result = privacyQueriesService.blacklistUser(from, blUser); if (result == PrivacyQueriesService.PrivacyResult.Added) { - return new ProtocolReply("User added to your blacklist", Optional.empty()); + return new ProtocolReply("User added to your blacklist"); } else { - return new ProtocolReply("User removed from your blacklist", Optional.empty()); + return new ProtocolReply("User removed from your blacklist"); } } - return new ProtocolReply("User not found", Optional.empty()); + return new ProtocolReply("User not found"); } @UserCommand(pattern = "^bl\\s\\*(\\S+)$", patternFlags = Pattern.CASE_INSENSITIVE, @@ -157,13 +157,13 @@ public class JuickProtocol { if (tag != null) { PrivacyQueriesService.PrivacyResult result = privacyQueriesService.blacklistTag(from, tag); if (result == PrivacyQueriesService.PrivacyResult.Added) { - return new ProtocolReply("Tag added to your blacklist", Optional.empty()); + return new ProtocolReply("Tag added to your blacklist"); } else { - return new ProtocolReply("Tag removed from your blacklist", Optional.empty()); + return new ProtocolReply("Tag removed from your blacklist"); } } } - return new ProtocolReply("Tag not found", Optional.empty()); + return new ProtocolReply("Tag not found"); } @UserCommand(pattern = "@", help = "@ - Show recommendations and popular personal blogs") @@ -187,7 +187,7 @@ public class JuickProtocol { } else { msg.append("\nNo top users. Empty DB? ;)"); } - return new ProtocolReply(msg.toString(), Optional.empty()); + return new ProtocolReply(msg.toString()); } @UserCommand(pattern = "\\*", help = "* - Show your tags") @@ -196,7 +196,7 @@ public class JuickProtocol { String msg = "Your tags: (tag - messages)\n" + tags.stream() .map(t -> String.format("\n*%s - %d", t.getTag().getName(), t.getUsageCount())).collect(Collectors.joining()); - return new ProtocolReply(msg, Optional.empty()); + return new ProtocolReply(msg); } @UserCommand(pattern = "!", help = "! - Show your favorite messages") @@ -205,9 +205,9 @@ public class JuickProtocol { if (mids.size() > 0) { List<Message> messages = messagesService.getMessages(mids); return new ProtocolReply("Favorite messages: \n" + String.join("\n", messages.stream().map(PlainTextFormatter::formatPost) - .collect(Collectors.toList())), Optional.of(json.writeValueAsString(messages))); + .collect(Collectors.toList()))); } - return new ProtocolReply("No favorite messages, try to \"like\" something ;)", Optional.empty()); + return new ProtocolReply("No favorite messages, try to \"like\" something ;)"); } @UserCommand(pattern = "^\\@([^\\s\\n\\+]+)(\\+?)$", @@ -220,31 +220,25 @@ public class JuickProtocol { List<Message> messages = messagesService.getMessages(mids); return new ProtocolReply(String.format("Last messages from @%s:\n%s", arguments[0], String.join("\n", messages.stream() - .map(PlainTextFormatter::formatPost).collect(Collectors.toList()))), - Optional.of(json.writeValueAsString(messages))); + .map(PlainTextFormatter::formatPost).collect(Collectors.toList())))); } - return new ProtocolReply("User not found", Optional.empty()); + return new ProtocolReply("User not found"); } @UserCommand(pattern = "^\\s*d\\s*\\#([0-9]+)\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, help = "D #12345 - delete the message") public ProtocolReply commandDel(User user, String... args) { - try { - int mid = Integer.parseInt(args[0]); - if (messagesService.deleteMessage(user.getUid(), mid)) { - return new ProtocolReply(String.format("Message %s deleted", mid), Optional.empty()); - } - } catch (NumberFormatException e) { - return new ProtocolReply("Error", Optional.empty()); + int mid = NumberUtils.toInt(args[0], 0); + if (messagesService.deleteMessage(user.getUid(), mid)) { + return new ProtocolReply(String.format("Message %s deleted", mid)); } - return new ProtocolReply("Error", Optional.empty()); + return new ProtocolReply("Error"); } @UserCommand(pattern = "^\\s*login\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, help = "LOGIN - log in to Juick website") public ProtocolReply commandLogin(User user, String... arguments) { - return new ProtocolReply(baseUri + "?" + userService.getHashByUID(user.getUid()), - Optional.empty()); + return new ProtocolReply(baseUri + "?" + userService.getHashByUID(user.getUid())); } @UserCommand(pattern = "^(#+)$", help = "# - Show last messages from your feed (## - second page, ...)") @@ -255,8 +249,7 @@ public class JuickProtocol { List<Message> messages = messagesService.getMessages(mids); // TODO: add instructions for empty feed return new ProtocolReply("Your feed: \n" + String.join("\n", - messages.stream().map(PlainTextFormatter::formatPost).collect(Collectors.toList())), - Optional.of(json.writeValueAsString(messages))); + messages.stream().map(PlainTextFormatter::formatPost).collect(Collectors.toList()))); } @UserCommand(pattern = "^\\s*(on|off)\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, @@ -273,17 +266,16 @@ public class JuickProtocol { } if (userService.setActiveStatusForJID(user.getJid(), newStatus)) { - return new ProtocolReply(retValUpdated, Optional.empty()); + return new ProtocolReply(retValUpdated); } else { - return new ProtocolReply(String.format("Subscriptions status for %s was not changed", user.getJid()), - Optional.empty()); + return new ProtocolReply(String.format("Subscriptions status for %s was not changed", user.getJid())); } } @UserCommand(pattern = "^\\s*ping\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, help = "PING - returns you a PONG") public ProtocolReply commandPing(User user, String[] input) { - return new ProtocolReply("PONG", Optional.empty()); + return new ProtocolReply("PONG"); } @UserCommand(pattern = "^\\@(\\S+)\\s+([\\s\\S]+)$", help = "@username message - send PM to username") @@ -344,9 +336,9 @@ public class JuickProtocol { */ } if (ret == 200) { - return new ProtocolReply("Private message sent", Optional.empty()); + return new ProtocolReply("Private message sent"); } else { - return new ProtocolReply("Error " + ret, Optional.empty()); + return new ProtocolReply("Error " + ret); } } @@ -357,7 +349,7 @@ public class JuickProtocol { try { mid = Integer.parseInt(arguments[0]); } catch (NumberFormatException e) { - return new ProtocolReply("Error", Optional.empty()); + return new ProtocolReply("Error"); } Message msg = messagesService.getMessage(mid); if (msg != null) { @@ -365,13 +357,11 @@ public class JuickProtocol { List<Message> replies = messagesService.getReplies(mid); replies.add(0, msg); return new ProtocolReply(String.join("\n", - replies.stream().map(PlainTextFormatter::formatPost).collect(Collectors.toList())), - Optional.of(json.writeValueAsString(replies))); + replies.stream().map(PlainTextFormatter::formatPost).collect(Collectors.toList()))); } - return new ProtocolReply(PlainTextFormatter.formatPost(msg), - Optional.of(json.writeValueAsString(Collections.singletonList(msg)))); + return new ProtocolReply(PlainTextFormatter.formatPost(msg)); } - return new ProtocolReply("Message not found", Optional.empty()); + return new ProtocolReply("Message not found"); } @UserCommand(pattern = "^(#|\\.)(\\d+)((\\.|\\-|\\/)(\\d+))?\\s([\\s\\S]+)", help = "#1234 *tag *tag2 - edit tags\n#1234 text - reply to message") @@ -380,27 +370,21 @@ public class JuickProtocol { try { mid = Integer.parseInt(args[1]); } catch (NumberFormatException e) { - return new ProtocolReply("Error", Optional.empty()); - } - int rid; - try { - rid = Integer.parseInt(args[4]); - } catch (NumberFormatException e) { - rid = 0; + return new ProtocolReply("Error"); } + int rid = NumberUtils.toInt(args[4], 0); String txt = args[5]; List<Tag> messageTags = tagService.fromString(txt, true); if (messageTags.size() > 0) { if (user.getUid() != messagesService.getMessageAuthor(mid).getUid()) { - return new ProtocolReply("It is not your message", Optional.empty()); + return new ProtocolReply("It is not your message"); } tagService.updateTags(mid, messageTags); - return new ProtocolReply("Tags are updated", Optional.empty()); + return new ProtocolReply("Tags are updated"); } else { int newrid = messagesService.createReply(mid, rid, user.getUid(), txt, null); return new ProtocolReply("Reply posted.\n#" + mid + "/" + newrid + " " - + baseUri + mid + "/" + newrid, - Optional.of(json.writeValueAsString(Collections.singletonList(messagesService.getReply(mid, newrid))))); + + baseUri + mid + "/" + newrid); } } @@ -408,23 +392,18 @@ public class JuickProtocol { patternFlags = Pattern.CASE_INSENSITIVE) public ProtocolReply commandSubscribeMessage(User user, String... args) { boolean subscribe = args[0].equalsIgnoreCase("s"); - int mid; - try { - mid = Integer.parseInt(args[1]); - } catch (NumberFormatException e) { - return new ProtocolReply("Error", Optional.empty()); - } + int mid = NumberUtils.toInt(args[1], 0); if (subscribe) { if (subscriptionService.subscribeMessage(mid, user.getUid())) { - return new ProtocolReply("Subscribed", Optional.empty()); + return new ProtocolReply("Subscribed"); } } else { if (subscriptionService.unSubscribeMessage(mid, user.getUid())) { - return new ProtocolReply("Unsubscribed from #" + mid, Optional.empty()); + return new ProtocolReply("Unsubscribed from #" + mid); } - return new ProtocolReply("You was not subscribed to #" + mid, Optional.empty()); + return new ProtocolReply("You was not subscribed to #" + mid); } - return new ProtocolReply("Error", Optional.empty()); + return new ProtocolReply("Error"); } @UserCommand(pattern = "^(s|u)\\s+\\@(\\S+)$", help = "S @user - subscribe to user's posts", patternFlags = Pattern.CASE_INSENSITIVE) @@ -434,18 +413,18 @@ public class JuickProtocol { if (toUser.getUid() > 0) { if (subscribe) { if (subscriptionService.subscribeUser(user, toUser)) { - return new ProtocolReply("Subscribed", Optional.empty()); + return new ProtocolReply("Subscribed"); // TODO: notification // TODO: already subscribed case } } else { if (subscriptionService.unSubscribeUser(user, toUser)) { - return new ProtocolReply("Unsubscribed from @" + toUser.getName(), Optional.empty()); + return new ProtocolReply("Unsubscribed from @" + toUser.getName()); } - return new ProtocolReply("You was not subscribed to @" + toUser.getName(), Optional.empty()); + return new ProtocolReply("You was not subscribed to @" + toUser.getName()); } } - return new ProtocolReply("Error", Optional.empty()); + return new ProtocolReply("Error"); } @UserCommand(pattern = "^(s|u)\\s+\\*(\\S+)$", help = "S *tag - subscribe to tag" + "\nU *tag - unsubscribe from tag", patternFlags = Pattern.CASE_INSENSITIVE) @@ -454,15 +433,15 @@ public class JuickProtocol { Tag tag = tagService.getTag(args[1], true); if (subscribe) { if (subscriptionService.subscribeTag(user, tag)) { - return new ProtocolReply("Subscribed", Optional.empty()); + return new ProtocolReply("Subscribed"); } } else { if (subscriptionService.unSubscribeTag(user, tag)) { - return new ProtocolReply("Unsubscribed from " + tag.getName(), Optional.empty()); + return new ProtocolReply("Unsubscribed from " + tag.getName()); } - return new ProtocolReply("You was not subscribed to " + tag.getName(), Optional.empty()); + return new ProtocolReply("You was not subscribed to " + tag.getName()); } - return new ProtocolReply("Error", Optional.empty()); + return new ProtocolReply("Error"); } @UserCommand(pattern = "^\\s*help\\s*$", patternFlags = Pattern.CASE_INSENSITIVE, @@ -472,7 +451,7 @@ public class JuickProtocol { .filter(m -> m.isAnnotationPresent(UserCommand.class)) .map(m -> m.getAnnotation(UserCommand.class).help()) .collect(Collectors.toList()); - return new ProtocolReply(String.join("\n", commandsHelp), Optional.empty()); + return new ProtocolReply(String.join("\n", commandsHelp)); } public String getBaseUri() { diff --git a/juick-server/src/main/java/com/juick/server/protocol/ProtocolReply.java b/juick-server/src/main/java/com/juick/server/protocol/ProtocolReply.java index d9d36a5d..f3483187 100644 --- a/juick-server/src/main/java/com/juick/server/protocol/ProtocolReply.java +++ b/juick-server/src/main/java/com/juick/server/protocol/ProtocolReply.java @@ -1,23 +1,16 @@ package com.juick.server.protocol; -import java.util.Optional; - /** * Created by vitalyster on 08.04.2016. */ public class ProtocolReply { - private Optional<String> json; - private String description; + private String result; - public ProtocolReply(String text, Optional<String> json) { - this.description = text; - this.json = json; - } - public String getDescription() { - return description; + public ProtocolReply(String text) { + this.result = text; } - public Optional<String> getJson() { - return json; + public String getResult() { + return result; } } |