Bots til Mumble

Mumbot

Mumbot logger ind som et menneske, med sit eget certifikat. Derfor kører den på enhver almindelig Mumble-server, uden plugin og uden ændringer i serverkonfigurationen. Fra Mumcord-familien, open source under AGPL-3.0.

v0.1.1

To bots, ét program

Begge findes i det samme program, mumbot, til Linux, Windows, macOS og som Docker-image.

Webhook-bot

Overvågning, CI eller dit eget script sender én HTTP-forespørgsel med en API-nøgle, og botten skriver teksten i en Mumble-kanal.

  • Bestem pr. nøgle, hvilke kanaler den må skrive i
  • Fed, kursiv, kode, lister og links i Markdown
  • Kanaladgangskoder, genforbindelse efter afbrydelser og en fast identitet via sit certifikat
  • Rate limit og et klart svar på, om beskeden er kommet frem
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Dokumentation →

Testbot

En scriptet anden deltager til automatiske tests af Mumble-klienter. Mumcords egne tests kører på den.

  • Styr chat, status, rettigheder og moderation, og vent på betingelser
  • Afspil, optag og tjek niveauet af tale, med ægte Opus
  • En belastningstest fylder en lokal server med op til 1000 brugere
  • Exitkode 0 betyder bestået: passer ind i enhver CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Dokumentation →

Download

Arkivet indeholder programmet mumbot, README-filen og en eksempelkonfiguration, bot.example.toml.

Eller som Docker-image til amd64 og 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

Færdige Docker Compose-eksempler: webhook-bot, webhook-bot med sin egen Mumble-server til at prøve den af, og testbot i CI →

Kontrolsummer (SHA256SUMS) →

Roadmap

Ligesom Mumcord bygges Mumbot i epics. Epic 2 er et forslag ud fra de åbne issues og bliver stadig planlagt i detaljer.

  1. Epic 0

    færdig v0.1.0

    Testbot

    Den scriptede bot fra Mumcords tests, nu som sit eget program.

    • Chat, status, rettigheder og moderation, venten på betingelser og en scripttilstand
    • Afspil, optag og tjek niveauet af tale, med Opus som i Mumcord
    • Belastningstest med op til 1000 brugere på en lokal testserver
  2. Epic 1

    færdig v0.1.0

    Webhook-bot

    Beskeder udefra ind i en Mumble-kanal.

    • HTTP API med API-nøgler og tilladte kanaler pr. nøgle
    • Markdown, kanaladgangskoder, genforbindelse og rate limit
    • Programmer til Linux, Windows og macOS og et Docker-image
    • Siden 0.1.1: Docker Compose-eksempler og dokumentation om konfiguration, kommandolinje, HTTP API og sikkerhed
  3. Epic 2

    næste

    Moduler, musik og historik

    Én bot bliver til en værktøjskasse.

    • Moduler: vælg i konfigurationen eller på kommandolinjen, hvilke bots der kører, i ét program og ét image
    • Musikbot: send MP3'er eller links via HTTP, og botten afspiller dem i talekanalen med en kø
    • Historikbot: gemmer chatten i de kanaler, den må se, og giver den videre til Mumcord-brugere, der var offline. Aldrig private beskeder
    • Beskedkort: webhooken sender alarmer med titel, statusfarve, graf og link, som Mumcord viser som et kort
    • Justerbar bitrate til tale og musik, aldrig over serverens grænse
    • Peer-modul: registrerer serverens brugere hos et mumpeer-relay og fortæller Mumcord, at relayet findes
  4. Derefter

    senere

    Idéer

    Ikke planlagt endnu, men noteret.

    • En bot, der læser chatten og svarer på kommandoer
    • Tekst-til-tale eller alarmlyde i en kanal
    • Én bot til flere servere eller med flere identiteter
    • Hvisken og private beskeder, udskiftning af nøgler uden genstart, indbygget TLS
    • Husk serverens certifikat ved første kontakt, og afvis et ændret

En idé til en bot?

Ønsker samles i Mumbots issues på GitHub.

Foreslå en idé Kildekode på GitHub →