telegram-ts-api
Version:
High level wrapper for node-telegram-bot-api
57 lines (50 loc) • 1.36 kB
text/typescript
import TelegramBot from "node-telegram-bot-api"
abstract class TelegramExecuteManager<T>
{
protected _telegram: TelegramBot
protected _command: T
constructor(telegram: any, command: T)
{
this._telegram = telegram
this._command = command
}
public execute(fn: (msg: any) => void){}
}
export class Command extends TelegramExecuteManager<RegExp>
{
constructor(telegram: any, command: string)
{
super(telegram, new RegExp(command))
}
public execute(fn: (msg: any) => any)
{
this._telegram.onText(this._command, async (msg: any) => fn(msg))
}
}
export class Callback extends TelegramExecuteManager<string[]>
{
constructor(telegram: any, commands: string[])
{
super(telegram, commands)
}
public execute(fn: (msg: any) => void)
{
this._telegram.on('callback_query', async (msg: any) =>
{
const data = msg.data
if(this._command.length === 1)
{
fn(msg)
return
}
for (let i = 0; i < this._command.length; i++)
{
if(this._command[i] === data)
{
fn(msg)
break
}
}
})
}
}