From 0449e08c8cd13a973ba8405e0fb5f9e62ee3e770 Mon Sep 17 00:00:00 2001 From: zaboal Date: Sun, 10 Sep 2023 20:23:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BB=20=D1=81?= =?UTF-8?q?=D1=85=D0=B5=D0=BC=D1=83=20=D0=B4=D0=B1=20=D0=B8=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BF=D0=B8=D0=BB=D0=B8=D0=BB=20=D0=B3=D0=B5=D1=80=D0=BA=D0=B8?= =?UTF-8?q?=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ditbot.feature | 58 ++++++++++++++++++++++++++++++++++++++++++++++ ditbot.schema.yaml | 45 +++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 ditbot.feature create mode 100644 ditbot.schema.yaml 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