Boty dla Mumble

Mumbot

Mumbot loguje się jak człowiek, z własnym certyfikatem. Dlatego działa na każdym standardowym serwerze Mumble, bez wtyczki i bez zmian w konfiguracji serwera. Z rodziny Mumcorda, open source na licencji AGPL-3.0.

v0.1.1

Dwa boty, jeden program

Oba mieszkają w tym samym programie, mumbot, dla Linuxa, Windowsa i macOS oraz jako obraz Docker.

Bot webhook

Monitoring, CI albo twój własny skrypt wysyła jedno żądanie HTTP z kluczem API, a bot publikuje tekst na kanale Mumble.

  • Dla każdego klucza ustawisz, na których kanałach może pisać
  • Pogrubienie, kursywa, kod, listy i linki w Markdown
  • Hasła kanałów, ponowne łączenie po zerwaniu i stała tożsamość dzięki certyfikatowi
  • Limit częstotliwości i jasna odpowiedź, czy wiadomość dotarła
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Dokumentacja →

Bot testowy

Oskryptowany drugi uczestnik do automatycznych testów klientów Mumble. Na nim działają testy samego Mumcorda.

  • Steruj czatem, stanem, uprawnieniami i moderacją oraz czekaj na warunki
  • Odtwarzaj i nagrywaj głos oraz sprawdzaj jego poziom, z prawdziwym kodekiem Opus
  • Test obciążeniowy zapełnia lokalny serwer nawet 1000 użytkownikami
  • Kod wyjścia 0 oznacza zaliczone: pasuje do każdego CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Dokumentacja →

Pobierz

Archiwum zawiera program mumbot, README i przykładową konfigurację, bot.example.toml.

Albo jako obraz Docker dla amd64 i 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

Gotowe przykłady Docker Compose: bot webhook, bot webhook z własnym serwerem Mumble do wypróbowania i bot testowy w CI →

Sumy kontrolne (SHA256SUMS) →

Plan rozwoju

Tak jak Mumcord, Mumbot powstaje w epikach. Epic 2 to propozycja na podstawie otwartych zgłoszeń i dopiero zostanie szczegółowo zaplanowany.

  1. Epic 0

    gotowe v0.1.0

    Bot testowy

    Oskryptowany bot z testów Mumcorda, teraz jako osobny program.

    • Czat, stan, uprawnienia i moderacja, czekanie na warunki i tryb skryptowy
    • Odtwarzanie, nagrywanie i sprawdzanie poziomu głosu, z kodekiem Opus jak w Mumcordzie
    • Test obciążeniowy z maksymalnie 1000 użytkowników na lokalnym serwerze testowym
  2. Epic 1

    gotowe v0.1.0

    Bot webhook

    Wiadomości z zewnątrz na kanale Mumble.

    • HTTP API z kluczami API i dozwolonymi kanałami dla każdego klucza
    • Markdown, hasła kanałów, ponowne łączenie i limit częstotliwości
    • Programy dla Linuxa, Windowsa i macOS oraz obraz Docker
    • Od 0.1.1: przykłady Docker Compose i dokumentacja konfiguracji, wiersza poleceń, HTTP API i bezpieczeństwa
  3. Epic 2

    następne

    Moduły, muzyka i historia

    Jeden bot staje się zestawem narzędzi.

    • Moduły: w konfiguracji lub w wierszu poleceń wybierasz, które boty działają, w jednym programie i jednym obrazie
    • Bot muzyczny: wyślij pliki MP3 lub linki przez HTTP, a bot odtworzy je na kanale głosowym, z kolejką
    • Bot historii: przechowuje czat kanałów, które może widzieć, i przekazuje go użytkownikom Mumcorda, którzy byli offline. Nigdy prywatnych wiadomości
    • Karty wiadomości: webhook wysyła alerty z tytułem, kolorem statusu, wykresem i linkiem, które Mumcord pokazuje jako kartę
    • Regulowany bitrate dla mowy i muzyki, nigdy powyżej limitu serwera
    • Moduł peer: rejestruje użytkowników serwera w przekaźniku mumpeer i daje Mumcordowi znać, że przekaźnik istnieje
  4. Potem

    później

    Pomysły

    Jeszcze nie zaplanowane, ale zanotowane.

    • Bot, który czyta czat i odpowiada na polecenia
    • Synteza mowy lub dźwięki alertów na kanale
    • Jeden bot dla kilku serwerów lub z kilkoma tożsamościami
    • Szepty i prywatne wiadomości, wymiana kluczy bez restartu, wbudowany TLS
    • Zapamiętanie certyfikatu serwera przy pierwszym kontakcie i odrzucanie zmienionego

Pomysł na bota?

Życzenia trafiają do zgłoszeń Mumbota na GitHubie.

Zaproponuj pomysł Kod źródłowy na GitHubie →