]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java
Output json when receiving messages from dbus and --json parameter is given
[signal-cli] / src / main / java / org / asamk / signal / json / JsonMessageEnvelope.java
1 package org.asamk.signal.json;
2
3 import org.asamk.Signal;
4 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
5 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
6 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
7
8 public class JsonMessageEnvelope {
9
10 String source;
11 int sourceDevice;
12 String relay;
13 long timestamp;
14 boolean isReceipt;
15 JsonDataMessage dataMessage;
16 JsonSyncMessage syncMessage;
17 JsonCallMessage callMessage;
18 JsonReceiptMessage receiptMessage;
19
20 public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content) {
21 if (!envelope.isUnidentifiedSender() && envelope.hasSource()) {
22 SignalServiceAddress source = envelope.getSourceAddress();
23 this.source = source.getNumber().get();
24 this.relay = source.getRelay().isPresent() ? source.getRelay().get() : null;
25 }
26 this.sourceDevice = envelope.getSourceDevice();
27 this.timestamp = envelope.getTimestamp();
28 this.isReceipt = envelope.isReceipt();
29 if (content != null) {
30 if (envelope.isUnidentifiedSender()) {
31 this.source = content.getSender().getNumber().get();
32 this.sourceDevice = content.getSenderDevice();
33 }
34 if (content.getDataMessage().isPresent()) {
35 this.dataMessage = new JsonDataMessage(content.getDataMessage().get());
36 }
37 if (content.getSyncMessage().isPresent()) {
38 this.syncMessage = new JsonSyncMessage(content.getSyncMessage().get());
39 }
40 if (content.getCallMessage().isPresent()) {
41 this.callMessage = new JsonCallMessage(content.getCallMessage().get());
42 }
43 if (content.getReceiptMessage().isPresent()) {
44 this.receiptMessage = new JsonReceiptMessage(content.getReceiptMessage().get());
45 }
46 }
47 }
48
49 public JsonMessageEnvelope(Signal.MessageReceived messageReceived) {
50 source = messageReceived.getSender();
51 timestamp = messageReceived.getTimestamp();
52 dataMessage = new JsonDataMessage(messageReceived);
53 }
54
55 public JsonMessageEnvelope(Signal.ReceiptReceived receiptReceived) {
56 source = receiptReceived.getSender();
57 timestamp = receiptReceived.getTimestamp();
58 isReceipt = true;
59 }
60
61 public JsonMessageEnvelope(Signal.SyncMessageReceived messageReceived) {
62 source = messageReceived.getSource();
63 timestamp = messageReceived.getTimestamp();
64 syncMessage = new JsonSyncMessage(messageReceived);
65 }
66 }