A set of tools for creating bots.

Milinuri Nirvalen d0351c04fb [lib]: Improve code quality преди 1 година
backends bdb8f51975 Rename: flibs -> libs преди 1 година
chiori d0351c04fb [lib]: Improve code quality преди 1 година
libs d0351c04fb [lib]: Improve code quality преди 1 година
plugins d0351c04fb [lib]: Improve code quality преди 1 година
scripts 577754a1a8 [Scr:Cardinal] Improve code quality преди 1 година
.gitignore df8f687324 Add: venv to .gitignore преди 1 година
LICENSE 057ce900f5 Update: LICENSE преди 1 година
README.md d0351c04fb [lib]: Improve code quality преди 1 година
changelog.md d0351c04fb [lib]: Improve code quality преди 1 година
requirements.txt 88273267c1 Add: "loguru" to dependency list преди 1 година
start.py 4eb7f5cd04 [Starter] Improve code quality преди 1 година

README.md

ChioHub

Tools for creating chat-bots.

История изменений проекта - changelog.md

Простой самописный набор инструментов для разработки чат ботов. Нет никаких гарантий работоспособности :)

В проекте находится:

  • Ядро обработки ввода-вывода.
  • Система загрузки плагинов.
  • Самописный движок для ВК.
  • Множество плагинов.

почему вас НЕ стоит сюда смотреть:

  • Много багов.
  • Ещё больше кривого кода!
  • Нету асинхронности!

Установка

Первым делом спрочите себя, зачем вам это надо?

# клонируем
git clone https://notabug.org/milinuri/chioHub

# Создаём окружение
python -m venv venv

# Запускаем окружение
sourcew venv/bin/activate

# Зависимости
pip install -r requirements.txt

Запуск

Запуск проходит из виртуального окружения. Для запуска воспользуйстесь файлом start.py.

Или минимальный скрипт для запуска на движке ВК:

from chiori import Chio, load_plugins
from backends.vk import VkGroup

app = Chio(VkGroup) # Cоздаём экземпляр чио
load_plugins(app) # Загружаем пакеты из "plugins/"
app.start() # запускаем движок

После первого запуска будет создан файл с настройками (config.toml), рабочие директории и файлы. В файл config.toml вам будет нужно указать данные для авторизации движка, например:

[vk_backend]

# (str): id группы, без "-"
group_id = "202172365"

# (str): Токен группы (и пользователя по желанию)
token = "ТОКЕН ГРУППЫ"
user_token = "ТОКЕН ПОЛЬЗОВАТЕЛЯ"

# (str): ID Заблокированных чатов и администаров Чио
# Удобно управляется через plugins/vk-utils
banned_chats = []
admins = [ "628901097"]

Написание плагинов

Функционал сборки Чио завист от установленных вами плагинов. Плагинами называюься подпрограммы, описываюшие команды и обработчики. Все плагины распологаются в директории plugins/.

Пример эхо-плагина.

from chiori import Plugin

# Создаём новый плагин, обязательно указываем его имя.
p = Plugin("Эхо", desc="Отправляет вам ваши сообщения")

# Создаём новые команды /echo /эхо.
# Будет лучше, если вы укажите, что делает эта команда.
# В описании команды отвечайте на вопрос "что сделать?".
@p.command("эхо", usage="[text] Вернуть отравленный текст")
async def echo(event, ctx):

    # ctx.message, при отцуцтвии peer_id отправляет сообщение обратно.
    # В тексте сообщения возврашаем полученный от пользователя текст.
    await ctx.message(ctx.sargs)

Тут могла быть нормальная документация...

To-do

Начался цикл полной переработки проекта до Chiori v3. Список может дополнится.

  • libs: Первичное обновление библиотек.
  • Chiori: Обновление кода ядра.
  • Chiori: Применение патчей из прототипов v3.
  • Chiori: Новая система плагинов.
  • Backend: Создание абстрактного класса движка.
  • Backend: Распределение функциональности движка.
  • Backend: Обновление кода движков.
  • Chiori: Новая система пользователей.
  • Libs: Вторичное обновление библиотек.
  • Plugins: Обновление плагинов.
  • Port: Обновление плагинов старых версий.
  • Port: Портирование сторонних плагинов.
  • Minigame: Портирование маленького движка текстовой игры.