Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb (2025.05.30)

Pubblicato un nuovo aggiornamento per RAWeb (2025.05.30)

73
0

Pubblicato un nuovo aggiornamento per RAWeb, la piattaforma di RetroAchievements.org che gestisce obiettivi, dati di gioco e funzionalità per la community.

L’applicazione, sviluppata con Laravel (TALL stack), permette agli utenti di interagire con il sistema di RetroAchievements per tracciare i progressi nei giochi e condividerli con altri membri della community.

Con l’ultima versione, sono state introdotte numerose novità che ne hanno migliorato l’esperienza d’uso, in particolare per sviluppatori e utenti attivi.

Tra le aggiunte più rilevanti figura la possibilità per sviluppatori junior e con ruolo di writer di modificare i titoli degli achievement nei giochi non ancora rivendicati.

Inoltre, ora viene ricordata la preferenza dell’utente relativa al filtro per nascondere gli obiettivi già sbloccati e, nella home page, compare un collegamento rapido al gioco attualmente in uso.

Sono stati corretti diversi bug, tra cui il calcolo errato dei tassi di sblocco nella checklist degli achievement, problemi con i tooltip errati nelle tabelle dei giochi e anomalie nella ricerca, ora più fluida grazie a un miglioramento del livello di visualizzazione.

Anche il sistema di tracciamento degli utenti ha ricevuto correzioni per garantire l’aggiornamento corretto dello stato “Untracked”.

Sul fronte gestionale, l’interfaccia amministrativa consente ora di registrare le modifiche ai topic ufficiali dei giochi nei forum e tiene traccia delle operazioni effettuate sulle versioni di gioco. Inoltre, le righe delle tabelle dei giochi simili sono diventate cliccabili, rendendo la navigazione più intuitiva.

Dal punto di vista tecnico, l’API ha ricevuto importanti revisioni, come l’eliminazione del vecchio parametro multiset a favore di una struttura più razionale, e l’introduzione di filtri e limitazioni nei job automatizzati per una migliore efficienza.

Infine, è stato aggiornato il sistema di ricerca interno, ora più veloce e preciso, e arricchito da nuove funzioni di indicizzazione batch per gli obiettivi, insieme a un nuovo componente di metadati visibile nella barra laterale delle pagine gioco in React.

Requisiti

Per eseguire RAWeb localmente, sono necessari i seguenti componenti:

  • Server web locale: È necessario un server web per eseguire l’applicazione.
  • PHP 8.2: La piattaforma richiede PHP 8.2, con diverse estensioni abilitate (come curl, gmp, mysqli, pdo_mysql, gd, intl, sockets).
  • Composer: Il gestore di dipendenze PHP, necessario per installare le librerie richieste da RAWeb.
  • MariaDB 10: Il database supportato per memorizzare i dati.
  • Node.js 20 e pnpm 9: Questi strumenti sono utilizzati per la gestione dei pacchetti frontend e la build degli asset.

RAWeb è compatibile con i seguenti sistemi operativi e configurazioni:

  • Windows, macOS, Linux.
  • Diverse opzioni di configurazione sono disponibili: Docker (con Laravel Sail), XAMPP e Laravel Valet per macOS.

Opzioni di configurazione

Esistono diverse opzioni per configurare RAWeb:

  1. Docker Compose (Windows, Linux, macOS):
    Utilizzando Laravel Sail, l’ambiente di sviluppo viene creato automaticamente con i container Docker. La documentazione di Laravel Sail descrive i passaggi dettagliati. Una volta configurato, è possibile avviare i container con il comando sail up o in modalità demone con sail up -d.
  2. XAMPP (Windows, Linux, macOS):
    È necessario installare XAMPP con PHP 8.2, che include un server Apache, MySQL/MariaDB e PHP. Si dovranno abilitare alcune estensioni in php.ini (come curl, gmp, mysqli, ecc.) per garantire la compatibilità con le dipendenze di RAWeb.
  3. Laravel Valet (macOS):
    Se si utilizza Laravel Valet su macOS, è possibile configurare facilmente l’ambiente locale. Valet agisce come driver per l’ambiente di sviluppo e fornisce una configurazione web locale senza complicazioni.

Installazione di RAWeb

Una volta che il server e le dipendenze sono configurati, l’installazione di RAWeb avviene in due fasi principali:

  1. Installazione delle dipendenze: Dopo aver clonato il repository di RAWeb, eseguire composer install per installare tutte le librerie necessarie. Se si desidera utilizzare la versione locale di composer.phar invece di una globale, si può eseguire php composer.phar install.
  2. Configurazione dell’ambiente: È necessario eseguire il comando composer setup per configurare correttamente l’ambiente. Questo script imposterà le variabili di ambiente e le configurazioni iniziali. Durante questa fase, si consiglia di adattare il file .env con le credenziali del database e l’URL dell’applicazione.

Configurazione dell’ambiente (.env)

Il file .env contiene valori predefiniti sensati, ma potrebbero essere necessarie alcune modifiche:

  • Credenziali del database: Impostare i valori per la connessione al database locale (DB_*).
  • Configurazione dell’URL dell’applicazione: Impostare l’URL dell’applicazione (APP_URL). Per esempio, se si usa Docker, l’URL potrebbe essere http://localhost:64000. Con Valet, potrebbe essere https://raweb.test.

Se si sta utilizzando un ambiente Docker, non sono necessarie ulteriori configurazioni specifiche, poiché l’applicazione rileverà automaticamente la configurazione del container Laravel Sail.

Se si utilizza XAMPP o Valet, sarà necessario regolare l’URL dell’applicazione e configurare correttamente i virtual host o il dominio.

Costruzione e configurazione del frontend

Per generare gli asset frontend:

  1. Installazione delle dipendenze frontend: Utilizzare pnpm install per installare le dipendenze necessarie.
  2. Costruzione degli asset: Eseguire pnpm build per creare la build finale. Con Docker Sail, è possibile eseguire questi comandi tramite sail pnpm install e sail pnpm build.
  3. Creazione dei symlink per il filesystem: Per rendere accessibili i file di archiviazione, eseguire php artisan ra:storage:link --relative per creare i collegamenti simbolici necessari. Anche questo comando è disponibile tramite Sail (sail artisan ra:storage:link --relative).

Configurazione del database

Dopo aver configurato l’ambiente e costruito gli asset, è necessario preparare il database:

  1. Esegui la migrazione: Esegui php artisan migrate per applicare le migrazioni e configurare il database.
  2. Popola il database con dati di test: Usa il comando php artisan db:seed per popolare il database con i dati di test. Puoi eseguire anche questo comando tramite Sail (sail artisan db:seed).

Accesso all’applicazione

A seconda dell’ambiente scelto, puoi accedere all’applicazione nel seguente modo:

Utilizzo per lo sviluppo di obiettivi

Se desideri sviluppare obiettivi localmente, puoi aggiungere un file host.txt nella directory di RALibRetro accanto al file RAIntegration.dll. Questo file deve contenere l’URL del tuo server locale, che potrebbe essere uno dei seguenti:

Sicurezza

Per gestire eventuali vulnerabilità di sicurezza, consulta la Security Policy di RetroAchievements.org, che fornisce indicazioni su come gestire i rischi e proteggere la piattaforma.

In questo modo, puoi configurare e utilizzare RAWeb per gestire obiettivi, giochi e funzionalità della community direttamente dal tuo server locale.

Changelog

Nuove funzionalità

  • Achievements: Aggiunto un pulsante “Gestisci” nella pagina informativa degli achievement, accessibile agli sviluppatori e agli sviluppatori junior (by @Jamiras, #3559).
  • Giochi: Ora viene memorizzata la preferenza dell’utente relativa alla casella “Nascondi obiettivi sbloccati” (by @wescopeland, #3550).
  • Home page: Aggiunto un collegamento diretto al gioco attualmente in esecuzione da parte dell’utente (by @wescopeland, #3549).

Correzioni di bug

  • Checklist degli obiettivi: I tassi di sblocco vengono ora mostrati correttamente (by @Jamiras, #3562).
  • Giochi: Il gioco principale viene ora identificato correttamente tramite la relazione game_achievement_sets (by @Jamiras, #3538).
  • Tabelle dei giochi: Risolto un problema che mostrava talvolta il tooltip di gioco sbagliato (by @wescopeland, #3548).
  • Ricerca: Aumentato il valore di z-index per migliorare la visibilità dei risultati (by @wescopeland, #3542).
  • Utenti: Il campo unranked_at viene aggiornato correttamente quando cambia il valore “Untracked” dell’utente (by @Jamiras, #3564).

Modifiche alla console di gestione

  • Achievements: Consentito agli sviluppatori junior con ruolo di scrittura di aggiornare i titoli degli achievement per i giochi non ancora rivendicati (by @Jamiras, #3561).
  • Giochi: Ora viene registrato un log di audit quando si elimina un topic ufficiale dal forum (by @Jamiras, #3565).
  • Rilasci dei giochi: Ora vengono registrate tutte le creazioni, modifiche ed eliminazioni (by @wescopeland, #3543).
  • Giochi simili: Le righe sono ora cliccabili e collegabili direttamente (by @wescopeland, #3540).

Modifiche all’API

  • Connect API: Rimosso il parametro multiset da ?r=patch a favore di ?r=achievementsets (by @wescopeland, #3546).

Modifiche ambientali

  • Connect API: Ristrutturato ?r=submitgametitle secondo un pattern orientato all’azione (by @Jamiras, #3558).
  • Dati denormalizzati: Aggiunto un filtro di query per il comando che calcola i punti dei giocatori su base oraria (by @wescopeland, #3545).
  • Dati denormalizzati: Introdotta una limitazione (throttling) per l’esecuzione dei job relativi alle metriche dei giochi dei giocatori (by @wescopeland, #3556).
  • Pagine dei giochi in React: Aggiunto un nuovo componente di metadati derivato dall’hub nella barra laterale (by @wescopeland, #3522).
  • Ricerca 2.0: Indicizzati gli achievement, introdotta l’indicizzazione in batch e migliorata la ricerca dei giochi (by @wescopeland, #3552).

Changelog completo: 2025.05.25...2025.05.30

Download: Source code RAWeb 2025.05.30

Fonte: github.com