From 751b2a9b0fc523d17c9f7a410fadcc82eaaa1fb7 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 27 Sep 2017 15:19:06 +0300 Subject: api: Telegram posting --- .../src/main/java/com/juick/api/ApiServer.java | 37 +++++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) (limited to 'juick-api/src/main/java/com/juick/api/ApiServer.java') diff --git a/juick-api/src/main/java/com/juick/api/ApiServer.java b/juick-api/src/main/java/com/juick/api/ApiServer.java index 4305387b..a5bf5d38 100644 --- a/juick-api/src/main/java/com/juick/api/ApiServer.java +++ b/juick-api/src/main/java/com/juick/api/ApiServer.java @@ -16,16 +16,23 @@ */ package com.juick.api; +import com.juick.User; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import rocks.xmpp.addr.Jid; import rocks.xmpp.core.XmppException; import rocks.xmpp.core.session.Extension; import rocks.xmpp.core.session.XmppSessionConfiguration; import rocks.xmpp.core.session.debug.LogbackDebugger; +import rocks.xmpp.core.stanza.model.Message; import rocks.xmpp.extensions.component.accept.ExternalComponent; +import rocks.xmpp.extensions.oob.model.x.OobX; import javax.annotation.PostConstruct; +import java.net.URI; +import java.net.URISyntaxException; /** * @author Ugnich Anton @@ -56,8 +63,8 @@ public class ApiServer implements AutoCloseable { @Override public void close() { try { - if (getXmpp() != null) - getXmpp().close(); + if (xmpp != null) + xmpp.close(); logger.info("ExternalComponent on juick-api destroyed"); } catch (Exception e) { @@ -70,19 +77,33 @@ public class ApiServer implements AutoCloseable { .debugger(LogbackDebugger.class) .extensions(Extension.of(com.juick.Message.class)) .build(); - setXmpp(ExternalComponent.create(jid, password, configuration, host, port)); + xmpp = ExternalComponent.create(jid, password, configuration, host, port); try { - getXmpp().connect(); + xmpp.connect(); } catch (XmppException e) { logger.warn("xmpp extension", e); } } - public ExternalComponent getXmpp() { - return xmpp; + public void sendMessage(Message message) { + if (!isXmppDisabled) { + xmpp.sendMessage(message); + } } - public void setXmpp(ExternalComponent xmpp) { - this.xmpp = xmpp; + public void processMessage(User visitor, String body, String attachmentName) { + Message xmsg = new Message(); + xmsg.setFrom(Jid.of(String.valueOf(visitor.getUid()), "uid.juick.com", "perl")); + xmsg.setTo(Jid.of("juick@juick.com/Juick")); + xmsg.setBody(body); + try { + if (StringUtils.isNotEmpty(attachmentName)) { + String attachmentUrl = String.format("juick://%s", attachmentName); + xmsg.addExtension(new OobX(new URI(attachmentUrl), "!!!!Juick!!")); + } + sendMessage(xmsg); + } catch (URISyntaxException e1) { + logger.warn("attachment error", e1); + } } } -- cgit v1.2.3