UNPKG

@darkwolf/telegram-bot.lazy.cjs

Version:
158 lines (138 loc) 3.55 kB
const Helper = require('@darkwolf/helper.cjs') const types = require('./') class Sticker { constructor(data = {}, context) { this .setContext(context) .setFileId(data.fileId) .setFileUid(data.fileUid) .setWidth(data.width) .setHeight(data.height) .setSetName(data.setName) .setAnimated(data.animated) .setEmoji(data.emoji) .setMaskPosition(data.maskPosition) .setThumb(data.thumb) .setFileSize(data.fileSize) } get isAnimated() { return !!this.animated } setContext(context = {}) { this.context = context return this } setFileId(id) { this.fileId = id return this } setFileUid(uid) { this.fileUid = uid return this } setWidth(width) { this.width = width return this } setHeight(height) { this.height = height return this } setSetName(name) { this.setName = name return this } setAnimated(boolean) { this.animated = boolean return this } setEmoji(emoji) { this.emoji = emoji return this } setMaskPosition(maskPosition) { this.maskPosition = maskPosition ? ( maskPosition instanceof types.MaskPosition ? maskPosition : new types.MaskPosition(maskPosition.point, maskPosition.xShift, maskPosition.yShift, maskPosition.scale) ) : undefined return this } setThumb(thumb) { this.thumb = thumb ? ( thumb instanceof types.PhotoSize ? thumb : new types.PhotoSize(thumb, this.context) ) : undefined return this } setFileSize(size) { this.fileSize = size return this } getFile() { return this.context.telegramBot.getFile(this.fileId) } getSet() { return this.context.telegramBot.getStickerSet(this.setName) } setPositionInSet(position) { return this.context.telegramBot.setStickerPositionInSet(this.fileId, position) } deleteFromSet() { return this.context.telegramBot.deleteStickerFromSet(this.fileId) } toJSON() { const data = {} if (this.fileId) { data.fileId = this.fileId } if (this.fileUid) { data.fileUid = this.fileUid } if (this.width) { data.width = this.width } if (this.height) { data.height = this.height } if (this.setName) { data.setName = this.setName } if (Helper.exists(this.animated)) { data.animated = this.animated } if (this.emoji) { data.emoji = this.emoji } if (this.maskPosition) { data.maskPosition = this.maskPosition.toJSON() } if (this.thumb) { data.thumb = this.thumb.toJSON() } if (this.fileSize) { data.fileSize = this.fileSize } return data } } Sticker.from = (data, context) => new Sticker(data, context) Sticker.fromParams = (params = {}, context) => { const data = { fileId: params.file_id, fileUid: params.file_unique_id, width: params.width, height: params.height, setName: params.set_name, animated: params.is_animated, emoji: params.emoji, maskPosition: params.mask_position, thumb: params.thumb, fileSize: params.file_size } if (data.maskPosition) { data.maskPosition = types.MaskPosition.fromParams(data.maskPosition) } if (data.thumb) { data.thumb = types.PhotoSize.fromParams(data.thumb, context) } return new Sticker(data, context) } module.exports = Sticker