Botit Mumbleen

Mumbot

Mumbot kirjautuu sisään kuin ihminen, omalla varmenteellaan. Siksi se toimii millä tahansa tavallisella Mumble-palvelimella ilman lisäosaa ja ilman muutoksia palvelimen asetuksiin. Mumcord-perheestä, avointa lähdekoodia AGPL-3.0-lisenssillä.

v0.1.1

Kaksi bottia, yksi ohjelma

Molemmat ovat samassa ohjelmassa, mumbot, Linuxille, Windowsille, macOS:lle ja Docker-imagena.

Webhook-botti

Valvonta, CI tai oma skriptisi lähettää yhden HTTP-pyynnön API-avaimella, ja botti kirjoittaa tekstin Mumble-kanavalle.

  • Määritä avainkohtaisesti, mille kanaville se saa kirjoittaa
  • Lihavointi, kursiivi, koodi, listat ja linkit Markdownilla
  • Kanavien salasanat, uudelleenyhdistäminen katkosten jälkeen ja pysyvä identiteetti varmenteen ansiosta
  • Nopeusrajoitus ja selkeä vastaus siitä, menikö viesti perille
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Ohjeet →

Testibotti

Skriptattu toinen osallistuja Mumble-sovellusten automaattisiin testeihin. Mumcordin omat testit pyörivät sillä.

  • Ohjaa chattia, tilaa, oikeuksia ja moderointia, ja odota ehtojen täyttymistä
  • Toista, nauhoita ja tarkista puheen taso, aidolla Opuksella
  • Kuormitustesti täyttää paikallisen palvelimen jopa 1000 käyttäjällä
  • Paluukoodi 0 tarkoittaa hyväksyttyä: sopii mihin tahansa CI:hin
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Ohjeet →

Lataa

Arkisto sisältää ohjelman mumbot, README-tiedoston ja esimerkkiasetukset, bot.example.toml.

Tai Docker-imagena amd64:lle ja arm64:lle:

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

Valmiit Docker Compose -esimerkit: webhook-botti, webhook-botti omalla Mumble-palvelimella kokeilua varten ja testibotti CI:ssä →

Tarkistussummat (SHA256SUMS) →

Tiekartta

Mumcordin tavoin Mumbotia rakennetaan eepoksina. Epic 2 on avoimiin issueihin perustuva ehdotus, ja se suunnitellaan vielä tarkemmin.

  1. Epic 0

    valmis v0.1.0

    Testibotti

    Mumcordin testien skriptattu botti, nyt omana ohjelmanaan.

    • Chat, tila, oikeudet ja moderointi, ehtojen odottaminen ja skriptitila
    • Puheen toisto, nauhoitus ja tason tarkistus, Opuksella kuten Mumcordissa
    • Kuormitustesti jopa 1000 käyttäjällä paikallisella testipalvelimella
  2. Epic 1

    valmis v0.1.0

    Webhook-botti

    Viestejä ulkopuolelta Mumble-kanavalle.

    • HTTP API, API-avaimet ja sallitut kanavat avainkohtaisesti
    • Markdown, kanavien salasanat, uudelleenyhdistäminen ja nopeusrajoitus
    • Ohjelmat Linuxille, Windowsille ja macOS:lle sekä Docker-image
    • Versiosta 0.1.1 alkaen: Docker Compose -esimerkit ja ohjeet asetuksista, komentorivistä, HTTP API:sta ja tietoturvasta
  3. Epic 2

    seuraavaksi

    Moduulit, musiikki ja historia

    Yhdestä botista tulee työkalupakki.

    • Moduulit: valitse asetuksissa tai komentorivillä, mitkä botit ovat käynnissä, yhdessä ohjelmassa ja yhdessä imagessa
    • Musiikkibotti: lähetä MP3-tiedostoja tai linkkejä HTTP:llä, ja botti soittaa ne puhekanavalla jonosta
    • Historiabotti: tallentaa niiden kanavien chatin, jotka se saa nähdä, ja välittää sen Mumcord-käyttäjille, jotka olivat offline-tilassa. Ei koskaan yksityisviestejä
    • Viestikortit: webhook lähettää hälytyksiä otsikolla, tilavärillä, kaaviolla ja linkillä, ja Mumcord näyttää ne korttina
    • Säädettävä bittinopeus puheelle ja musiikille, ei koskaan palvelimen rajan yli
    • Peer-moduuli: rekisteröi palvelimen käyttäjät mumpeer-välityspalvelimelle ja kertoo Mumcordille, että välityspalvelin on olemassa
  4. Sen jälkeen

    myöhemmin

    Ideat

    Ei vielä suunniteltu, mutta kirjattu muistiin.

    • Botti, joka lukee chattia ja vastaa komentoihin
    • Puhesynteesi tai hälytysäänet kanavalla
    • Yksi botti useille palvelimille tai usealla identiteetillä
    • Kuiskaukset ja yksityisviestit, avainten vaihto ilman uudelleenkäynnistystä, sisäänrakennettu TLS
    • Palvelimen varmenteen muistaminen ensimmäisellä kerralla ja muuttuneen varmenteen hylkääminen

Idea botiksi?

Toiveet kirjataan Mumbotin issueihin GitHubissa.

Ehdota ideaa Lähdekoodi GitHubissa →