Home Homebrew Rilasciato Switch Discord Presence GUIPy v1.0.4: Visualizza la tua presenza Discord...

[Scena Switch] Rilasciato Switch Discord Presence GUIPy v1.0.4: Visualizza la tua presenza Discord in tempo reale dai giochi Nintendo Switch e Quest

56
0

Pubblicato un primo aggiornamento per Switch Discord Presence GUIPy, lo strumento sviluppato dal developer THZoria ci permette di personalizzare e gestire in modo avanzato la Discord Rich Presence per gli utenti della console Nintendo Switch.

Questo client desktop open source, sviluppato utilizzando Python e PyQt6, consente di visualizzare in tempo reale lo stato di gioco della propria console direttamente nel profilo Discord, offrendo un’interfaccia grafica moderna e funzionale.

A differenza di soluzioni precedenti, come SwitchPresence-Rewritten, che richiedevano l’installazione di sysmodule sulla console e l’utilizzo di client separati, Switch Discord Presence GUIPy semplifica notevolmente il processo.

L’applicazione si connette alla Nintendo Switch tramite una rete locale, utilizzando il sysmodule SwitchPresence-Rewritten, e invia i dati relativi al gioco in esecuzione al client Discord attraverso la libreria pypresence.

Questo approccio elimina la necessità di configurazioni complesse e offre una soluzione più immediata e accessibile per gli utenti.

Il primo aggiornamento introduce la possibilità di rilevare le icone dei giochi tramite i loro TID, a patto che siano caricati come asset nell’applicazione Discord, e aggiorna la dipendenza requests alla versione 2.32.4, migliorando stabilità e compatibilità.

Caratteristiche

  • Interfaccia moderna (PyQt6)
    Layout pulito, reattivo, con thread di rete dedicato (UI fluida, senza blocchi).
  • “Now Playing” in tempo reale + Log
    Mostra il titolo attuale e un registro continuo degli eventi di connessione/RPC.
  • Cambio lingua (EN/FR)
    Passaggio istantaneo senza riavvio; le preferenze vengono salvate.
  • Temi: Chiaro / Scuro / Automatico
    Si adatta automaticamente al tema del sistema operativo; possibilità di cambiare al volo.
  • Riconnessione automatica
    Ripristina la connessione in caso di disconnessione del dispositivo o del client Discord in modo sicuro.
  • Filtro Schermata Home
    Opzione “Ignora Schermata Home (Home Menu)” per evitare di pubblicare la presenza quando la console è inattiva.
  • Supporto Overrides (Switch & Quest)
    Recupera automaticamente i JSON degli override per mappare/rinominare titoli e chiavi delle immagini.
  • Spegnimento sicuro
    Pulisce la presenza e chiude i socket correttamente quando si preme Stop o si esce dall’app.

Requisiti

  • Python 3.10+.
  • Discord Desktop in esecuzione sulla stessa macchina e sessione utente.
  • Un Discord Application ID (Client ID) dal Discord Developer Portal.
    • Non usare il proprio User ID. Creare un’applicazione e utilizzare il suo Application ID.
  • Una Nintendo Switch con CFW e il sysmodule SwitchPresence-Rewritten.
  • Opzionale (per immagini personalizzate in Rich Presence): Nell’app Discord → Rich Presence → Art Assets, aggiungere immagini (chiavi come switch o chiavi specifiche dei giochi dagli override).

Installazione

# Clona la repository
git clone https://github.com/<your-account>/<your-repo>.git
cd <your-repo>

# (Consigliato) Creare e attivare un ambiente virtuale
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate

# Installare le dipendenze
pip install --upgrade pip
pip install PyQt6 pypresence requests

Avvio rapido

# Creare un'applicazione Discord
Aprire il Discord Developer Portal → New Application.
Nelle General Information, copiare l'Application ID (alias Client ID).

# (Opzionale) Aggiungere Art Assets
Nell'app Discord → Rich Presence → Art Assets, aggiungere immagini con le chiavi da utilizzare:
- switch (per il menu principale)
- Qualsiasi chiave referenziata dagli overrides (o generata come 0 + PID esadecimale minuscolo via iconFromPid)

# Avviare l'app
python src/presence_app/main.py
Inserire l'indirizzo IP del dispositivo e Discord Client ID (Application ID della tua app)
Opzionalmente selezionare "Ignore Home Screen (Home Menu)"
Cliccare Connect e tenere aperto Discord Desktop

Utilizzare la porta TCP 0xCAFE (51966). Assicurarsi che il bridge/server sia in esecuzione e che i firewall lo permettano.

Creazione degli eseguibili

PyInstaller deve essere eseguito su ciascun sistema operativo target (nessun cross-compile macOS da Windows/Linux).

Windows (x64)

pip install pyinstaller
pyinstaller --noconfirm --clean ^
  --name "Switch Discord Presence GUIPy" ^
  --windowed --onefile ^
  --icon assets/icons/app.ico ^
  src/presence_app/main.py
# Output: dist/Switch Discord Presence GUIPy.exe

macOS (Intel & Apple Silicon)

pip install pyinstaller
pyinstaller --noconfirm --clean \
  --name "Switch Discord Presence GUIPy" \
  --windowed \
  --icon assets/icons/app.icns \
  src/presence_app/main.py
# Output: dist/Switch Discord Presence GUIPy.app

# Creazione DMG (opzionale)
brew install create-dmg
create-dmg \
  --volname "Switch Discord Presence GUIPy" \
  --app-drop-link 400 120 \
  --window-size 500 300 \
  --icon-size 96 \
  --icon "Switch Discord Presence GUIPy.app" 120 120 \
  "dist/SwitchDiscordPresenceGUIPy-mac.dmg" "dist/"

Linux (x64)

pip install pyinstaller
pyinstaller --noconfirm --clean \
  --name "Switch Discord Presence GUIPy" \
  --windowed --onefile \
  src/presence_app/main.py
# Output: dist/Switch Discord Presence GUIPy
# Opzionale: tar -C dist -czf SwitchDiscordPresenceGUIPy-linux-x64.tar.gz "Switch Discord Presence GUIPy"

Consigli

  • Rimuovere --onefile per un avvio più veloce (utilizzare onedir).
  • Se manca un plugin Qt, aggiungere: --hidden-import PyQt6.sip
  • Su macOS, compilare su ciascuna architettura (Intel & ARM). PyInstaller non cross-compile.

Risoluzione dei problemi

  • Client ID non valido (4000) → Si utilizza un User ID. Utilizzare l’Application ID (Client ID) dall’app del Discord Developer Portal.
  • Discord non rilevato → Assicurarsi che Discord Desktop sia in esecuzione nella stessa sessione utente dell’app.
  • Nessuna immagine nella presence → Aggiungere Art Assets all’app Discord con le chiavi corrette: switch, eventuali CustomKey degli override o 0<pid-hex>.
  • Impossibile connettersi al dispositivo → Verificare l’indirizzo IP, porta 51966 (0xCAFE), regole del firewall e che il bridge/server sia in esecuzione.
  • UI illeggibile (colori) → Cambiare tema in Impostazioni → Tema (Chiaro/Scuro/Automatico).

Struttura suggerita

project/
├─ src/presence_app/main.py
├─ assets/icons/app.ico
├─ assets/icons/app.icns
├─ requirements.txt
└─ .github/workflows/build.yml   # CI opzionale

Changelog

  • Aggiunta la rilevazione delle icone dei giochi tramite i loro TID, se caricati come asset nell’applicazione Discord per la Rich Presence.
  • Aggiornata la dipendenza requests alla versione 2.32.4, a cura di Xieon #1.

Download: Switch Discord Presence GUIPy 1.0.4 (Linux) (sha256)

Download: Switch Discord Presence GUIPy 1.0.4 (Mac arm64) (sha256)

Download: Switch Discord Presence GUIPy 1.0.4 (Mac intel) (sha256)

Download: Switch Discord Presence GUIPy 1.0.4 (Windows) (sha256)

Download: Source code Switch Discord Presence GUIPy 1.0.4

Fonte: x.com