Thanks to visit codestin.com
Credit goes to github.com

Skip to content

NestJS Max — библиотека для создания чат-ботов в мессенджере Max.

License

Notifications You must be signed in to change notification settings

xTCry/nestjs-max

Repository files navigation

NestJS Max

npm NPM GitHub last commit

NestJS Max — библиотека для создания чат-ботов в мессенджере Max.

Этот модуль обеспечивает быстрый и простой способ взаимодействия с Max Bot API и создания ботов для мессенджера Max, а также глубокую интеграцию с вашим приложением NestJS.

Установка

# NPM
npm i nestjs-max @maxhub/max-bot-api

# Yarn
yarn add nestjs-max @maxhub/max-bot-api

Пример использования

1. Минимум кода

Убедитесь, что в файле .env установлено значение для BOT_TOKEN

main.ts
import 'dotenv/config';

import { NestFactory } from '@nestjs/core';

import { AppModule } from './app.module';

NestFactory.createApplicationContext(AppModule);
app.module.ts
import { Module } from '@nestjs/common';
import { MaxModule } from 'nestjs-max';

import { BotUpdate } from './bot.update';

@Module({
  imports: [
    MaxModule.forRoot({
      token: process.env.BOT_TOKEN!,
      replyOptions: { markup: 'html' },
    }),
  ],
  providers: [BotUpdate],
})
export class AppModule {}
bot.update.ts

Декораторы имеют префикс Max для удобной совместимости с другими библиотеками для Nest. Можно экспортировать и без префикса

import {
  MaxContext, // Ctx
  MaxHears, // Hears
  MaxOn, // On
  MaxReplyOptions, // ReplyOptions
  MaxStarted, // Started
  MaxStartPayload, // StartPayload
  MaxUpdate, // Update
} from 'nestjs-max';
import { type Context } from '@maxhub/max-bot-api';
import type { MessageCreatedUpdate } from '@maxhub/max-bot-api/dist/core/network/api';

@MaxUpdate()
export class BotUpdate {
  @MaxStarted()
  onStarted(@MaxStartPayload() payload?: string | null) {
    console.log('[onStarted] Info: ', { payload });
    return 'HelloW! Use /start';
  }

  @MaxHears(/(.*)/i)
  onBroke(@MaxContext() ctx: Context<MessageCreatedUpdate>) {
    ctx.reply('Hmm...');
  }

  @MaxReplyOptions({ replyTo: true })
  @MaxOn('message_edited')
  async onMsgEdited() {
    return 'I see that 👀...';
  }
}

2. Проект в sample

  • Установить значения в .env
  • Запустить npm install
  • Запустить npm run start:dev

Для получения ID своего профиля исользовать комануд /id. Полученный ID указать в .env файле для MAX_BOT_ADMIN_IDS и/или MAX_BOT_USER_IDS

Команды для проверки различных сценариев с ролями: /admin, /admins, /user

About

NestJS Max — библиотека для создания чат-ботов в мессенджере Max.

Topics

Resources

License

Stars

Watchers

Forks