diff options
author | 2018-03-22 12:09:35 +0300 | |
---|---|---|
committer | 2018-03-22 12:09:35 +0300 | |
commit | 17e72bb8c612e34ec3aac56dd906bd9fefc2bc7c (patch) | |
tree | f84400450dea9a77ef741062ddf71bbb0535d6b4 /juick-server/src/main/java/com/juick/server/TelegramBotManager.java | |
parent | 679731ebbea77a7d361a53bb8280d1869c2a95d3 (diff) |
server: event listeners are beans
Diffstat (limited to 'juick-server/src/main/java/com/juick/server/TelegramBotManager.java')
-rw-r--r-- | juick-server/src/main/java/com/juick/server/TelegramBotManager.java | 69 |
1 files changed, 30 insertions, 39 deletions
diff --git a/juick-server/src/main/java/com/juick/server/TelegramBotManager.java b/juick-server/src/main/java/com/juick/server/TelegramBotManager.java index 9e056476..6987fa27 100644 --- a/juick-server/src/main/java/com/juick/server/TelegramBotManager.java +++ b/juick-server/src/main/java/com/juick/server/TelegramBotManager.java @@ -86,10 +86,6 @@ public class TelegramBotManager { private static final String MSG_LINK = "🔗"; - private ApplicationListener<LikeEvent> onLike; - private ApplicationListener<SubscribeEvent> onSubscribe; - private ApplicationListener<MessageEvent> onMessage; - @PostConstruct public void init() { if (StringUtils.isBlank(telegramToken)) { @@ -105,41 +101,6 @@ public class TelegramBotManager { } catch (Exception e) { logger.warn("couldn't initialize telegram bot", e); } - onMessage = event -> { - com.juick.Message jmsg = event.getMessage(); - String msgUrl = formatUrl(jmsg); - if (jmsg.getMid() > 0 && jmsg.getRid() == 0) { - String msg = String.format("[%s](%s) %s", MSG_LINK, msgUrl, formatPost(jmsg, true)); - - List<Long> users = telegramService.getTelegramIdentifiers(subscriptionService.getSubscribedUsers(jmsg.getUser().getUid(), jmsg.getMid())); - List<Long> chats = telegramService.getChats(); - // registered subscribed users - - users.forEach(c -> telegramNotify(c, msg, MessageUtils.attachmentUrl(jmsg))); - // anonymous - chats.stream().filter(u -> telegramService.getUser(u) == 0).forEach(c -> telegramNotify(c, msg, MessageUtils.attachmentUrl(jmsg))); - } else if (jmsg.getRid() > 0) { - com.juick.Message op = messagesService.getMessage(jmsg.getMid()); - String fmsg = String.format("[%s](%s) %s", MSG_LINK, msgUrl, formatPost(jmsg, true)); - telegramService.getTelegramIdentifiers( - subscriptionService.getUsersSubscribedToComments(op, jmsg) - ).forEach(c -> telegramNotify(c, fmsg, MessageUtils.attachmentUrl(jmsg))); - } - }; - onLike = event -> { - User liker = event.getUser(); - com.juick.Message message = event.getMessage(); - telegramService.getTelegramIdentifiers(Collections.singletonList(message.getUser())) - .forEach(c -> telegramNotify(c, String.format("%s recommends your post", - MessageUtils.getMarkdownUser(liker)),null)); - }; - onSubscribe = event -> { - User subscriber = event.getUser(); - User target = event.getToUser(); - telegramService.getTelegramIdentifiers(Collections.singletonList(target)) - .forEach(c -> telegramNotify(c, String.format("%s subscribed to your blog", - MessageUtils.getMarkdownUser(subscriber)), null)); - }; } public void processUpdate(String data) throws Exception { @@ -338,4 +299,34 @@ public class TelegramBotManager { } }); } + public void processMessage(com.juick.Message jmsg) { + String msgUrl = formatUrl(jmsg); + if (jmsg.getMid() > 0 && jmsg.getRid() == 0) { + String msg = String.format("[%s](%s) %s", MSG_LINK, msgUrl, formatPost(jmsg, true)); + + List<Long> users = telegramService.getTelegramIdentifiers(subscriptionService.getSubscribedUsers(jmsg.getUser().getUid(), jmsg.getMid())); + List<Long> chats = telegramService.getChats(); + // registered subscribed users + + users.forEach(c -> telegramNotify(c, msg, MessageUtils.attachmentUrl(jmsg))); + // anonymous + chats.stream().filter(u -> telegramService.getUser(u) == 0).forEach(c -> telegramNotify(c, msg, MessageUtils.attachmentUrl(jmsg))); + } else if (jmsg.getRid() > 0) { + com.juick.Message op = messagesService.getMessage(jmsg.getMid()); + String fmsg = String.format("[%s](%s) %s", MSG_LINK, msgUrl, formatPost(jmsg, true)); + telegramService.getTelegramIdentifiers( + subscriptionService.getUsersSubscribedToComments(op, jmsg) + ).forEach(c -> telegramNotify(c, fmsg, MessageUtils.attachmentUrl(jmsg))); + } + }; + public void processLike(User liker, com.juick.Message message) { + telegramService.getTelegramIdentifiers(Collections.singletonList(message.getUser())) + .forEach(c -> telegramNotify(c, String.format("%s recommends your post", + MessageUtils.getMarkdownUser(liker)),null)); + }; + public void processSubscribe(User subscriber, User target) { + telegramService.getTelegramIdentifiers(Collections.singletonList(target)) + .forEach(c -> telegramNotify(c, String.format("%s subscribed to your blog", + MessageUtils.getMarkdownUser(subscriber)), null)); + }; } |