1.1.5 • Published 1 year ago
telegraf-opex v1.1.5
Created by OpexDev
Installation:
npm install telegraf-opex
Require:
const { OpexSQLite3Base, OpexMySQLBase } = require('telegraf-opex');
Config:
var config = {
path: "./db.sqlite",//для SQLite3
mysql: { //для MySQL
host: "mysqlserver.com",
user: "user",
password: "pass",
database: "db"
},
cooldown: 1,//cooldown в секундах
tr: {
ru: {
ratelimit: {
text: '❌Пожалуйста, попробуйте позже!'
}
},
en: {
ratelimit: {
text: '❌Please try again later!'
}
}
}
}
MySQL example:
async function run(){
const MySQL = require('mysql-database');
const database = new MySQL()
const db = await database.connect(config.mysql)
db.on('connected',(connection) => {
log('Database Connected');
})
setInterval(async () => {
await db.query('SELECT * FROM users')
}, 10 * 1000)
//чтобы было постоянное соединение
const ob = new OpexMySQLBase(MySQL_config,true,true, true,db)
bot.use(ob.middleware)
//other
}
run()
SQLite example
const ob = new OpexSQLite3Base(SQLite3_config,true,true,true)
bot.use(ob.middleware)
//other
Class params
new Class(
объект config (пример есть в самом начале),
saveRequests true/false,
//Разрешает сохранять логи времени комманд
updateUsernames true/false,
//Разрешает обновлять некоторые данные пользователей в таблице users
updateBotInfo true/false,
//Разрешает обновлять данные ботов в таблице bots
db
//mysql connecting
)
но в начале надо использовать команду ob.setTables() для создания нужных таблиц
Создать таблицы:
//sqlite3
ob.setTables()
//создаёт 5 таблиц: users,admins,blacklist,bots,requests
//mysql
await ob.setTables()
Удалить таблицы:
//sqlite3
ob.deleteTables()
//удаляет все таблицы
//mysql
await ob.deleteTables()
Получить список таблиц:
//sqlite3
ob.tables(?sys)
//mysql
await ob.tables()
- sys: true/false Показывает также системные таблицы
SQL запрос:
//sqlite3
ob.query(sql)
.run()
.bind()
.all()
.get()
//mysql
await ob.query(sql)
- .run() Запустить комманду бех возврата данных
- .all() Запустить комманду с возвратом множества объектов (массива объектов)
- .get() Запустить крмманду с возвратом одного объекта (если ответ - массив объектов, то вернёт первый объект)
- .bind('param1','param2') Добавить значения переменных указанных в sql как ?
//в mysql нету .run(),.all(),.get(),.bind(), там просто await db.query(sql)
Получить все данные с таблицы:
ob.vget(table,?var)
- table Имя таблицы
- var Имя переменной которые хочешь собрать По умолчанию: * (всё)
Получить данные по id:
ob.uget(table,id,?var)
- table Имя таблицы
- id Айди пользователя
- var Имя переменной которую хочешь получить По умолчанию: * (всё)
Сменить статус подписки:
//sqlite3
ob.subset(ctx,?sub)
//возвращает 0 или 1
//mysql
await ob.subset(ctx,?sub)
Сменить язык:
//sqlite3
ob.setLang(ctx)
//возвращает язык на который был сменён
//mysql
await ob.setLang(ctx)
Получить текущий язык:
//sqlite3
ob.getLang(ctx)
//mysql
await ob.getLang(ctx)
Длина массива:
ob.count(array)
//пример с opex функциями
count(await usersList(5433304088))
//покажет количество пользователей бота
Получить список ботов (+фильтр по user_id)
//sqlite3
ob.botsList(?user_id)
//mysql
await ob.botsList(?user_id)
Получить список пользователей (+фильтр по bot_id)
//sqlite3
ob.usersList(?bot_id)
//mysql
await ob.usersList(?bot_id)
Получить список последних зарегестрированных пользователей за n дней
//sqlite3
ob.lastUsers(days)
Получить последних список запросов (+фильтр по user_id &/ bot_id)
//sqlite3
ob.lastRequests({?user_id,?bot_id})
//mysql
await ob.lastRequests({?user_id,?bot_id})