Boti za Mumble

Mumbot

Mumbot se prijavi kot človek, z lastnim certifikatom. Zato deluje na vsakem standardnem strežniku Mumble, brez vtičnika in brez sprememb nastavitev strežnika. Iz družine Mumcord, odprta koda pod licenco AGPL-3.0.

v0.1.1

Dva bota, en program

Oba živita v istem programu, mumbot, za Linux, Windows in macOS ter kot slika Docker.

Bot za webhooke

Nadzorni sistem, CI ali tvoj lastni skript pošlje eno zahtevo HTTP s ključem API, bot pa besedilo objavi v kanalu Mumble.

  • Za vsak ključ določiš, v katere kanale sme pisati
  • Krepko, ležeče, koda, seznami in povezave v Markdownu
  • Gesla kanalov, ponovna povezava po prekinitvah in stalna identiteta prek certifikata
  • Omejitev hitrosti in jasen odgovor, ali je sporočilo prispelo
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Dokumentacija →

Testni bot

Skriptiran drugi udeleženec za samodejne teste odjemalcev Mumble. Na njem tečejo tudi testi samega Mumcorda.

  • Upravljaj klepet, stanje, dovoljenja in moderiranje ter čakaj na pogoje
  • Predvajaj in snemaj glas ter preverjaj njegovo raven, s pravim kodekom Opus
  • Obremenitveni test napolni lokalni strežnik z do 1000 uporabniki
  • Izhodna koda 0 pomeni uspešno: ustreza vsakemu CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Dokumentacija →

Prenos

Arhiv vsebuje program mumbot, README in primer nastavitev, bot.example.toml.

Ali kot slika Docker za amd64 in 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

Pripravljeni primeri za Docker Compose: bot za webhooke, bot za webhooke z lastnim strežnikom Mumble za preizkus in testni bot v CI →

Kontrolne vsote (SHA256SUMS) →

Načrt razvoja

Tako kot Mumcord tudi Mumbot nastaja po epikih. Epic 2 je predlog iz odprtih prijav in bo še podrobno načrtovan.

  1. Epic 0

    končano v0.1.0

    Testni bot

    Skriptiran bot iz testov Mumcorda, zdaj kot samostojen program.

    • Klepet, stanje, dovoljenja in moderiranje, čakanje na pogoje in skriptni način
    • Predvajanje, snemanje in preverjanje ravni glasu, s kodekom Opus kot v Mumcordu
    • Obremenitveni test z do 1000 uporabniki na lokalnem testnem strežniku
  2. Epic 1

    končano v0.1.0

    Bot za webhooke

    Sporočila od zunaj v kanal Mumble.

    • HTTP API s ključi API in dovoljenimi kanali za vsak ključ
    • Markdown, gesla kanalov, ponovne povezave in omejitev hitrosti
    • Programi za Linux, Windows in macOS ter slika Docker
    • Od 0.1.1: primeri za Docker Compose in dokumentacija za nastavitve, ukazno vrstico, HTTP API in varnost
  3. Epic 2

    naslednje

    Moduli, glasba in zgodovina

    En bot postane zbirka orodij.

    • Moduli: v nastavitvah ali v ukazni vrstici izbereš, kateri boti tečejo, v enem programu in eni sliki
    • Glasbeni bot: pošlji MP3-je ali povezave prek HTTP, bot pa jih predvaja v glasovnem kanalu, s čakalno vrsto
    • Bot za zgodovino: hrani klepet kanalov, ki jih sme videti, in ga preda uporabnikom Mumcorda, ki niso bili povezani. Nikoli zasebnih sporočil
    • Kartice sporočil: webhook pošilja opozorila z naslovom, barvo stanja, grafom in povezavo, ki jih Mumcord prikaže kot kartico
    • Nastavljiva bitna hitrost za govor in glasbo, nikoli nad omejitvijo strežnika
    • Modul peer: prijavi uporabnike strežnika pri posredniku mumpeer in Mumcordu sporoči, da posrednik obstaja
  4. Potem

    pozneje

    Ideje

    Še ni načrtovano, je pa zabeleženo.

    • Bot, ki bere klepet in odgovarja na ukaze
    • Pretvorba besedila v govor ali opozorilni zvoki v kanalu
    • En bot za več strežnikov ali z več identitetami
    • Šepetanje in zasebna sporočila, menjava ključev brez ponovnega zagona, vgrajen TLS
    • Ob prvem stiku si zapomni certifikat strežnika in zavrne spremenjenega

Imaš idejo za bota?

Želje gredo v prijave Mumbota na GitHubu.

Predlagaj idejo Izvorna koda na GitHubu →