Botovi za Mumble

Mumbot

Mumbot se prijavljuje kao čovjek, s vlastitim certifikatom. Zato radi na bilo kojem standardnom Mumble poslužitelju, bez plugina i bez promjena u konfiguraciji poslužitelja. Iz obitelji Mumcord, otvoreni kod pod licencom AGPL-3.0.

v0.1.1

Dva bota, jedan program

Oba žive u istom programu, mumbot, za Linux, Windows i macOS te kao Docker image.

Webhook bot

Monitoring, CI ili tvoja vlastita skripta pošalje jedan HTTP zahtjev s API ključem, a bot objavi tekst u Mumble kanalu.

  • Za svaki ključ odrediš u koje kanale smije pisati
  • Podebljano, kurziv, kod, popisi i poveznice u Markdownu
  • Lozinke kanala, ponovno spajanje nakon prekida i stalni identitet zahvaljujući certifikatu
  • Ograničenje brzine i jasan odgovor je li poruka stigla
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

Skriptirani drugi sudionik za automatizirane testove Mumble klijenata. Na njemu se vrte i Mumcordovi vlastiti testovi.

  • Upravljaj chatom, stanjem, dopuštenjima i moderacijom te čekaj na uvjete
  • Reproduciraj i snimaj glas te provjeravaj njegovu razinu, s pravim Opus kodekom
  • Test opterećenja puni lokalni poslužitelj s do 1000 korisnika
  • Izlazni kod 0 znači prošlo: uklapa se u bilo koji CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Dokumentacija →

Preuzimanje

Arhiva sadrži program mumbot, README i primjer konfiguracije, bot.example.toml.

Ili kao Docker image za 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

Gotovi Docker Compose primjeri: webhook bot, webhook bot s vlastitim Mumble poslužiteljem za isprobavanje i testni bot u CI-ju →

Kontrolni zbrojevi (SHA256SUMS) →

Plan razvoja

Kao i Mumcord, Mumbot se gradi u epicima. Epic 2 je prijedlog iz otvorenih issueja i tek će se detaljno planirati.

  1. Epic 0

    gotovo v0.1.0

    Testni bot

    Skriptirani bot iz Mumcordovih testova, sada kao zaseban program.

    • Chat, stanje, dopuštenja i moderacija, čekanje na uvjete i skriptni način rada
    • Reprodukcija, snimanje i provjera razine glasa, s Opus kodekom kao u Mumcordu
    • Test opterećenja s do 1000 korisnika na lokalnom testnom poslužitelju
  2. Epic 1

    gotovo v0.1.0

    Webhook bot

    Poruke izvana u Mumble kanal.

    • HTTP API s API ključevima i dopuštenim kanalima po ključu
    • Markdown, lozinke kanala, ponovno spajanje i ograničenje brzine
    • Programi za Linux, Windows i macOS te Docker image
    • Od 0.1.1: Docker Compose primjeri i dokumentacija za konfiguraciju, naredbeni redak, HTTP API i sigurnost
  3. Epic 2

    sljedeće

    Moduli, glazba i povijest

    Jedan bot postaje komplet alata.

    • Moduli: u konfiguraciji ili naredbenom retku biraš koji botovi rade, u jednom programu i jednom imageu
    • Glazbeni bot: pošalji MP3-ice ili poveznice preko HTTP-a, a bot ih pušta u glasovnom kanalu, s redom čekanja
    • Bot za povijest: čuva chat kanala koje smije vidjeti i predaje ga korisnicima Mumcorda koji su bili offline. Nikad privatne poruke
    • Kartice poruka: webhook šalje upozorenja s naslovom, bojom statusa, grafom i poveznicom, koja Mumcord prikazuje kao karticu
    • Podesiv bitrate za govor i glazbu, nikad iznad ograničenja poslužitelja
    • Peer modul: registrira korisnike poslužitelja kod mumpeer relaya i javlja Mumcordu da relay postoji
  4. Nakon toga

    kasnije

    Ideje

    Još nije planirano, ali je zabilježeno.

    • Bot koji čita chat i odgovara na naredbe
    • Pretvaranje teksta u govor ili zvukovi upozorenja u kanalu
    • Jedan bot za više poslužitelja ili s više identiteta
    • Šaputanje i privatne poruke, zamjena ključeva bez ponovnog pokretanja, ugrađeni TLS
    • Zapamtiti certifikat poslužitelja pri prvom kontaktu i odbiti promijenjeni

Imaš ideju za bota?

Želje idu u Mumbotove issueje na GitHubu.

Predloži ideju Izvorni kod na GitHubu →