Closed nukdokplex closed 1 year ago
Было бы здорово не писать условие внутри функции, а просто импортировать готовый декоратор для нее
Я полагаю, вы это и сделали? Получается ничего в самой библиотеке делать и надо) Можно готовые добавить куда-нибудь – в отдельный модуль или в плагин. Можете поделиться реализацией? Может просто стоит их добавить
Я полагаю, вы это и сделали? Получается ничего в самой библиотеке делать и надо) Можно готовые добавить куда-нибудь – в отдельный модуль или в плагин. Можете поделиться реализацией? Может просто стоит их добавить
Я крайне огорчен вашей политикой. Отвечу только в этом issue на счет остальных моих трех.
Я не считаю, что скажем, такая простая вещь как добавление пары-тройки действительно нужных фич - это инфраструктурное рабство разработчиков ботов. Ими же можно, к примеру, просто не пользоваться и от этого с производительностью ничего не случится, но зато разработчикам ботов не придется изобретать велосипед или импортировать еще одну бииблиотеку, которую непонятно, где вообще взять, из gist'ов разве что, даже которых я не нашел.
Скорее всего это является частью вашей философии - создание гибчайшего инструмента в котором не будет ничего лишнего. Отчасти, это действительно хорошо. Но лично я вижу в этом огромную проблему. Kutana могла бы стать очень мощным инструментом создания ботов, например как Red, а возможно даже еще мощнее из-за своей мультиплатформенности, но из-за вашей философии она остаётся тем, чем является сейчас - сомнительной библиотекой, хотя может стать настоящим фреймворком.
Исходя из ваших ответов, я принял решение форкнуть Kutana и попытаться сделать то, о чем я говорил.
Я же буквально попросил у вас реализацию, чтобы добавить её в kutana. Идею про парсинг команд я написал, что сделаю отдельную issue, в которой всё сформулирую. По подмодулям - там надо немного доработать, но уже сейчас по папкам можно плагины размещать. Про переводы я сказал, что у меня просто ресурсов нет доработать, и лучше оставить на откуп разработчикам. Так что ответ не соответствует моим сообщениям в ваших issue. "Cомнительная библиотека" - это, конечно, сильно сказано)
@michaelkryukov Я конечно сделал, но это было на коленке, так скажем. Однако, если вам это поможет, то я рад поделиться. Но их нужно дебажить.
https://gist.github.com/nukdokplex/e5a659ab0cccb7d97f46d9c3c6c9d576
Не стал создавать pull request. И насчет форка я еще пожалуй тоже подумаю.
@nukdokplex я, если что, готов с радостью принимать хорошие изменения) Так что в форке, вроде, нет особой необходимости. За гист спасибо, посмотрю для контекста, как минимум
Экспериментально релизнул немного декораторов в мастер (https://github.com/ekonda/kutana/blob/master/kutana/decorators.py). Предложения/критика принимается в виде созданных новых ищусов
Когда разработчики разрабатывают плагины, они хотят видеть больше возможностей для разграничения доступа для различных пользователей. К примеру, разработчик пишет плагин для модерации мультичата (беседы). Ему необходимо ограничить доступ к командам, например к команде, которая банит участника. Было бы здорово не писать условие внутри функции, а просто импортировать готовый декоратор для нее. И декоратор, который проверяет, является ли отправитель (sender) администратором мультичата, этакий
@plugin.is_chat_admin()
.Ожидаемое поведение
Хотелось бы видеть следующие декораторы:
@is_solo()
- является ли чат диалогом@is_multi()
- является ли чат мультичатом (беседой)@is_owner()
- является ли отправитель создателем бота@is_chat_owner()
- является ли отправитель создателем чата (да, если диалог)@is_chat_admin()
- является ли отправитель администратором чата (да, если диалог)@is_backend(backend)
- проверка бэкенда, через который пришло сообщениеВозможно удастся придумать их больше, но я столкнулся с необходимость иметь хотя-бы эти.
Текущее поведение
Приведенных выше декораторов не существует в
Kutana
.Возможные решения
Нужно - всего-то - ничего, просто добавить эти декораторы в
kutana.Plugin
.Контекст
Эти декораторы мне очень сильно понадобились, когда я писал своего бота. Пришлось писать их с нуля, потому что в моем боте есть очень много плагинов с разграничением доступа.