This commit is contained in:
parent
f01acf5d85
commit
06729e031d
19
documentation/spring/ru/.dependencies.md
Normal file
19
documentation/spring/ru/.dependencies.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Чтобы начать, выберете свой сборщик вкладку и добавьте зависимости в проект.
|
||||||
|
|
||||||
|
=== ":simple-apachemaven: Maven"
|
||||||
|
|
||||||
|
``` xml
|
||||||
|
<!-- https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-bot-spring-boot-starter -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>dev.struchkov.godfather.telegram</groupId>
|
||||||
|
<artifactId>telegram-bot-spring-boot-starter</artifactId>
|
||||||
|
<version>0.0.51</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
=== ":simple-gradle: Gradle"
|
||||||
|
|
||||||
|
``` groovy
|
||||||
|
// https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-bot-spring-boot-starter
|
||||||
|
implementation 'dev.struchkov.godfather.telegram:telegram-bot-spring-boot-starter:0.0.51'
|
||||||
|
```
|
26
documentation/spring/ru/docs/architecture/general.md
Normal file
26
documentation/spring/ru/docs/architecture/general.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Основная идея
|
||||||
|
|
||||||
|
## Голосарий
|
||||||
|
|
||||||
|
## Юнит
|
||||||
|
|
||||||
|
## Сценарий
|
||||||
|
Для понимания рассмотрим небольшой пример по схеме изображенной ниже. Так же небольшие примеры обработки есть в тестах.
|
||||||
|
|
||||||
|
![Типичный сценарий](img/scenario.png){ loading=lazy align=left }
|
||||||
|
|
||||||
|
Сценариями в данном случае являются:
|
||||||
|
|
||||||
|
* Unit1 —> Unit2 —> Unit5 —> Unit7 —> Unit9
|
||||||
|
* Unit1 —> Unit2 —> Unit6 —> Unit8;
|
||||||
|
* Unit1 —> Unit3 —> Unit6 —> Unit8;
|
||||||
|
* Unit1 —> Unit4 —> Unit9;
|
||||||
|
* Unit10.
|
||||||
|
|
||||||
|
Пользователь присылает боту свое первое сообщение, например, «Привет». Если сообщение удовлетворяет регулярному выражению или содержит необходимое количество ключевых слов Unit1, то возвращается Unit1, то же самое относится к Unit10.
|
||||||
|
|
||||||
|
Если оба юнита удовлетворяют запросу пользователя, то будет возвращен юнит с большим приоритетом (поле priority). Если приоритеты равны, то случайный Unit.
|
||||||
|
|
||||||
|
В нашем примере, на первое сообщение, пользователь получил Unit1, поэтому следующее сообщение пользователя будет ассоциироваться с множеством: Unit2, Unit3 и Unit4.
|
||||||
|
|
||||||
|
## Механизм выбора юнита
|
BIN
documentation/spring/ru/docs/architecture/img/scenario.png
Normal file
BIN
documentation/spring/ru/docs/architecture/img/scenario.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 248 KiB |
16
documentation/spring/ru/docs/architecture/unit.md
Normal file
16
documentation/spring/ru/docs/architecture/unit.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Устройство юнитов
|
||||||
|
|
||||||
|
## Приоритет
|
||||||
|
|
||||||
|
|
||||||
|
## Триггеры
|
||||||
|
|
||||||
|
Позволяют указать при каком условии данный юнит будет выбран для обработки.
|
||||||
|
|
||||||
|
### `triggerCheck()`
|
||||||
|
|
||||||
|
Позволяет реализовать любую проверку. Принимает на вход `Predicate` с полученным сообщением.
|
||||||
|
|
||||||
|
### `triggerPhrase()`
|
||||||
|
|
||||||
|
## Ответ
|
@ -2,3 +2,64 @@
|
|||||||
|
|
||||||
Начнем разработку бота с простого примера. Поздороваемся с пользователем.
|
Начнем разработку бота с простого примера. Поздороваемся с пользователем.
|
||||||
|
|
||||||
|
## Регистрация бота
|
||||||
|
|
||||||
|
Сначала нужно зарегистрировать бота и получить токен в Telegram.
|
||||||
|
|
||||||
|
[:robot: Зарегистрировать бота](@BotFather){ .md-button }
|
||||||
|
|
||||||
|
|
||||||
|
## Зависимости
|
||||||
|
|
||||||
|
--8<-- ".dependencies.md"
|
||||||
|
|
||||||
|
## Конфигурация
|
||||||
|
|
||||||
|
Теперь необходимо указать данные для подключения к боту в Telegram.
|
||||||
|
|
||||||
|
``` yaml title="application.yml"
|
||||||
|
telegram:
|
||||||
|
bot:
|
||||||
|
username: username_bot
|
||||||
|
token: your_token
|
||||||
|
```
|
||||||
|
|
||||||
|
### Прокси
|
||||||
|
Если телеграм заблокирован у вашего хостера/провайдера, вы можете использовать прокси
|
||||||
|
|
||||||
|
``` yaml title="application.yml" hl_lines="5-11"
|
||||||
|
telegram:
|
||||||
|
bot:
|
||||||
|
username: username_bot
|
||||||
|
token: your_token
|
||||||
|
proxy:
|
||||||
|
enable: true
|
||||||
|
host: PROXY_HOST
|
||||||
|
port: PROXY_PORT
|
||||||
|
type: PROXY_TYPE
|
||||||
|
user: PROXY_USERNAME
|
||||||
|
password: PROXY_PASSWORD
|
||||||
|
```
|
||||||
|
|
||||||
|
## Первый юнит
|
||||||
|
|
||||||
|
Теперь создаем класс конфигурации юнитов и добавляем первый юнит (1).
|
||||||
|
{ .annotate }
|
||||||
|
|
||||||
|
1. Юниты это базовая сущность фреймворка
|
||||||
|
|
||||||
|
``` java
|
||||||
|
@Component
|
||||||
|
public class GeneralMenu implements UnitConfiguration {
|
||||||
|
|
||||||
|
@Unit(value = GENERAL_MENU, main = true)
|
||||||
|
public AnswerText<Mail> generalMenu() {
|
||||||
|
return AnswerText.<Mail>builder()
|
||||||
|
.answer(boxAnswer("Hello!"))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Вот и все, можете запустить ваше приложение и написать боту в телеграм. Если вы все сделали правильно, то он ответит вам.
|
@ -8,77 +8,26 @@ hide:
|
|||||||
|
|
||||||
Данный фреймворк обладает мощным API для создания диалоговых Telegram ботов.
|
Данный фреймворк обладает мощным API для создания диалоговых Telegram ботов.
|
||||||
|
|
||||||
## Добавляем зависимости
|
!!! note ""
|
||||||
|
|
||||||
Данный фреймворк имеет версии как для SpringBoot :simple-spring:, так и для Quarkus Reactive :simple-quarkus:.
|
Данный фреймворк имеет версии как для SpringBoot :simple-spring:, так и для Quarkus Reactive :simple-quarkus:.
|
||||||
|
|
||||||
Чтобы начать, выберете соответствующую вкладку и добавьте зависимости в свой проект.
|
Посмотрите, как легко сделать Hello World:
|
||||||
|
|
||||||
=== ":simple-spring: SpringBoot"
|
``` java
|
||||||
|
@Component
|
||||||
|
public class GeneralMenu implements UnitConfiguration {
|
||||||
|
|
||||||
Используйте стартер, чтобы быстро начать разработку
|
@Unit(value = GENERAL_MENU, main = true)
|
||||||
|
public AnswerText<Mail> generalMenu() {
|
||||||
=== ":simple-apachemaven: Maven"
|
return AnswerText.<Mail>builder()
|
||||||
|
.answer(boxAnswer("Hello, World!"))
|
||||||
``` xml
|
.build();
|
||||||
<!-- https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-bot-spring-boot-starter -->
|
}
|
||||||
<dependency>
|
|
||||||
<groupId>dev.struchkov.godfather.telegram</groupId>
|
|
||||||
<artifactId>telegram-bot-spring-boot-starter</artifactId>
|
|
||||||
<version>0.0.51</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
=== ":simple-gradle: Gradle"
|
## Добавляем зависимости
|
||||||
|
|
||||||
``` groovy
|
--8<-- ".dependencies.md"
|
||||||
// https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-bot-spring-boot-starter
|
|
||||||
implementation 'dev.struchkov.godfather.telegram:telegram-bot-spring-boot-starter:0.0.51'
|
|
||||||
```
|
|
||||||
|
|
||||||
=== ":simple-quarkus: Quarkus Reactive"
|
|
||||||
|
|
||||||
Реактивная версия
|
|
||||||
|
|
||||||
!!! question "Почему нe extension?"
|
|
||||||
|
|
||||||
Все будет, но не сразу :wink:
|
|
||||||
|
|
||||||
=== ":simple-apachemaven: Maven"
|
|
||||||
|
|
||||||
``` xml
|
|
||||||
<!-- https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-consumer-quarkus -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>dev.struchkov.godfather.telegram</groupId>
|
|
||||||
<artifactId>telegram-consumer-quarkus</artifactId>
|
|
||||||
<version>0.0.51</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-core-quarkus -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>dev.struchkov.godfather.telegram</groupId>
|
|
||||||
<artifactId>telegram-core-quarkus</artifactId>
|
|
||||||
<version>0.0.51</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-sender-quarkus -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>dev.struchkov.godfather.telegram</groupId>
|
|
||||||
<artifactId>telegram-sender-quarkus</artifactId>
|
|
||||||
<version>0.0.51</version>
|
|
||||||
</dependency>
|
|
||||||
```
|
|
||||||
|
|
||||||
=== ":simple-gradle: Gradle"
|
|
||||||
|
|
||||||
``` groovy
|
|
||||||
// https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-consumer-quarkus
|
|
||||||
implementation 'dev.struchkov.godfather.telegram:telegram-consumer-quarkus:0.0.51'
|
|
||||||
|
|
||||||
// https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-core-quarkus
|
|
||||||
implementation 'dev.struchkov.godfather.telegram:telegram-core-quarkus:0.0.51'
|
|
||||||
|
|
||||||
// https://mvnrepository.com/artifact/dev.struchkov.godfather.telegram/telegram-sender-quarkus
|
|
||||||
implementation 'dev.struchkov.godfather.telegram:telegram-sender-quarkus:0.0.51'
|
|
||||||
```
|
|
@ -14,6 +14,12 @@ nav:
|
|||||||
- Поддержать разработку: support-development.md
|
- Поддержать разработку: support-development.md
|
||||||
- ChangeLog:
|
- ChangeLog:
|
||||||
- changelog/index.md
|
- changelog/index.md
|
||||||
|
- Архитектура:
|
||||||
|
- Основная идея: architecture/general.md
|
||||||
|
- Юниты:
|
||||||
|
- architecture/unit.md
|
||||||
|
- architecture/unit/answer-text.md
|
||||||
|
- architecture/unit/answer-check.md
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
name: material
|
name: material
|
||||||
|
Loading…
Reference in New Issue
Block a user