mirror of
https://github.com/Maks1mS/nestjs-telegraf.git
synced 2025-01-11 22:51:06 +03:00
feat(sample): update sample
This commit is contained in:
parent
1b8aa4ac55
commit
dc22f9f191
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user