Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

advanced-local-session

XBEHOLI248ISC1.0.3

Это удобная библиотека для локального хранения сессий и глобальных настроек в боте

telegram, telegram bot, advanced session local, advanced session, session, middleware, database, local database, json, lowdb, db

readme

Advanced Local Session

Это удобная библиотека для локального хранения сессий и глобальных настроек в боте

📌 Особенности:

  • Хранение сессий локально в JSON-файле
  • Простое управление глобальными настройками
  • Поддержка кэширования данных для ускорения доступа
  • Интеграция методов в ctx для удобного использования

    🚀 Установка

    npm install advanced-local-session

    📌 Пример работы

    ` import { Telegraf } from'telegraf'; import { AdvancedLocalSession } from 'advanced-local-session';

const bot = new Telegraf('YOUR_BOT_TOKEN'); const session = new AdvancedLocalSession({ storagePath: './sessions.json', // Путь к файлу для хранения global: { dev_mode: false, admins: [123456789] // ID администраторов }, });

bot.use(session.middleware());

// Пример использования bot.command('ping', (ctx) => { ctx.reply('🏓 Pong!'); ctx.session.counter = (ctx.session.counter || 0) + 1; console.log(Количество запросов: ${ctx.session.counter}); });

bot.launch();

## 📂 Формат sessions.json
После первого запуска в корне проекта появится файл sessions.json:

{ "users": { "123456789": { "counter": 5 } }, "global": { "dev_mode": false, "admins": [123456789] } }

## 🔹 Методы класса AdvancedLocalSession
| Метод | Описание | Пример использования |
|----------------|:---------:|----------------:|
| middleware() | Подключает middleware в Telegraf | bot.use(session.middleware()); |
| getAllUsers() | Возвращает список всех пользователей | const users = session.getAllUsers(); |
| getUserById(id) | Получает данные пользователя по ID | const user = session.getUserById(123456789); |
| removeUser(id) | Удаляет данные пользователя | session.removeUser(123456789); |
| getGlobal(key) | Получает значение из глобальных настроек | const mode = session.getGlobal('dev_mode'); |
| setGlobal(key, v) | Устанавливает значение в глобальные настройки | session.setGlobal('dev_mode', true); |
## 🔹 Методы из контекста (ctx)
Благодаря middleware, в ctx автоматически добавляются удобные методы:
### ➡️ ctx.getGlobal(key)
Получает значение из глобальных настроек.

bot.command('checkmode', (ctx) => { const mode = ctx.getGlobal('dev_mode'); ctx.reply(🛠 Dev Mode: ${mode ? 'Включен' : 'Выключен'}); });

### ➡️ ctx.setGlobal(key, value)
Устанавливает значение в глобальных настройках.

bot.command('togglemode', (ctx) => { const currentMode = ctx.getGlobal('dev_mode'); ctx.setGlobal('dev_mode', !currentMode); ctx.reply(🔄 Dev Mode переключён на: ${!currentMode}); });

### ➡️ ctx.session
Работа с сессией пользователя через ctx.session.

bot.on('text', (ctx) => { ctx.session.messageCount = (ctx.session.messageCount || 0) + 1; ctx.reply(💬 Вы отправили ${ctx.session.messageCount} сообщений.); }); `