5.8 KiB
OGame Galaxy Viewer
📖 Documentazione tecnica completa (architettura, sorgenti, funzioni e metodi): DOCUMENTAZIONE.md
Visualizzatore di galassie per OGame con archivio dei rapporti di spionaggio.
- Universo configurato: Rosalind
s170-ar(galassie 1-7, sistemi 1-499) - Dati pubblici (pianeti, giocatori, alleanze) scaricati ogni giorno
- Import di rapporti di spionaggio tramite API string del gioco
(
sr-ar-170-<40 hex>) con salvataggio su disco (JSON) e consultazione cliccando sul pianeta nella galassia
Come funziona il protocollo dei rapporti (scoperto dalla documentazione ufficiale OGame "Origin")
In gioco, ogni rapporto (CR/SR/RR/MR) ha un pulsante "API" nel tooltip che permette di copiare una stringa del tipo:
sr-ar-170-98018ad723cb4fdba047f78728fb831cd28b3ca5
composta da: tipo (sr = spionaggio) · community (ar) · server (170) · id (40 hex).
I dati vengono recuperati tramite il community proxy ufficiale (niente API key da richiedere, metodo standard dal 2026):
GET https://ogapi.faw-kes.de/v1/report/sr-ar-170-<id>/1
Limite del proxy: ~10 richieste/minuto. Il proxy restituisce il rapporto in JSON (risorse, edifici, navi, difese, ricerca, attività del bersaglio).
Riferimenti: forum Origin — OGame API e procedura accesso
Struttura
/opt/ogame_db/
├── app.py # backend Flask (porta 8899) + API
├── update_data.py # aggiornamento dati giornaliero + classifiche (--highscore-only)
├── report_store.py # import/archivio rapporti di spionaggio
├── technames.py # nomi edifici/navi/ricerche/difese
├── config.json # configurazione (universo, proxy, id giocatore)
├── data/
│ ├── latest/ # snapshot correnti + world.json (indici + classifiche)
│ ├── snapshots/ # storico giornaliero (30 giorni)
│ └── reports/ # rapporti di spionaggio importati (JSON)
└── static/ # frontend: common.js + galassia + classifiche
Installazione / avvio come servizio
Il servizio è già installato come systemd utente (gira al boot grazie a
loginctl enable-linger):
systemctl --user status ogame-galaxy.service # web app su :8899
systemctl --user status ogame-data-update.timer # aggiornamento giornaliero 03:30
systemctl --user status ogame-highscore.timer # classifiche ogni ora (:17)
systemctl --user restart ogame-galaxy.service # riavvio
journalctl --user -u ogame-galaxy.service -f # log
Update manuale dei dati: python3 /opt/ogame_db/update_data.py
Classifiche manuali: python3 /opt/ogame_db/update_data.py --highscore-only
Uso
- Apri
http://<host>:8899nel browser. - Naviga galassia/sistema (frecce o campi numerici): accanto al nome di ogni giocatore trovi la posizione in classifica (🏆 generale · ⚔️ armamenti). Clicca sul nome del giocatore per aprire una finestra con tutti i suoi pianeti e tutti i rapporti di spionaggio disponibili su di lui, senza doverli cercare pianeta per pianeta.
- Classifiche: apri
http://<host>:8899/rankings(o il pulsante 🏆 in alto). Tre tab (Generale / Armamenti / Top Flotte) con filtro per stato (tutti / attivi / inattivi), range di posizione e ricerca per nome/alleanza. Cliccando su un giocatore salti al suo pianeta nella galassia. - Per archiviare uno spionaggio: in gioco apri il rapporto → pulsante API → copia la stringa → incollala nella barra "Importa rapporto".
- Clicca sul pianeta (o sulla luna) nella galassia: trovi tutti i rapporti salvati, ordinati per data, con dettagli completi.
Configurazione (config.json)
{
"server_number": 170,
"community": "ar",
"domain": "s170-ar.ogame.gameforge.com",
"my_player_id": 100634,
"my_player_name": "MaNaki",
"proxy_base": "https://ogapi.faw-kes.de",
"refresh_hours": 24,
"keep_snapshots": 30
}
my_player_id: i tuoi pianeti vengono evidenziati in verde nella galassia (lo trovi nell'URL delle tue pagine in gioco o dal pulsante API dei tuoi rapporti: nell'API string compare solo l'id del report, ma i rapporti che fai tu riportanoattacker_user_idnel JSON salvato).refresh_hours: dopo quante ore senza update l'app ricarica i dati all'avvio.
API locali
| Metodo | Percorso | Descrizione |
|---|---|---|
| GET | /api/bootstrap |
stato universo + statistiche rapporti |
| GET | /api/galaxy?g=&s= |
celle del sistema (15 posizioni) con rank giocatori |
| GET | /api/planet?g=&s=&p= |
dettaglio pianeta + rapporti + rank giocatore |
| GET | /api/player?id= |
tutti i pianeti del giocatore + tutti i suoi rapporti |
| GET | /api/rankings?type=total|military|fleet&status=&start=&end=&q= |
classifiche filtrate |
| GET | /rankings |
pagina web classifiche |
| GET | /api/reports/<sr_id> |
JSON completo di un rapporto |
| DELETE | /api/reports/<sr_id> |
elimina un rapporto (file + indice) |
| POST | /api/reports |
importa un rapporto {"token": "sr-ar-170-..."} |
| POST | /api/refresh |
forza l'aggiornamento dei dati |
status accetta: all, active, inactive (i/I), vacation (v),
vacation_inactive (vi/vI), admin (a).
Note
- Il tool usa solo API ufficiali/approvate da Gameforge (API pubblica XML e proxy community per i rapporti, che restano sotto il controllo del giocatore che condivide i propri ID).
- L'app ascolta su
0.0.0.0:8899senza autenticazione: se il server è raggiungibile da altri, valuta un reverse proxy con auth o un firewall. - Lo storico giornaliero viene tenuto per 30 giorni in
data/snapshots/.