mirror of
				https://github.com/Maks1mS/nestjs-telegraf.git
				synced 2025-11-03 23:41:23 +03:00 
			
		
		
		
	feat(sample): update sample
This commit is contained in:
		@@ -1,8 +1,18 @@
 | 
			
		||||
import { Telegraf } from 'telegraf';
 | 
			
		||||
import { Help, InjectBot, On, Start, Update } from 'nestjs-telegraf';
 | 
			
		||||
import {
 | 
			
		||||
  Ctx,
 | 
			
		||||
  MessageText,
 | 
			
		||||
  Help,
 | 
			
		||||
  InjectBot,
 | 
			
		||||
  On,
 | 
			
		||||
  Start,
 | 
			
		||||
  Update,
 | 
			
		||||
  Hears,
 | 
			
		||||
} from 'nestjs-telegraf';
 | 
			
		||||
import { EchoService } from './echo.service';
 | 
			
		||||
import { GreeterBotName } from '../app.constants';
 | 
			
		||||
import { Context } from '../interfaces/context.interface';
 | 
			
		||||
import { ReverseTextPipe } from '../common/pipes/reverse-text.pipe';
 | 
			
		||||
 | 
			
		||||
@Update()
 | 
			
		||||
export class EchoUpdate {
 | 
			
		||||
@@ -13,26 +23,18 @@ export class EchoUpdate {
 | 
			
		||||
  ) {}
 | 
			
		||||
 | 
			
		||||
  @Start()
 | 
			
		||||
  async onStart(ctx: Context): Promise<void> {
 | 
			
		||||
  async onStart(): Promise<string> {
 | 
			
		||||
    const me = await this.bot.telegram.getMe();
 | 
			
		||||
    await ctx.reply(`Hey, I'm ${me.first_name}`);
 | 
			
		||||
    return `Hey, I'm ${me.first_name}`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Help()
 | 
			
		||||
  async onHelp(ctx: Context): Promise<void> {
 | 
			
		||||
    await ctx.reply('Send me any text');
 | 
			
		||||
  async onHelp(): Promise<string> {
 | 
			
		||||
    return 'Send me any text';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @On('message')
 | 
			
		||||
  async onMessage(ctx: Context): Promise<void> {
 | 
			
		||||
    console.log('New message received');
 | 
			
		||||
 | 
			
		||||
    if ('text' in ctx.message) {
 | 
			
		||||
      const messageText = ctx.message.text;
 | 
			
		||||
      const echoText = this.echoService.echo(messageText);
 | 
			
		||||
      await ctx.reply(echoText);
 | 
			
		||||
    } else {
 | 
			
		||||
      await ctx.reply('Only text messages');
 | 
			
		||||
    }
 | 
			
		||||
  @On('text')
 | 
			
		||||
  onMessage(@MessageText(new ReverseTextPipe()) messageText: string): string {
 | 
			
		||||
    return this.echoService.echo(messageText);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,23 @@
 | 
			
		||||
import { Command, Hears, Start, Update } from 'nestjs-telegraf';
 | 
			
		||||
import { Command, Context as Ctx, Hears, Start, Update } from 'nestjs-telegraf';
 | 
			
		||||
import { User } from 'telegraf/typings/telegram-types';
 | 
			
		||||
import { Context } from '../interfaces/context.interface';
 | 
			
		||||
import { HELLO_SCENE_ID } from '../app.constants';
 | 
			
		||||
import { From } from '../common/decorators/from.decorator';
 | 
			
		||||
 | 
			
		||||
@Update()
 | 
			
		||||
export class GreeterUpdate {
 | 
			
		||||
  @Start()
 | 
			
		||||
  async onStart(ctx: Context): Promise<void> {
 | 
			
		||||
  async onStart(@Ctx() ctx: Context): Promise<void> {
 | 
			
		||||
    await ctx.reply('Say hello to me');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Hears(['hi', 'hello', 'hey', 'qq'])
 | 
			
		||||
  async onGreetings(ctx: Context): Promise<void> {
 | 
			
		||||
    const { first_name } = ctx.from;
 | 
			
		||||
    await ctx.reply(`Hey ${first_name}`);
 | 
			
		||||
  onGreetings(@From() { first_name: firstName }: User): string {
 | 
			
		||||
    return `Hey ${firstName}`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Command('scene')
 | 
			
		||||
  async onSceneCommand(ctx: Context): Promise<void> {
 | 
			
		||||
  async onSceneCommand(@Ctx() ctx: Context): Promise<void> {
 | 
			
		||||
    await ctx.scene.enter(HELLO_SCENE_ID);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user