batocera-discord-rp Svelte Themes

Batocera Discord Rp

Aplicativo para exibir o status de jogos do Batocera Linux no Rich Presence do Discord.

batocera-discord-rp

Aplicativo Electron com Svelte e TypeScript para exibir o status de jogos do Batocera Linux no Discord Rich Presence.

Funcionalidades

  • Exibe o nome do jogo e plataforma jogados no Batocera diretamente no Discord Rich Presence.
  • Interface moderna feita com Svelte.
  • Comunicação entre Electron (main/preload) e frontend.
  • Suporte multiplataforma: Windows, macOS e Linux.
  • Atualizações automáticas (via electron-updater).

Estrutura do Projeto

├── src/
│   ├── main/        # Processo principal do Electron
│   ├── preload/     # Bridge entre Electron e Renderer
│   └── renderer/    # Interface Svelte
├── build/           # Recursos para build (ícones, entitlements)
├── resources/       # Ícones e assets
├── package.json     # Dependências e scripts
├── electron-builder.yml
├── electron.vite.config.ts
├── svelte.config.mjs

Tecnologias Utilizadas

Instalação

yarn

Desenvolvimento

yarn dev

Build

# Windows
yarn build:win

# macOS
yarn build:mac

# Linux
yarn build:linux

Como funciona

  • O processo principal do Electron inicializa um servidor HTTP que recebe informações do Batocera.
  • Ao iniciar um jogo, o servidor atualiza o Discord Rich Presence com o nome e plataforma do jogo.
  • A interface exibe o status de conexão e informações do jogo em tempo real.

Integração com Batocera (scripts de evento)

Para que o Batocera envie informações ao servidor Electron quando um jogo é iniciado ou finalizado, utilize scripts automáticos conforme a documentação oficial.

Exemplo de script para /userdata/system/scripts/batocera-discord-rp.sh:

#!/bin/bash

case "$1" in
  gameStart)
    # $2 = systemName, $5 = rom path
    curl -X POST -H "Content-Type: application/json" \
      -d "{\"gameName\": \"$(basename \"$5\" .zip)\", \"platform\": \"$2\"}" \
      http://127.0.0.1:3333/start
    ;;
  gameStop)
    curl -X POST http://127.0.0.1:3333/stop
    ;;
esac
  1. Salve o script em /userdata/system/scripts/.
  2. Dê permissão de execução: chmod +x /userdata/system/scripts/batocera-discord-rp.sh
  3. O Batocera executará esse script automaticamente nos eventos de início e fim de jogo, enviando os dados para o seu app Electron.

Mais detalhes e exemplos: Batocera Wiki - Launch a Script

Requisitos

  • Node.js 20+
  • Yarn
  • Discord instalado e em execução

Ambiente de desenvolvimento recomendado

  • VSCode + extensões: ESLint, Prettier, Svelte

Licença

MIT

Top categories

Loading Svelte Themes