лицензировал
This commit is contained in:
parent
849e22c0cc
commit
e06c9d7f78
3 changed files with 114 additions and 0 deletions
61
one.feature
Normal file
61
one.feature
Normal file
|
@ -0,0 +1,61 @@
|
|||
#language: ru
|
||||
|
||||
# спецификация поведения телеграм бота,
|
||||
# реализующего комментирование сообщний канала в группе с топиками.
|
||||
# cc-by-sa 4.0 © зажигин богдан, 2023
|
||||
|
||||
|
||||
|
||||
Функция: комментирование сообщений канала в группе с топиками
|
||||
|
||||
Предыстория:
|
||||
Пусть дистрибьютер зарегистировал <бот>а через BotFather
|
||||
И получил его <ключ> для Telegram Bot API (TBAPI)
|
||||
И запустил <приложен>ие передав <ключ>
|
||||
|
||||
Примеры:
|
||||
| бот | ключ | приложен |
|
||||
| @ditbot | 4839574812:AAFD39kkdpWt3ywyRZergyOLMaJhac60qc | github.com/zaboal/ditbot |
|
||||
|
||||
|
||||
Правило: <бот> добавлен со всеми необходимыми правами в чат, и инициатор сценария — его админ
|
||||
согласно типам TBAPI, канал и группа — чаты
|
||||
|
||||
Структура сценария: добавление канала в вайтлист группы
|
||||
Если админ напишет в группе «/<команд> <канал>»
|
||||
Тогда <приложен>ие внесёт <канал> в вайтлист
|
||||
|
||||
Примеры:
|
||||
| команд | групп | канал |
|
||||
| whitelist | @zbagab | @zbalog |
|
||||
|
||||
|
||||
Структура сценария: активирование канала в топиках группы
|
||||
Пусть <канал> есть в вайтлисте <групп>ы
|
||||
Если админ <канал>а напишет боту «/<команд> <канал> <групп>»
|
||||
Тогда <бот> создаст одноимённый с <канал>ом <топик> в <групп>е
|
||||
И пометит в базе данных как обслуживаемый
|
||||
|
||||
Примеры:
|
||||
| команд | канал | групп | топик |
|
||||
| activate | @zbalog | @zbagab | находки забоала |
|
||||
|
||||
|
||||
Структура сценария: привязка постов к группе
|
||||
Пусть <канал> помечен как обслуживаемый <групп>ой
|
||||
Когда в <канал> отправляется сообщение
|
||||
Тогда <бот> его копирует
|
||||
И удаляет из канала
|
||||
И прогнозирует <ссылк>у на репост в <групп>е
|
||||
И добавляет кнопку с данной <ссылк>ой
|
||||
И отправляет в <канал> и <топик>
|
||||
|
||||
|
||||
Структура сценария: комментирование поста
|
||||
Пусть <пост> привязан к группе
|
||||
Когда <пользовател>ь нажимает на кнопку под ним
|
||||
Тогда его перенаправляет к его <репост>у в <чат>е
|
||||
|
||||
Примеры:
|
||||
| пост | пользовател | репост | чат |
|
||||
| zbalog/150 | zaboal | ditgab/13/29 | ditgab |
|
48
one.schema.yaml
Normal file
48
one.schema.yaml
Normal file
|
@ -0,0 +1,48 @@
|
|||
# схема базы данных бота для telegram’а,
|
||||
# реализующего комментирование сообщений канала в группе с топиками.
|
||||
# cc-by-sa 4.0 © зажигин богдан, 2023
|
||||
|
||||
|
||||
|
||||
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
|
5
readme.adoc
Normal file
5
readme.adoc
Normal file
|
@ -0,0 +1,5 @@
|
|||
= Спецификация бота для Telegram’а, реализующего комментирование сообщений канала в группе с топиками
|
||||
|
||||
Спецификация поведения описана в link:one.feature[`one.feature`] на Gherkin’е, а схемы базы данных в link:one.schema.yaml[`one.schema.yaml`] на JSON Schem’е в формате YAML. Перевести его в JSON формат можно на сайте https://www.json2yaml.com/convert-yaml-to-json[json2yaml.com].
|
||||
|
||||
Разработка программ согласно концепциям разрешено исключительно c указанием авторства «Зажигина Богдана Алексеевича» согласно тексту лицензции https://creativecommons.org/licenses/by/4.0/legalcode.ru[creativecommons.org/licenses/by/4.0/legalcode.ru], если не указано другое.
|
Loading…
Add table
Reference in a new issue