1
0
Fork 0

описал схему дб и допилил геркин

This commit is contained in:
bogdan zažigin 2023-09-10 20:23:57 +03:00
parent 8fdb3b8186
commit 0449e08c8c
2 changed files with 103 additions and 0 deletions

58
ditbot.feature Normal file
View file

@ -0,0 +1,58 @@
#language: ru
Функция: комментирование сообщений канала в группе с топиками
Предыстория:
Пусть дистрибьютер зарегистировал <бот>а через BotFather
И получил его <ключ> для Telegram Bot API (TBAPI)
И запустил <приложен>ие передав <ключ>
Примеры:
| бот | ключ | приложен |
| @ditbot | 4839574812:AAFD39kkdpWt3ywyRZergyOLMaJhac60qc | github.com/zaboal/ditbot |
Правило: <бот> добавлен со всеми необходимыми правами в чат, и инициатор сценария его админ
согласно типам TBAPI, канал и группа чаты
Структура сценария: добавление канала в вайтлист группы
Если админ напишет в группе «/<команд> <канал>»
Тогда <приложен>ие внесёт <канал> в вайтлист
Примеры:
| команд | групп | канал |
| whitelist | @zbagab | @zbalog |
Структура сценария: активирование канала в топиках группы
Пусть <канал> есть в вайтлисте <групп>ы
Если админ <канал>а напишет боту «/<команд> <канал> <групп>»
Тогда <бот> создаст одноимённый с <канал>ом <топик> в <групп>е
И пометит в базе данных как обслуживаемый
Примеры:
| команд | канал | групп | топик |
| activate | @zbalog | @zbagab | находки забоала |
Структура сценария: привязка постов к группе
Пусть <канал> помечен как обслуживаемый <групп>ой
Когда в <канал> отправляется сообщение
Тогда <бот> его копирует
И удаляет из канала
И прогнозирует <ссылк>у на репост в <групп>е
И добавляет кнопку с данной <ссылк>ой
И отправляет в <канал> и <топик>
Примеры:
| канал | спис | чат | п|
| zbalog | zbalog, bouflive | ditgab |
Структура сценария: комментирование поста
Пусть <пост> привязан к группе
Когда <пользовател>ь нажимает на кнопку под ним
Тогда его перенаправляет к его <репост>у в <чат>е
Примеры:
| пост | пользовател | репост | чат |
| zbalog/150 | zaboal | ditgab/13/29 | ditgab |

45
ditbot.schema.yaml Normal file
View file

@ -0,0 +1,45 @@
# схема базы данных
# © зажигин б.а.
title: "Группы и их список обсулижваемых/необслуживаемых каналов"
type: array
minItems: 1
uniqueItems: true
items:
title: "Каналы привязанные к группе с топиками"
type: object
required:
- group_id
- whitelist
properties:
group_id:
title: "Идентификатор группы"
description: "Согласно строке «id» из core.telegram.org/bots/api#chat."
type: integer
whitelist:
type: array
minItems: 1
items:
type: object
required:
- channel_id
dependentRequired:
active:
- channel_id
properties:
channel_id:
title: "Идентификатор канала"
description: "Согласно строке «id» из core.telegram.org/bots/api#chat."
type: integer
examples:
- 1001973121320
- 1001523889521
active:
title: "Обслуживание"
description: "Каналы сначала добавляются к группе, как возможные для привязки к топику, и только потом могут быть активированы."
type: boolean
examples:
- true
- false