@puregram/media-cacher v1.0.4
@puregram/media-cacher
cache sent media file_ids with ease for puregram package
introduction
if you send a lot of similar MediaSource.path or MediaSource.url
media files you've probably encountered a problem with the speed
of uploading those files. sometimes those files might be really
heavy, and it's not like you really want to wait these extra
times every time, do you? that's why you probably need @puregram/media-cacher
example
const { Telegram, MediaSource } = require('puregram')
const { hooks: cacheHooks } = require('@puregram/media-cacher')
const telegram = Telegram.fromToken(process.env.TOKEN)
telegram.useHooks(cacheHooks())
telegram.updates.on('message', (context) => {
return context.sendPhoto(MediaSource.path(PATH_TO_FILE))
})
telegram.updates.startPolling()if the file is heavy, it might take some time to send the photo
the first time, but next times will be much faster since the
PATH_TO_FILE will be cached with correspnding fileId!
installation
$ yarn add @puregram/media-cacher
$ npm i -S @puregram/media-cachercustom storage
internally @puregram/media-cacher uses MemoryStorage that will
keep everything in memory. this means that after your bot reloads
everything will be lost. you might want to use another storage
(like redis or something):
const { RedisStorage } = require('some-redis-storage-implementation-i-guess')
telegram.useHooks(
cacheHooks({
storage: new RedisStorage({
...
})
})
)getStorageKey
as all storage-based puregram packages, @puregram/media-cacher exposes getStorageKey
function that allows you to set user keys according to your needs. that key will
be used in the storage (storage.get(key), storage.has(key)) to store the fileId