tgsnake
Version:
Telegram MTProto framework for nodejs.
71 lines (70 loc) • 2.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Document = void 0;
const TL_js_1 = require("../../TL.js");
const platform_node_js_1 = require("../../../platform.node.js");
const PhotoSize_js_1 = require("./PhotoSize.js");
class Document extends TL_js_1.TLObject {
fileId;
fileUniqueId;
thumb;
date;
dcId;
filename;
mimeType;
fileSize;
constructor({ fileId, fileUniqueId, thumb, date, dcId, filename, mimeType, fileSize, }, client) {
super(client);
this.fileId = fileId;
this.fileUniqueId = fileUniqueId;
this.thumb = thumb;
this.date = date;
this.dcId = dcId;
this.filename = filename;
this.mimeType = mimeType;
this.fileSize = fileSize;
}
static parse(client, document) {
const { fileId, fileUniqueId } = platform_node_js_1.FileId.encode({
version: 4,
subVersion: 32,
dcId: document.dcId,
fileType: platform_node_js_1.FileType.DOCUMENT,
fileTypeUniqueId: platform_node_js_1.FileTypeUniqueId.DOCUMENT,
volumeId: BigInt(0),
localId: 0,
id: document.id,
accessHash: document.accessHash,
fileReference: document.fileReference,
});
let thumb = [];
let filename;
for (let attribute of document.attributes) {
if (attribute instanceof platform_node_js_1.Raw.DocumentAttributeFilename) {
attribute;
filename = attribute.fileName;
}
}
if (document.thumbs) {
for (let t of document.thumbs) {
if (t instanceof platform_node_js_1.Raw.PhotoSize) {
thumb.push(PhotoSize_js_1.PhotoSize.parse(client, t, document.id, document.accessHash, document.fileReference, document.dcId));
}
}
}
return new Document({
fileId,
fileUniqueId,
thumb,
filename,
mimeType: document.mimeType,
fileSize: document.size,
dcId: document.dcId,
date: new Date(document.date * 1000),
}, client);
}
resend(chatId, more) {
return this.api.sendDocument(chatId, this.fileId, more);
}
}
exports.Document = Document;