Implement sending link previews

Fixes #276
This commit is contained in:
AsamK 2022-05-25 23:23:33 +02:00
parent 0f701df91f
commit b178c7c67a
8 changed files with 95 additions and 9 deletions

View file

@ -15,6 +15,7 @@ record JsonDataMessage(
@JsonInclude(JsonInclude.Include.NON_NULL) JsonQuote quote,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonPayment payment,
@JsonInclude(JsonInclude.Include.NON_NULL) List<JsonMention> mentions,
@JsonInclude(JsonInclude.Include.NON_NULL) List<JsonPreview> previews,
@JsonInclude(JsonInclude.Include.NON_NULL) List<JsonAttachment> attachments,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonSticker sticker,
@JsonInclude(JsonInclude.Include.NON_NULL) JsonRemoteDelete remoteDelete,
@ -36,6 +37,10 @@ record JsonDataMessage(
.stream()
.map(JsonMention::from)
.toList() : null;
final var previews = dataMessage.previews().size() > 0 ? dataMessage.previews()
.stream()
.map(JsonPreview::from)
.toList() : null;
final var remoteDelete = dataMessage.remoteDeleteId().isPresent()
? new JsonRemoteDelete(dataMessage.remoteDeleteId().get())
: null;
@ -57,6 +62,7 @@ record JsonDataMessage(
quote,
payment,
mentions,
previews,
attachments,
sticker,
remoteDelete,

View file

@ -0,0 +1,13 @@
package org.asamk.signal.json;
import org.asamk.signal.manager.api.MessageEnvelope;
public record JsonPreview(String url, String title, String description, JsonAttachment image) {
static JsonPreview from(MessageEnvelope.Data.Preview preview) {
return new JsonPreview(preview.url(),
preview.title(),
preview.description(),
preview.image().map(JsonAttachment::from).orElse(null));
}
}