aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src')
-rw-r--r--juick-server/src/main/java/com/juick/server/XMPPBot.java21
-rw-r--r--juick-server/src/test/java/com/juick/server/tests/ServerTests.java2
2 files changed, 22 insertions, 1 deletions
diff --git a/juick-server/src/main/java/com/juick/server/XMPPBot.java b/juick-server/src/main/java/com/juick/server/XMPPBot.java
index a07dbe86..6215576a 100644
--- a/juick-server/src/main/java/com/juick/server/XMPPBot.java
+++ b/juick-server/src/main/java/com/juick/server/XMPPBot.java
@@ -517,6 +517,27 @@ public class XMPPBot implements StanzaListener, AutoCloseable {
}
return "No favorite messages, try to \"like\" something ;)";
}
+ @UserCommand(pattern = "^\\!\\s+#(\\d+)", help = "! #12345 - recommend message")
+ public String commandRecommend(User user, Jid from, String... arguments) {
+ int mid = NumberUtils.toInt(arguments[0], 0);
+ if (mid > 0) {
+ com.juick.Message msg = messagesService.getMessage(mid);
+ if (msg != null) {
+ if (msg.getUser() == user) {
+ return "You can't recommend your own messages.";
+ }
+ MessagesService.RecommendStatus status = messagesService.recommendMessage(mid, user.getUid());
+ switch (status) {
+ case Added:
+ return "Message is added to your recommendations";
+ case Deleted:
+ return "Message deleted from your recommendations.";
+ }
+ }
+ return "Message not found";
+ }
+ return "Message not found";
+ }
// TODO: target notification
@UserCommand(pattern = "^(s|u)\\s+\\@(\\S+)$", help = "S @username - subscribe to user" +
"\nU @username - unsubscribe from user", patternFlags = Pattern.CASE_INSENSITIVE)
diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
index fcc1a777..4bf8ac9e 100644
--- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
@@ -385,7 +385,7 @@ public class ServerTests extends AbstractJUnit4SpringContextTests {
public void botCommandsTests() throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {
assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "PING").get(), is("PONG"));
// subscription commands have two lines, others have 1
- assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "help").get().split("\n").length, is(24));
+ assertThat(bot.processCommand(new User(), Jid.of("test@localhost"), "help").get().split("\n").length, is(25));
}
@Test