feat(sample-app): add multi bot instace

This commit is contained in:
Morb0 2021-01-03 13:50:04 +03:00
parent 46249cf7ba
commit 82a9c259f6
3 changed files with 19 additions and 4 deletions

View File

@ -1 +1,2 @@
export const HELLO_SCENE_ID = 'HELLO_SCENE_ID'; export const HELLO_SCENE_ID = 'HELLO_SCENE_ID';
export const SUPPORT_BOT_NAME = 'support';

View File

@ -4,11 +4,17 @@ import { EchoService } from './echo.service';
import { AppUpdate } from './app.update'; import { AppUpdate } from './app.update';
import { HelloScene } from './scenes/hello.scene'; import { HelloScene } from './scenes/hello.scene';
import { sessionMiddleware } from './middleware/session.middleware'; import { sessionMiddleware } from './middleware/session.middleware';
import { SUPPORT_BOT_NAME } from './app.constants';
@Module({ @Module({
imports: [ imports: [
TelegrafModule.forRoot({ TelegrafModule.forRoot({
token: '1467731595:AAHCvH65H9VQYKF9jE-E8c2rXsQBVAYseg8', // Don't steal >:( token: '1417509321:AAEHz8a2QSAP4cTHh4Z6-ulePysFaUx4SjY', // Don't steal >:(
middlewares: [sessionMiddleware],
}),
TelegrafModule.forRoot({
name: SUPPORT_BOT_NAME,
token: '1435922623:AAHmBmnyqroHxDbuK6OKsLV8Y_oB_Lf9E6E', // Don't steal >:(
middlewares: [sessionMiddleware], middlewares: [sessionMiddleware],
}), }),
], ],

View File

@ -1,20 +1,22 @@
import { Telegraf } from 'telegraf'; import { Telegraf } from 'telegraf';
import { Command, Help, InjectBot, On, Start, Update } from '../lib'; import { Command, Help, InjectBot, On, Start, Update } from '../lib';
import { EchoService } from './echo.service'; import { EchoService } from './echo.service';
import { HELLO_SCENE_ID } from './app.constants'; import { HELLO_SCENE_ID, SUPPORT_BOT_NAME } from './app.constants';
import { Context } from './interfaces/context.interface'; import { Context } from './interfaces/context.interface';
@Update() @Update()
export class AppUpdate { export class AppUpdate {
constructor( constructor(
@InjectBot() @InjectBot()
private readonly bot: Telegraf<any>, // TODO: fix any private readonly defaultBot: Telegraf<Context>,
@InjectBot(SUPPORT_BOT_NAME)
private readonly supportBot: Telegraf<Context>,
private readonly echoService: EchoService, private readonly echoService: EchoService,
) {} ) {}
@Start() @Start()
async onStart(ctx: Context): Promise<void> { async onStart(ctx: Context): Promise<void> {
const me = await this.bot.telegram.getMe(); const me = await this.defaultBot.telegram.getMe();
await ctx.reply(`Hey, I'm ${me.first_name}`); await ctx.reply(`Hey, I'm ${me.first_name}`);
} }
@ -23,6 +25,12 @@ export class AppUpdate {
await ctx.reply('Send me any text'); await ctx.reply('Send me any text');
} }
@Command('support')
async onSupportCommand(ctx: Context): Promise<void> {
const me = await this.supportBot.telegram.getMe();
await ctx.reply(`Greetings from ${me.first_name}`);
}
@Command('scene') @Command('scene')
async onSceneCommand(ctx: Context): Promise<void> { async onSceneCommand(ctx: Context): Promise<void> {
await ctx.scene.enter(HELLO_SCENE_ID); await ctx.scene.enter(HELLO_SCENE_ID);