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 ботов.
|
||||
|
||||
!!! note ""
|
||||
|
||||
Данный фреймворк имеет версии как для SpringBoot :simple-spring:, так и для Quarkus Reactive :simple-quarkus:.
|
||||
|
||||
Посмотрите, как легко сделать Hello World:
|
||||
|
||||
``` java
|
||||
@Component
|
||||
public class GeneralMenu implements UnitConfiguration {
|
||||
|
||||
@Unit(value = GENERAL_MENU, main = true)
|
||||
public AnswerText<Mail> generalMenu() {
|
||||
return AnswerText.<Mail>builder()
|
||||
.answer(boxAnswer("Hello, World!"))
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
## Добавляем зависимости
|
||||
|
||||
Данный фреймворк имеет версии как для SpringBoot :simple-spring:, так и для Quarkus Reactive :simple-quarkus:.
|
||||
|
||||
Чтобы начать, выберете соответствующую вкладку и добавьте зависимости в свой проект.
|
||||
|
||||
=== ":simple-spring: SpringBoot"
|
||||
|
||||
Используйте стартер, чтобы быстро начать разработку
|
||||
|
||||
=== ":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'
|
||||
```
|
||||
|
||||
=== ":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'
|
||||
```
|
||||
--8<-- ".dependencies.md"
|
@ -14,6 +14,12 @@ nav:
|
||||
- Поддержать разработку: support-development.md
|
||||
- ChangeLog:
|
||||
- changelog/index.md
|
||||
- Архитектура:
|
||||
- Основная идея: architecture/general.md
|
||||
- Юниты:
|
||||
- architecture/unit.md
|
||||
- architecture/unit/answer-text.md
|
||||
- architecture/unit/answer-check.md
|
||||
|
||||
theme:
|
||||
name: material
|
||||
|
Loading…
Reference in New Issue
Block a user