описал схему дб и допилил геркин
This commit is contained in:
parent
8fdb3b8186
commit
0449e08c8c
2 changed files with 103 additions and 0 deletions
58
ditbot.feature
Normal file
58
ditbot.feature
Normal 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
45
ditbot.schema.yaml
Normal 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
|
Loading…
Add table
Reference in a new issue