@puregram/media-cacher
v1.0.4
Published
cache sent media `file_id`s with ease for puregram!
Downloads
10
Readme
@puregram/media-cacher
cache sent media file_id
s 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-cacher
custom 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