описал схему дб и допилил геркин
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