|
1 | 1 | # 📌 Link Tracker |
2 | 2 |
|
| 3 | +[](https://spring.io/projects/spring-boot) |
| 4 | +[](https://kafka.apache.org/) |
| 5 | +[](https://hibernate.org/) |
| 6 | +[](https://www.docker.com/) |
| 7 | +[](https://testcontainers.com/) |
| 8 | +[](https://swagger.io/) |
| 9 | +[](https://www.postgresql.org/) |
| 10 | +[](https://redis.io/) |
| 11 | + |
3 | 12 | ---- |
4 | 13 |
|
5 | 14 | Чтобы бот заработал нужно в переменные среды загрузить TELEGRAM_TOKEN |
6 | 15 |
|
7 | 16 | ---- |
8 | 17 |
|
| 18 | + |
| 19 | + |
9 | 20 | ## 📝 Описание проекта |
10 | 21 |
|
11 | 22 | Приложение для отслеживания обновлений контента по ссылкам. |
|
21 | 32 |
|
22 | 33 | Для дополнительной справки: [HELP.md](./HELP.md) |
23 | 34 |
|
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7200.790836764663 2795.6894500653675" width="7200.790836764663" height="2795.6894500653675" class="excalidraw-svg"> |
| 41 | + <!-- svg-source:excalidraw --> |
| 42 | + |
24 | 43 | --- |
25 | 44 |
|
26 | 45 | ## 🤖 Бот |
|
29 | 48 |
|
30 | 49 | Бот поддерживает следующие команды: |
31 | 50 |
|
32 | | -- [**`/help`**]() — список всех доступных команд. |
33 | | -- [**`/start`**]() — регистрация пользователя. |
34 | | -- [**`/stop`**]() — удаление всех данных о чате (ID чата, отслеживаемые ссылки и т. д.). |
35 | | -- [**`/track`**]() — добавление ссылки для отслеживания |
36 | | -- [**`/untrack`**]() — удаление ссылки из списка отслеживаемых. |
37 | | -- [**`/list`**]() — получение списка всех отслеживаемых ссылок. |
38 | | -- [**`/tag`**]() — для просмотра всех тегов (/tag) и ссылок под конкретным тегом (/tag < tag >) |
| 51 | +- [**`/start`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/helper/StartCommand.java) — регистрация пользователя. |
| 52 | +- [**`/help`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/helper/HelpCommand.java) — список всех доступных команд. |
| 53 | +- [**`/track`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/link/TrackCommand.java) — добавление ссылки для отслеживания |
| 54 | +- [**`/untrack`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/link/UntrackCommand.java) — удаление ссылки из списка отслеживаемых. |
| 55 | +- [**`/list`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/link/ListCommand.java) — получение списка всех отслеживаемых ссылок. |
| 56 | +- [**`/tag`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/tag/TagCommand.java) — выводит все ссылки, у которых есть определенный тег (/tag < tag >) |
| 57 | +- [**`/taglist`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/tag/TagListCommand.java) — все теги, которые ввел пользователь |
| 58 | +- [**`/untag`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/tag/UnTagCommand.java) — удаление тега у ссылки (/untag < tag > < link >) |
| 59 | +- [**`/filter`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/filter/FilterCommand.java) — позволяет добавить фильтр |
| 60 | +- [**`/filterlist`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/filter/FilterListCommand.java) — выводит все фильтры пользователя |
| 61 | +- [**`/unfilter`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/command/filter/UnFilterCommand.java) — удаление фильтров (/unfilter < filter >) |
| 62 | + |
39 | 63 |
|
40 | 64 | ### 🔄 Взаимодействие со Scrapper |
41 | 65 |
|
42 | 66 | Бот общается со Scrapper API через: |
43 | | -- [**`ChatClient`**]() — регистрация и удаление чатов. |
44 | | -- [**`LinkClient`**]() — управление ссылками (добавление, удаление, получение списка). |
45 | | -- [**`TagClient`**]() — для получения списка тегов и ссылок по тегу. |
| 67 | +- [**`ScrapperTgChatClient`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/client/chat/ScrapperTgChatClientImpl.java) — регистрация и удаление чатов. |
| 68 | +- [**`LinkClient`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/client/link/ScrapperLinkClientImpl.java) — управление ссылками (добавление, удаление, получение списка ссылок). |
| 69 | +- [**`TagClient`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/client/tag/ScrapperTagClientImpl.java) — получение списка тегов, получение ссылки по тегу и удаление тега у ссылки. |
| 70 | +- [**`ScrapperFilterClient`**](https://github.com/Delphington/LinterBot/blob/main/bot/src/main/java/backend/academy/bot/client/filter/ScrapperFilterClientImpl.java) — управление фильтрами (добавление, удаление, получение списка фильтров) |
46 | 71 |
|
47 | 72 | Scrapper API работает по OpenAPI-контракту. В случае ошибок ошибки логируются, корректную обработку ошибок и пересылку сообщений в чат выполняет [`ErrorHandler`](). |
48 | 73 |
|
|
0 commit comments