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-10-12 00:14:40 +03:00
![GitHub last commit ](https://img.shields.io/github/last-commit/evilsprut/nestjs-telegraf )
2020-05-03 12:46:24 +03:00
![NPM ](https://img.shields.io/npm/l/nestjs-telegraf )
2020-01-12 14:54:23 +03:00
2020-03-28 00:08:58 +03:00
[Telegraf ](https://github.com/telegraf/telegraf ) module for [NestJS ](https://github.com/nestjs/nest ).
2020-01-12 14:54:23 +03:00
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
2020-01-12 14:54:23 +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 {
2020-08-14 12:42:57 +03:00
Start,
Help,
On,
Hears,
2020-05-03 12:14:17 +03:00
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 {
2020-08-14 12:42:57 +03:00
@Start ()
2020-05-03 12:14:17 +03:00
start(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('Welcome');
}
2020-01-24 10:31:15 +03:00
2020-08-14 12:42:57 +03:00
@Help ()
2020-05-03 12:14:17 +03:00
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
2020-08-14 12:42:57 +03:00
@On ('sticker')
2020-05-03 12:14:17 +03:00
on(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('👍');
}
2020-01-24 10:31:15 +03:00
2020-08-14 12:42:57 +03:00
@Hears ('hi')
2020-05-03 12:14:17 +03:00
hears(ctx: Context) {
2020-03-19 20:50:04 +03:00
ctx.reply('Hey there');
2020-01-24 10:31:15 +03:00
}
}
```
2020-04-29 12:19:43 +03:00
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL - CONTRIBUTORS - LIST:START - Do not remove or modify this section -->
<!-- prettier - ignore - start -->
<!-- markdownlint - disable -->
< table >
< tr >
2020-10-12 00:14:40 +03:00
< td align = "center" > < a href = "https://github.com/Sedjj" > < img src = "https://avatars3.githubusercontent.com/u/5383030?v=4" width = "100px;" alt = "" / > < br / > < sub > < b > Eldar Salimzebarov< / b > < / sub > < / a > < br / > < a href = "https://github.com/evilsprut/nestjs-telegraf/issues?q=author%3ASedjj" title = "Bug reports" > 🐛< / a > < / td >
< td align = "center" > < a href = "http://www.ismb.it/vito.macchia" > < img src = "https://avatars3.githubusercontent.com/u/2249342?v=4" width = "100px;" alt = "" / > < br / > < sub > < b > Vito Macchia< / b > < / sub > < / a > < br / > < a href = "https://github.com/evilsprut/nestjs-telegraf/commits?author=lamuertepeluda" title = "Code" > 💻< / a > < a href = "https://github.com/evilsprut/nestjs-telegraf/issues?q=author%3Alamuertepeluda" title = "Bug reports" > 🐛< / a > < / td >
< td align = "center" > < a href = "https://github.com/edgesite" > < img src = "https://avatars3.githubusercontent.com/u/10336620?v=4" width = "100px;" alt = "" / > < br / > < sub > < b > KITAHARA SETSUNA< / b > < / sub > < / a > < br / > < a href = "https://github.com/evilsprut/nestjs-telegraf/commits?author=edgesite" title = "Code" > 💻< / a > < a href = "https://github.com/evilsprut/nestjs-telegraf/issues?q=author%3Aedgesite" title = "Bug reports" > 🐛< / a > < / td >
< td align = "center" > < a href = "https://github.com/evilsprut" > < img src = "https://avatars2.githubusercontent.com/u/14031838?v=4" width = "100px;" alt = "" / > < br / > < sub > < b > Aleksandr Bukhalo< / b > < / sub > < / a > < br / > < a href = "https://github.com/evilsprut/nestjs-telegraf/commits?author=evilsprut" title = "Code" > 💻< / a > < a href = "https://github.com/evilsprut/nestjs-telegraf/commits?author=bukhalo" title = "Documentation" > 📖< / a > < a href = "https://github.com/bukhalo/nestjs-telegraf/pulls?q=is%3Apr+reviewed-by%3Abukhalo" title = "Reviewed Pull Requests" > 👀< / a > < / td >
< td align = "center" > < a href = "https://github.com/VyacheslavSaloidWork" > < img src = "https://avatars3.githubusercontent.com/u/43011265?v=4" width = "100px;" alt = "" / > < br / > < sub > < b > Vyacheslav Saloid< / b > < / sub > < / a > < br / > < a href = "https://github.com/evilsprut/nestjs-telegraf/issues?q=author%3AVyacheslavSaloidWork" title = "Bug reports" > 🐛< / a > < / td >
2020-04-29 12:19:43 +03:00
< / tr >
< / table >
<!-- markdownlint - enable -->
<!-- prettier - ignore - end -->
<!-- ALL - CONTRIBUTORS - LIST:END -->
2020-08-14 12:42:57 +03:00
This project follows the [all-contributors ](https://github.com/all-contributors/all-contributors ) specification. Contributions of any kind welcome!