Comments (3)
На данный момент запуск kutana с нуля выглядит примерно так:
- Установить модуль
kutana
- Скопировать
run.py
- Добавить плагины:
- разрабатывать свои плагины из папки
/plugins
; - закинуть скачанный плагин в папку
/plugins
(словно это мод для игры) - установить модуль через
pip install
(можно даже из git-репозитория) + добавитьapp.add_plugins(installed_plugin)
.
- разрабатывать свои плагины из папки
- Запустить бота
python3 run.py
Это уже похоже на конструктор, только кирпичиков не хватает). Если действительно хочется что-то придумывать с вовсе без навыков программирования
– надо думать над созданием графического интерфейса, или веб-интерфейса, через который можно будет управлять тем, чем сейчас надо управлять через терминал. Не думаю, что есть смысл этим заниматься, по крайней мере сейчас.
В итоге, на мой взгляд, нужно скорректировать CLI интерфейс запуска kutana, задокументировать его, и сделать отдельный репозиторий с морем классных и согласованных между собой плагинов, которые будет просто установить и использовать. Скорее всего, именно это и нужно "народу" (чтобы бота можно было запускать из одного файла с токенами и списком плагинов), и покрывает все аспекты, затронутые в этом issue.
Я могу сделать репозиторий kutana-plugins
, и туда можно будет "вписаться" созданием плагинов. Аналог /help
уже есть в примерах плагинов – https://github.com/ekonda/kutana/blob/master/example/plugins/plugins.py. Ну и создать issue для правки CLI + переписывания документации.
P.S. Я не уверен, на сколько внедрение функционала добавления плагинов "на лету" действительно критично для большинства пользователей. Просто "отредактировать файл со списком плагинов и перезапустить" должно быть более чем достаточно.
from kutana.
Если действительно хочется что-то придумывать с
вовсе без навыков программирования
– надо думать над созданием графического интерфейса, или веб-интерфейса, через который можно будет управлять тем, чем сейчас надо управлять через терминал.
Графический интерфейс - это немного чересчур для бота, особенно, когда в большинстве случаев бот запускается на Linux через SSH. Использование интерфейса команд прямо в мессенджере - это гораздо более лаконичный вариант, на мой взгляд, опираясь на опыт Red.
В итоге, на мой взгляд, нужно скорректировать CLI интерфейс запуска kutana, задокументировать его, и сделать отдельный репозиторий с морем классных и согласованных между собой плагинов, которые будет просто установить и использовать.
Для того, чтобы разработчики разрабатывали согласованные между собой плагины - нужно их стандартизировать, нельзя полагаться на стороннюю реализацию - лично я рекомендую представить плагины в качестве реализации абстрактного класса плагина и добавить полный набор стандартных инструментов (к примеру те декораторы, которые я вам предоставил в другом моем issue, еще было бы неплохо не удалять i18n, а сделать его рабочий вариант, я думаю это не так сложно, тем более уже существует gettext
).
В итоге, на мой взгляд, нужно скорректировать CLI интерфейс запуска kutana, задокументировать его, и сделать отдельный репозиторий с морем классных и согласованных между собой плагинов, которые будет просто установить и использовать.
Действительно, сейчас в аргументах запуска бардак, с этим нужно что-то делать.
Аналог /help уже есть в примерах плагинов
Боюсь, это ужасный аналог. Плагины могут представлять собой сборник из нескольких десятков команд одной тематики. Опять же повторяю - идеальный и лаконичный вариант - это писать описание каждой команды в docstring. У python есть средства для их чтения.
P.S. Я не уверен, на сколько внедрение функционала добавления плагинов "на лету" действительно критично для большинства пользователей. Просто "отредактировать файл со списком плагинов и перезапустить" должно быть более чем достаточно.
Боюсь это критично, когда владелец бота устанавливает, подгружает, выгружает (модифицирует) команды через специальный загрузочный плагин. Опять же, сценарий я уже привел:
Буквально, ввел пару-тройку команд, настроил, запустил и мгновение спустя отдаешь боту команды на установку плагинов на свое усмотрение. Грубо говоря, собираешь своего бота, как конструктор. Могу привести аналогию: словно ты установил игру и не зная ни одного языка программирования, устанавливаешь в него различные моды.
... прямо, в самой игре! Как например в Factorio.
from kutana.
Веб-интерфейс для запущенного на сервере бота (или любого другого ПО) – это достаточно стандартное решение в наше время, объективно говоря. Скорее всего, все пользователи предпочли бы его. Даже те, кто привык к динамически подгружаемым плагинам через команды.
Вообще нет необходимости что-либо стандартизировать сильнее, чем сейчас – все плагины реализовывают какой угодно функционал, и могут взаимодействовать между собой как угодно. Для использования gettext
не нужно ничего в боте разрабатывать, поэтому модуль 'i18n' и нужно удалить.
Это просто пример, который показывает, что сейчас, без каких-либо доработок можно реализовать плагин с помощью. Не с проста же он в папке "examples"
Существование "плагина для настраивания других плагинов" критично, если кому-то нужно во время работы бота изменять список активных плагинов. Лично я бы однозначно предпочёл создать файл с перечнем плагинов, их конфигураций, конфигурации платформ, и запускать этот файл. Но тут можно подумать.
В общем итог, на мой взгляд – надо просто сделать больше готовых плагинов, и инструкцию из трёх пунктов (установить, вписать настроечки, запустить), которая будет работать. Тогда все хотелки из этого тикета будут выполнены, кроме динамического изменения списка активных плагинов, хотя и это можно, наверное, сделать в качестве простого плагина
from kutana.
Related Issues (20)
- Use bot mention (example: "@bot_name") as default prefix
- [Вопрос] Реализация проверки триггера определенного декоратора во всех плагинах. HOT 3
- [BUG] Перестает тригериться один из декораторов on_payloads
- [Вопрос] Не делать ожидание в некоторых плагинах. HOT 1
- Add the ability to trigger commands without a prefix HOT 1
- on_commands does not ignore prefix when bot mentioned in private messages
- Возможность добавлять описание аттачей при их загрузке (Telegram) HOT 1
- Инкапсулируйте плагины в поддиректории HOT 1
- Добавьте больше декораторов - модификаторов доступа HOT 7
- Более гибкая система команд HOT 1
- Переписать клиентский код с aiohttp на httpx HOT 2
- Добавить `.get` метод для Document в хранилищах HOT 1
- Упразднить и удалить части библиотеки, связанные с i18n
- Обновить метод рекурсивной загрузки плагинов
- Добавьте Discord backend
- Добавить новый декоратор "schedule" HOT 4
- Добавить дополнительную защиту от лимита в групповых чатах. HOT 1
- Ошибка при обработке update HOT 3
- Производительность httpx почти в 2 раза ниже чем aiohttp HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kutana.