Bots para Mumble

Mumbot

O Mumbot entra como uma pessoa, com o seu próprio certificado. Por isso funciona em qualquer servidor Mumble padrão, sem plugin e sem alterar a configuração do servidor. Da família Mumcord, open source sob AGPL-3.0.

v0.1.1

Dois bots, um programa

Ambos vivem no mesmo programa, mumbot, para Linux, Windows, macOS e como imagem Docker.

Bot de webhook

A monitorização, a CI ou um script teu envia um pedido HTTP com uma chave de API, e o bot publica o texto num canal do Mumble.

  • Define por chave em que canais pode escrever
  • Negrito, itálico, código, listas e links em Markdown
  • Palavras-passe de canal, nova ligação automática após quebras e identidade fixa graças ao seu certificado
  • Limite de frequência e uma resposta clara sobre se a mensagem chegou
Terminal
curl -X POST http://127.0.0.1:8080/message \
  -H 'X-API-Key: <your key>' \
  -d '{"channel": 1, "message": "**deploy** finished"}'
Documentação →

Bot de testes

Um segundo participante com guião para testes automáticos de clientes Mumble. Os próprios testes do Mumcord correm nele.

  • Controla chat, estado, permissões e moderação, e espera por condições
  • Reproduz, grava e verifica o nível da voz, com Opus a sério
  • Um teste de carga enche um servidor local com até 1000 utilizadores
  • Código de saída 0 significa aprovado: encaixa em qualquer CI
Terminal
printf '%s\n' 'join Lobby' 'say "<b>hello</b>"' \
  'expect message --from Alice --contains hi' \
  | mumbot --port 44738 --name Bob script
Documentação →

Transferir

O arquivo contém o programa mumbot, o README e uma configuração de exemplo, bot.example.toml.

Ou como imagem Docker para amd64 e 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

Exemplos Docker Compose prontos a usar: bot de webhook, bot de webhook com o seu próprio servidor Mumble para experimentar, e bot de testes na CI →

Somas de verificação (SHA256SUMS) →

Roadmap

Tal como o Mumcord, o Mumbot é desenvolvido em epics. O Epic 2 é uma proposta a partir das issues abertas e ainda vai ser planeado em detalhe.

  1. Epic 0

    concluído v0.1.0

    Bot de testes

    O bot com guião dos testes do Mumcord, agora um programa próprio.

    • Chat, estado, permissões e moderação, espera por condições e um modo de script
    • Reproduzir, gravar e verificar o nível da voz, com Opus como no Mumcord
    • Teste de carga com até 1000 utilizadores num servidor de testes local
  2. Epic 1

    concluído v0.1.0

    Bot de webhook

    Mensagens de fora num canal do Mumble.

    • API HTTP com chaves de API e canais permitidos por chave
    • Markdown, palavras-passe de canal, nova ligação automática e limite de frequência
    • Programas para Linux, Windows e macOS e uma imagem Docker
    • Desde a 0.1.1: exemplos Docker Compose e documentação sobre a configuração, a linha de comandos, a API HTTP e a segurança
  3. Epic 2

    a seguir

    Módulos, música e histórico

    Um bot torna-se uma caixa de ferramentas.

    • Módulos: escolhe que bots correm, na configuração ou na linha de comandos, num só programa e numa só imagem
    • Bot de música: envia MP3 ou links por HTTP, e o bot toca-os no canal de voz com uma fila
    • Bot de histórico: guarda o chat dos canais que pode ver e entrega-o aos utilizadores do Mumcord que estavam offline. Nunca as mensagens privadas
    • Cartões de mensagem: o webhook envia alertas com título, cor de estado, gráfico e link que o Mumcord mostra como cartão
    • Bitrate ajustável para voz e música, nunca acima do limite do servidor
    • Módulo peer: regista os utilizadores do servidor num relay mumpeer e diz ao Mumcord que o relay existe
  4. Mais além

    mais tarde

    Ideias

    Ainda não planeado, mas anotado.

    • Um bot que lê o chat e responde a comandos
    • Texto para voz ou sons de alerta num canal
    • Um bot para vários servidores ou com várias identidades
    • Sussurros e mensagens privadas, trocar chaves sem reiniciar, TLS integrado
    • Memorizar o certificado do servidor no primeiro contacto e recusar um que tenha mudado

Uma ideia para um bot?

Os pedidos vão para as issues do Mumbot no GitHub.

Sugerir uma ideia Código no GitHub →