wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
44 lines (35 loc) • 1.09 kB
JavaScript
import MessageContent from "./messageContent";
import MessageContentType from "./messageContentType";
import wfc from "../client/wfc";
export default class LinkMessageContent extends MessageContent {
title;
contentDigest;
url;
thumbnail;
constructor() {
super(MessageContentType.Link);
}
encode() {
let payload = super.encode();
let obj = {
d: this.contentDigest,
u: this.url,
t: this.thumbnail
}
payload.searchableContent = this.title;
payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj));
return payload;
}
decode(payload) {
super.decode(payload);
this.title = payload.searchableContent;
let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent));
this.contentDigest = obj.d;
this.url = obj.u;
this.thumbnail = obj.t;
}
digest(message) {
let tmp = this.title ? this.title.trim() : this.contentDigest ? this.contentDigest.trim() : null;
return tmp ? tmp : this.url;
}
}