1.1.5 • Published 1 year ago

telegraf-opex v1.1.5

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

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})
1.1.5

1 year ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago