1.1.0 • Published 2 years ago

vk-io-redis-storage v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

vk-io-redis-storage

NPM version NPM downloads

RedisStorage - Simple add-on for Session vk-io library

Powered by ioredis

Installation

Yarn

yarn add vk-io-redis-storage

NPM

npm i vk-io-redis-storage

Example usage

const { VK } = require('vk-io');
const { SessionManager } = require('@vk-io/session');
const { RedisStorage } = require('vk-io-redis-storage');

const vk = new VK({
    token: process.env.TOKEN
});

function startBot({ updates }) {
    // const storage = new RedisStorage([ioRedisClient]);
    const storage = new RedisStorage({ host: '127.0.0.1', keyPrefix: 'vk-io:session:' });

    const sessionManager = new SessionManager({
        storage,
        getStorageKey: (ctx) =>
            ctx.userId ? `${ctx.userId}_${ctx.userId}` : `${ctx.peerId}_${ctx.senderId}`,
    });

    updates.on('message', sessionManager.middleware);

    updates.hear('/counter', (ctx) => {
        if (ctx.isOutbox) return;

        const { session } = ctx;

        session.counter = (session.counter || 0) + 1;

        ctx.send(`You turned to the bot (${session.counter}) times`);
    });

    updates.start().catch(console.error);
}

// ...
startBot(vk);