Botai Mumble

Mumbot

Mumbot prisijungia kaip žmogus, su savo sertifikatu. Todėl jis veikia bet kuriame standartiniame Mumble serveryje, be įskiepio ir be jokių serverio konfigūracijos pakeitimų. Iš Mumcord šeimos, atvirasis kodas pagal AGPL-3.0.

v0.1.1

Du botai, viena programa

Abu gyvena toje pačioje programoje, mumbot, skirtoje Linux, Windows, macOS ir kaip Docker atvaizdas.

Webhook botas

Stebėsenos sistema, CI ar tavo paties scenarijus siunčia vieną HTTP užklausą su API raktu, o botas paskelbia tekstą Mumble kanale.

  • Kiekvienam raktui nustatyk, į kuriuos kanalus jis gali rašyti
  • Paryškintas ir pasvirasis tekstas, kodas, sąrašai ir nuorodos Markdown formatu
  • Kanalų slaptažodžiai, prisijungimas iš naujo po nutrūkimo ir pastovi tapatybė dėl sertifikato
  • Užklausų ribojimas ir aiškus atsakymas, ar žinutė pasiekė tikslą
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Dokumentacija →

Testavimo botas

Scenarijumi valdomas antras dalyvis automatiniams Mumble klientų testams. Jį naudoja ir paties Mumcord testai.

  • Valdo pokalbį, būseną, teises ir moderavimą bei laukia sąlygų
  • Groja, įrašo ir tikrina balso lygį, su tikru Opus
  • Apkrovos testas užpildo vietinį serverį iki 1000 naudotojų
  • Išėjimo kodas 0 reiškia, kad testas praeitas: tinka bet kuriai CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Dokumentacija →

Atsisiųsti

Archyve yra programa mumbot, README ir konfigūracijos pavyzdys bot.example.toml.

Arba kaip Docker atvaizdas, skirtas amd64 ir 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

Paruošti Docker Compose pavyzdžiai: webhook botas, webhook botas su savo Mumble serveriu išbandymui ir testavimo botas CI →

Kontrolinės sumos (SHA256SUMS) →

Planas

Kaip ir Mumcord, Mumbot kuriamas epikais. 2 epikas – pasiūlymas iš atvirų issues, jis dar bus išsamiai suplanuotas.

  1. Epic 0

    atlikta v0.1.0

    Testavimo botas

    Scenarijumi valdomas botas iš Mumcord testų, dabar atskira programa.

    • Pokalbis, būsena, teisės ir moderavimas, sąlygų laukimas ir scenarijaus režimas
    • Balso grojimas, įrašymas ir lygio tikrinimas, su Opus kaip Mumcord
    • Apkrovos testas su iki 1000 naudotojų vietiniame testiniame serveryje
  2. Epic 1

    atlikta v0.1.0

    Webhook botas

    Žinutės iš išorės į Mumble kanalą.

    • HTTP API su API raktais ir leidžiamais kanalais kiekvienam raktui
    • Markdown, kanalų slaptažodžiai, prisijungimas iš naujo ir užklausų ribojimas
    • Programos Linux, Windows ir macOS bei Docker atvaizdas
    • Nuo 0.1.1: Docker Compose pavyzdžiai ir dokumentacija apie konfigūraciją, komandų eilutę, HTTP API ir saugumą
  3. Epic 2

    toliau

    Moduliai, muzika ir istorija

    Vienas botas tampa įrankių rinkiniu.

    • Moduliai: konfigūracijoje arba komandų eilutėje pasirink, kurie botai veikia, vienoje programoje ir viename atvaizde
    • Muzikos botas: siųsk MP3 arba nuorodas per HTTP, o botas jas groja balso kanale su eile
    • Istorijos botas: saugo kanalų, kuriuos mato, pokalbius ir perduoda juos Mumcord naudotojams, kurie buvo neprisijungę. Niekada privačių žinučių
    • Žinučių kortelės: webhook siunčia įspėjimus su pavadinimu, būsenos spalva, grafiku ir nuoroda, kuriuos Mumcord rodo kaip kortelę
    • Reguliuojama bitų sparta kalbai ir muzikai, niekada ne didesnė už serverio ribą
    • Peer modulis: užregistruoja serverio naudotojus mumpeer tarpiniame serveryje ir praneša Mumcord, kad jis yra
  4. Ateityje

    vėliau

    Idėjos

    Dar nesuplanuota, bet užsirašyta.

    • Botas, kuris skaito pokalbį ir atsako į komandas
    • Teksto įgarsinimas arba įspėjimo garsai kanale
    • Vienas botas keliems serveriams arba su keliomis tapatybėmis
    • Šnabždesiai ir privačios žinutės, raktų keitimas be paleidimo iš naujo, integruotas TLS
    • Įsiminti serverio sertifikatą pirmo kontakto metu ir atmesti pasikeitusį

Turi idėją botui?

Pageidavimai keliauja į Mumbot issues GitHub.

Pasiūlyk idėją Kodas GitHub →