Ботове за Mumble

Mumbot

Mumbot влиза като човек, със собствен сертификат. Затова работи на всеки стандартен Mumble сървър, без плъгин и без промени в конфигурацията на сървъра. От семейството на Mumcord, с отворен код под AGPL-3.0.

v0.1.1

Два бота, една програма

И двата живеят в една и съща програма, mumbot, за Linux, Windows, macOS и като Docker образ.

Webhook бот

Мониторинг, CI или твой собствен скрипт изпраща една HTTP заявка с API ключ, а ботът публикува текста в Mumble канал.

  • За всеки ключ задаваш в кои канали може да пише
  • Удебелен текст, курсив, код, списъци и линкове в Markdown
  • Пароли за канали, повторно свързване след прекъсване и постоянна идентичност чрез сертификата
  • Ограничение на честотата и ясен отговор дали съобщението е пристигнало
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Документация →

Тестов бот

Скриптиран втори участник за автоматични тестове на Mumble клиенти. На него вървят и собствените тестове на Mumcord.

  • Управлява чат, състояние, права и модерация и чака да се изпълнят условия
  • Пуска, записва и проверява нивото на гласа, с истински Opus
  • Тест за натоварване пълни локален сървър с до 1000 потребители
  • Код на изход 0 означава успех: пасва във всеки CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Документация →

Изтегляне

Архивът съдържа програмата mumbot, README и примерна конфигурация, bot.example.toml.

Или като Docker образ за amd64 и arm64:

Docker
docker run -d --name mumbot \
  -v "$PWD/bot.toml:/config/bot.toml:ro" \
  -v mumbot-data:/data -p 127.0.0.1:8080:8080 \
  ghcr.io/mumcord/mumbot:0.1.1

Готови примери за Docker Compose: webhook бот, webhook бот със собствен Mumble сървър за изпробване и тестов бот в CI →

Контролни суми (SHA256SUMS) →

Пътна карта

Както Mumcord, и Mumbot се изгражда на етапи (epics). Epic 2 е предложение от отворените issues и тепърва ще се планира в детайли.

  1. Epic 0

    готово v0.1.0

    Тестов бот

    Скриптираният бот от тестовете на Mumcord, вече като самостоятелна програма.

    • Чат, състояние, права и модерация, изчакване на условия и режим на скрипт
    • Пускане, запис и проверка на нивото на гласа, с Opus като в Mumcord
    • Тест за натоварване с до 1000 потребители на локален тестов сървър
  2. Epic 1

    готово v0.1.0

    Webhook бот

    Съобщения отвън в Mumble канал.

    • HTTP API с API ключове и разрешени канали за всеки ключ
    • Markdown, пароли за канали, повторно свързване и ограничение на честотата
    • Програми за Linux, Windows и macOS и Docker образ
    • От 0.1.1: примери за Docker Compose и документация за конфигурацията, командния ред, HTTP API и сигурността
  3. Epic 2

    следва

    Модули, музика и история

    Един бот става цял набор от инструменти.

    • Модули: избираш кои ботове да вървят в конфигурацията или от командния ред, в една програма и един образ
    • Музикален бот: изпращаш MP3 файлове или линкове през HTTP, а ботът ги пуска в гласовия канал с опашка
    • Бот за история: пази чата на каналите, които може да вижда, и го предава на потребителите на Mumcord, които са били офлайн. Никога лични съобщения
    • Карти със съобщения: webhook-ът изпраща сигнали със заглавие, цвят за статус, графика и линк, които Mumcord показва като карта
    • Настройваем битрейт за говор и музика, никога над лимита на сървъра
    • Peer модул: регистрира потребителите на сървъра в mumpeer релей и съобщава на Mumcord, че релеят съществува
  4. След това

    по-късно

    Идеи

    Още не е планирано, но е записано.

    • Бот, който чете чата и отговаря на команди
    • Текст в говор или звуци за сигнали в канал
    • Един бот за няколко сървъра или с няколко идентичности
    • Шепот и лични съобщения, смяна на ключове без рестарт, вграден TLS
    • Запомняне на сертификата на сървъра при първия контакт и отказ, ако се е променил

Идея за бот?

Желанията отиват в issues на Mumbot в GitHub.

Предложи идея Кодът в GitHub →