From 9bba7a85ab6fbe7cc8de6ece4b3850c883907e01 Mon Sep 17 00:00:00 2001 From: Atomic-Bean <75401809+Atomic-Bean@users.noreply.github.com> Date: Fri, 15 Jan 2021 03:40:35 +1030 Subject: [PATCH] Added sticker field to json output. Also added hidden mac file to .gitignore (#418) --- .gitignore | 1 + .../org/asamk/signal/json/JsonDataMessage.java | 10 ++++++++-- .../org/asamk/signal/json/JsonSticker.java | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/asamk/signal/json/JsonSticker.java diff --git a/.gitignore b/.gitignore index 3dc9875b..8fa9c8bd 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ local.properties .project .settings/ out/ +.DS_Store diff --git a/src/main/java/org/asamk/signal/json/JsonDataMessage.java b/src/main/java/org/asamk/signal/json/JsonDataMessage.java index 57201eda..787f47ab 100644 --- a/src/main/java/org/asamk/signal/json/JsonDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonDataMessage.java @@ -19,6 +19,7 @@ class JsonDataMessage { JsonQuote quote; List mentions; List attachments; + JsonSticker sticker; JsonGroupInfo groupInfo; JsonDataMessage(SignalServiceDataMessage dataMessage, Manager m) { @@ -60,15 +61,19 @@ class JsonDataMessage { } else { this.attachments = List.of(); } + if (dataMessage.getSticker().isPresent()) { + this.sticker = new JsonSticker(dataMessage.getSticker().get()); + } } public JsonDataMessage(Signal.MessageReceived messageReceived) { timestamp = messageReceived.getTimestamp(); message = messageReceived.getMessage(); groupInfo = new JsonGroupInfo(messageReceived.getGroupId()); - reaction = null; // TODO Replace these 3 with the proper commands + reaction = null; // TODO Replace these 4 with the proper commands quote = null; mentions = null; + sticker = null; attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList()); } @@ -76,9 +81,10 @@ class JsonDataMessage { timestamp = messageReceived.getTimestamp(); message = messageReceived.getMessage(); groupInfo = new JsonGroupInfo(messageReceived.getGroupId()); - reaction = null; // TODO Replace these 3 with the proper commands + reaction = null; // TODO Replace these 4 with the proper commands quote = null; mentions = null; + sticker = null; attachments = messageReceived.getAttachments().stream().map(JsonAttachment::new).collect(Collectors.toList()); } } diff --git a/src/main/java/org/asamk/signal/json/JsonSticker.java b/src/main/java/org/asamk/signal/json/JsonSticker.java new file mode 100644 index 00000000..228d2883 --- /dev/null +++ b/src/main/java/org/asamk/signal/json/JsonSticker.java @@ -0,0 +1,18 @@ +package org.asamk.signal.json; + +import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; +import org.whispersystems.util.Base64; + +public class JsonSticker { + + String packId; + String packKey; + int stickerId; + + public JsonSticker(SignalServiceDataMessage.Sticker sticker) { + this.packId = Base64.encodeBytes(sticker.getPackId()); + this.packKey = Base64.encodeBytes(sticker.getPackKey()); + this.stickerId = sticker.getStickerId(); + // TODO also download sticker image ?? + } +} -- 2.50.1