From fcbf13dae35f024ceace25bcbf81a3cd05d6243a Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 11 Nov 2016 14:51:39 +0300 Subject: xmpp-ft: using juick:// URI scheme for attachments --- .../src/main/java/com/juick/components/XMPPFTServer.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/juick-xmpp-ft/src/main/java/com/juick/components/XMPPFTServer.java b/juick-xmpp-ft/src/main/java/com/juick/components/XMPPFTServer.java index 37ca7ec6..6726a156 100644 --- a/juick-xmpp-ft/src/main/java/com/juick/components/XMPPFTServer.java +++ b/juick-xmpp-ft/src/main/java/com/juick/components/XMPPFTServer.java @@ -16,6 +16,8 @@ import rocks.xmpp.extensions.oob.model.x.OobX; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; @@ -39,7 +41,8 @@ public class XMPPFTServer { fileTransferManager.addFileTransferOfferListener(e -> { try { List allowedTypes = new ArrayList() {{ add("png"); add("jpg"); }}; - if (allowedTypes.contains(FilenameUtils.getExtension(e.getName()))) { + String attachmentExtension = FilenameUtils.getExtension(e.getName()); + if (allowedTypes.contains(attachmentExtension)) { Path filePath = Paths.get(tmpDir, e.getName()); FileTransfer ft = e.accept(filePath).get(); ft.addFileTransferStatusListener(st -> { @@ -52,10 +55,13 @@ public class XMPPFTServer { msg.setTo(Jid.of(juickJid)); msg.setBody(e.getDescription()); try { - String attachmentUrl = DigestUtils.md5Hex(String.format("%s-%s", e.getInitiator().toString(), e.getSessionId()).getBytes()); - msg.addExtension(new OobX(new URL(attachmentUrl), "!!!!Juick!!")); + String attachmentUrl = String.format("juick://%s.%s", + DigestUtils.md5Hex(String.format("%s-%s", + e.getInitiator().toString(), e.getSessionId()).getBytes()), + attachmentExtension); + msg.addExtension(new OobX(new URI(attachmentUrl).toURL(), "!!!!Juick!!")); component.sendMessage(msg); - } catch (MalformedURLException e1) { + } catch (MalformedURLException | URISyntaxException e1) { logger.warn("attachment error", e1); } } -- cgit v1.2.3