telegraf-tools
Version:
<div align="center">
164 lines (117 loc) • 5.49 kB
Markdown
<div align="center">
<p>
<img src="https://cdn-icons-png.flaticon.com/512/9898/9898172.png" alt="icon" width="128" height="128">
</p>
<h1>Telegraf-tools</h1>
<p>Пакет который включает в себя множество дополнений для удобной работы с библиотекой Telegraf, данный пакет упростит работу с кодом, а так-же улучшит его функциональность.</p>
</div>
## Установка
Установка через node:
```shell
$ npm i telegraf-tools
```
Импортируйте модуль:
```js
const { loadlib, createJsonBase, logger, checkFileExists, renameLib, folderLoader, multipleLoader } = require('telegraf-tools')(bot);
```
<h2>Список методов</h2>
<ul>
<li><a href="#loadlib">loadlib()</a></li>
<li><a href="#logger">logger()</a></li>
<li><a href="#createJsonBase">createJsonBase()</a></li>
<li><a href="#multipleLoader">multipleLoader()</a></li>
<li><a href="#checkFileExists">checkFileExists()</a></li>
<li><a href="#renameLib">renameLib()</a></li>
<li><a href="#folderLoader">folderLoader()</a></li>
</ul>
Пример использования JsonBase:
```js
const { Telegraf } = require('telegraf');
require('dotenv').config();
const bot = new Telegraf(process.env.BOT_TOKEN);
const { createJsonBase } = require('telegraf-tools');
createJsonBase()
bot.context.user = bot.context.tools.Users(() => {
is_admin: false,
// etc
})
bot.context.chats = bot.context.tools.JsonBase("filename", [])
// Создается файл filename.json с пустым массивом в папку database, если ее нету создает собственоручно
bot
.launch({dropPendingUpdates: true})
.then(() => console.log('Бот запущен!'))
.catch((err) => console.error(err));
```
Так-же вы можете упростить задачу транспартировки базы данных:
```js
bot
.use((ctx, next) => {
if (!ctx.from) return;
ctx.user = ctx.users.get(ctx.from, true);
return next();
})
```
методы JsonBase:
```js
const user = ctx.users.get(ctx.from, true); // если нужно создавать пользователя true, если нет ничего не пишем
user.edit("key", "value"); // изменить параметр в базе данных пользователя
users.getArray(); // получить базу данных пользователей в виде массива
```
Методы:
<h1 id="loadlib">loadlib()</h1>
Метод для загрузки локальных библиотек.
```js
loadlib(filename: string, defaultPath?: string) => void
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| filename | string | Название файла |
| defaultPath | string | Путь до файла, указывать только если файл не в корне |
<h1 id="logger">logger()</h1>
Метод для вывода логов в консоль с подсветкой текста разными цветами.
```js
logger.log(text: string, extra?: object) => void
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| text | string | Текст лога |
| extra | object | Объект цветов и их сочетаний |
<h1 id="createJsonBase">createJsonBase()</h1>
Метод для создания json-файла для хранения базы данных в папке database.
```js
createJsonBase() => void
```
<h1 id="multipleLoader">multipleLoader()</h1>
Метод для загрузки нескольких локальных библиотек одновременно.
```js
multipleLoader(libs: [], defaultPath?: string) => void
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| libs | array | Названия файлов |
| defaultPath | string | Путь до файлов, указывать только если файлы не в корне |
<h1 id="checkFileExists">checkFileExists()</h1>
Метод для проверки наличия файла по заданному пути.
```js
checkFileExists(filePath: string) => boolean
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| filePath | string | Путь до файла |
<h1 id="renameLib">renameLib()</h1>
Метод для загрузки нескольких локальных библиотек одновременно.
```js
renameLib(oldName: string, newName: string) => void
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| oldName | string | Название старой библиотеки |
| newName | string | Желаемое название |
<h1 id="folderLoader">folderLoader()</h1>
Метод для загрузки всех файлов из указанной директории.
```js
folderLoader(folderPath: string) => void
```
| Параметр | Тип | Описание |
|----------|----------|----------|
| folderPath | string | Путь к папке с библиотеками |