wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
44 lines (36 loc) • 1.28 kB
JavaScript
/*
* Copyright (c) 2020 WildFireChat. All rights reserved.
*/
import MessageContentMediaType from "./messageContentMediaType";
import MediaMessageContent from "./mediaMessageContent";
import MessageContentType from "./messageContentType";
export default class FileMessageContent extends MediaMessageContent {
name = '';
size = 0;
constructor(fileOrLocalPath, remotePath, name, size) {
super(MessageContentType.File, MessageContentMediaType.File, fileOrLocalPath, remotePath);
if (fileOrLocalPath && fileOrLocalPath.name) {
this.name = fileOrLocalPath.name;
this.size = fileOrLocalPath.size;
} else if (remotePath) {
this.name = name ? name : remotePath.substring(remotePath.lastIndexOf('/') + 1)
this.size = size ? size : 0;
}
}
digest() {
return '[文件]' + this.name;
}
encode() {
let payload = super.encode();
payload.searchableContent = this.name;
payload.content = this.size + '';
return payload;
}
decode(payload) {
super.decode(payload);
if (payload.searchableContent) {
this.name = payload.searchableContent;
this.size = Number(payload.content);
}
}
}