diff --git a/ditbot.feature b/ditbot.feature new file mode 100644 index 0000000..1ff9dfa --- /dev/null +++ b/ditbot.feature @@ -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 | diff --git a/ditbot.schema.yaml b/ditbot.schema.yaml new file mode 100644 index 0000000..b1ef722 --- /dev/null +++ b/ditbot.schema.yaml @@ -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