UNPKG

@botocrat/telegram

Version:

Simple, light-weight Telegram Bot Client for Node.js.

37 lines (34 loc) 1.19 kB
const isStream = require('is-stream') // bent dependency const hasStream = (key) => (params) => isStream.readable(params[key]) const hasSticker = ({ png_sticker, tgs_sticker, webm_sticker }) => isStream.readable(png_sticker || tgs_sticker || webm_sticker) const handleMedia = (params) => { let hasStream = false; params.media.forEach((i, j) => { if (isStream.readable(i.media)) { hasStream = true params['btcrt_file' + j] = i.media params.media[j].media = 'attach://btcrt_file' + j } }); params.media = JSON.stringify(params.media); return hasStream } module.exports = { sendPhoto: hasStream('photo'), setChatPhoto: hasStream('photo'), sendAudio: hasStream('audio'), sendVideo: hasStream('video'), sendVoice: hasStream('voice'), sendMediaGroup: handleMedia, editMessageMedia: handleMedia, sendVideoNote: hasStream('video_note'), sendDocument: hasStream('document'), sendAnimation: hasStream('animation'), sendSticker: hasStream('sticker'), setWebHook: hasStream('certificate'), setStickerSetThumb: hasStream('thumb'), uploadStickerFile: () => true, createNewStickerSet: hasSticker, // :) addStickerToSet: hasSticker, }