nestjs-telegraf/README.md

74 lines
1.6 KiB
Markdown
Raw Normal View History

2020-03-31 18:37:42 +03:00
<p align="center">
2020-05-03 12:46:24 +03:00
<a href="http://nestjs.com/" target="blank">
<img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /
</a>
2020-03-31 18:37:42 +03:00
</p>
2020-05-03 12:46:24 +03:00
# NestJS Telegraf
![npm](https://img.shields.io/npm/dm/nestjs-telegraf)
2020-12-30 20:37:11 +03:00
![GitHub last commit](https://img.shields.io/github/last-commit/bukhalo/nestjs-telegraf)
2020-05-03 12:46:24 +03:00
![NPM](https://img.shields.io/npm/l/nestjs-telegraf)
2020-03-28 00:08:58 +03:00
[Telegraf](https://github.com/telegraf/telegraf) module for [NestJS](https://github.com/nestjs/nest).
2020-09-10 00:19:02 +03:00
## Documentation
2020-09-10 00:26:12 +03:00
If you want to dive fully into NestJS Telegraf then don't waste your time in this dump, check out the [documentation site](https://nestjs-telegraf.vercel.app).
2020-09-10 00:19:02 +03:00
## Installation
```bash
2020-03-19 20:50:04 +03:00
$ npm i nestjs-telegraf
2019-07-16 18:56:02 +03:00
```
2020-09-10 00:19:02 +03:00
Once the installation process is complete, we can import the `TelegrafModule` into the root `AppModule`:
2020-01-24 10:31:15 +03:00
```typescript
2020-03-19 20:50:04 +03:00
import { Module } from '@nestjs/common';
import { TelegrafModule } from 'nestjs-telegraf';
2020-01-24 10:31:15 +03:00
@Module({
imports: [
2020-03-19 20:50:04 +03:00
TelegrafModule.forRoot({
token: 'TELEGRAM_BOT_TOKEN',
})
2020-01-24 10:31:15 +03:00
],
})
2020-03-19 20:50:04 +03:00
export class AppModule {}
2020-01-24 10:31:15 +03:00
```
2020-09-10 00:19:02 +03:00
Then add some decorators into the `app.service.ts` for handling Telegram bot API updates:
2020-01-24 10:31:15 +03:00
```typescript
2020-03-19 20:50:04 +03:00
import { Injectable } from '@nestjs/common';
import {
Start,
Help,
On,
Hears,
Context,
2020-03-19 20:50:04 +03:00
} from 'nestjs-telegraf';
2020-01-24 10:31:15 +03:00
2020-03-19 20:50:04 +03:00
@Injectable()
export class AppService {
@Start()
start(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('Welcome');
}
2020-01-24 10:31:15 +03:00
@Help()
help(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('Send me a sticker');
}
2020-01-24 10:31:15 +03:00
@On('sticker')
on(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('👍');
}
2020-01-24 10:31:15 +03:00
@Hears('hi')
hears(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('Hey there');
2020-01-24 10:31:15 +03:00
}
}
```