Boți pentru Mumble

Mumbot

Mumbot se conectează ca un om, cu propriul certificat. De aceea merge pe orice server Mumble standard, fără plugin și fără nicio schimbare în configurația serverului. Din familia Mumcord, open source sub AGPL-3.0.

v0.1.1

Doi boți, un singur program

Amândoi stau în același program, mumbot, pentru Linux, Windows, macOS și ca imagine Docker.

Bot webhook

Monitorizarea, CI-ul sau propriul tău script trimite un request HTTP cu o cheie API, iar botul postează textul într-un canal Mumble.

  • Stabilești pentru fiecare cheie în ce canale poate scrie
  • Bold, italic, cod, liste și linkuri în Markdown
  • Parole de canal, reconectare după întreruperi și o identitate fixă prin certificatul său
  • Limită de rată și un răspuns clar dacă mesajul a ajuns
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Documentație →

Bot de test

Un al doilea participant scriptat pentru testarea automată a clienților Mumble. Chiar testele Mumcord rulează pe el.

  • Controlează chatul, starea, permisiunile și moderarea, și așteaptă condiții
  • Redă, înregistrează și verifică nivelul vocii, cu Opus adevărat
  • Un test de încărcare umple un server local cu până la 1000 de utilizatori
  • Exit code 0 înseamnă trecut: se potrivește în orice CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Documentație →

Descarcă

Arhiva conține programul mumbot, README-ul și o configurație de exemplu, bot.example.toml.

Sau ca imagine Docker pentru 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

Exemple Docker Compose gata de folosit: bot webhook, bot webhook cu propriul server Mumble ca să-l încerci și bot de test în CI →

Sume de control (SHA256SUMS) →

Roadmap

La fel ca Mumcord, Mumbot se construiește în epicuri. Epic 2 e o propunere pornită de la issue-urile deschise și urmează să fie planificat în detaliu.

  1. Epic 0

    gata v0.1.0

    Bot de test

    Botul scriptat din testele Mumcord, acum un program de sine stătător.

    • Chat, stare, permisiuni și moderare, așteptarea unor condiții și un mod script
    • Redarea, înregistrarea și verificarea nivelului vocii, cu Opus ca în Mumcord
    • Test de încărcare cu până la 1000 de utilizatori pe un server de test local
  2. Epic 1

    gata v0.1.0

    Bot webhook

    Mesaje din afară într-un canal Mumble.

    • API HTTP cu chei API și canale permise pentru fiecare cheie
    • Markdown, parole de canal, reconectare și limită de rată
    • Programe pentru Linux, Windows și macOS și o imagine Docker
    • De la 0.1.1: exemple Docker Compose și documentație pentru configurație, linia de comandă, API-ul HTTP și securitate
  3. Epic 2

    urmează

    Module, muzică și istoric

    Un bot devine o trusă de unelte.

    • Module: alegi ce boți rulează, în configurație sau din linia de comandă, într-un singur program și o singură imagine
    • Bot de muzică: trimiți MP3-uri sau linkuri prin HTTP, iar botul le redă în canalul de voce, cu o coadă
    • Bot de istoric: păstrează chatul canalelor pe care le poate vedea și îl dă utilizatorilor Mumcord care au fost offline. Niciodată mesajele private
    • Carduri de mesaj: webhook-ul trimite alerte cu titlu, culoare de stare, grafic și link, pe care Mumcord le arată ca un card
    • Bitrate reglabil pentru voce și muzică, niciodată peste limita serverului
    • Modul peer: înregistrează utilizatorii serverului la un releu mumpeer și îi spune lui Mumcord că releul există
  4. Mai departe

    mai târziu

    Idei

    Încă neplanificate, dar notate.

    • Un bot care citește chatul și răspunde la comenzi
    • Text-to-speech sau sunete de alertă într-un canal
    • Un bot pentru mai multe servere sau cu mai multe identități
    • Șoapte și mesaje private, schimbarea cheilor fără repornire, TLS integrat
    • Ține minte certificatul serverului la primul contact și refuză unul schimbat

Ai o idee de bot?

Dorințele ajung în issue-urile Mumbot de pe GitHub.

Propune o idee Cod sursă pe GitHub →