WoW/TrinityCore and OpenDAoC population is now read via a direct mysql2 connection to trinitycore-mysql/daoc-mysql over the mmo-net bridge (drop joins that network in homelab-compose), the same shape Drop already uses for RomM's catalog (rommAdapter.ts) and mmo-portal already uses for these exact databases. Each query is copied from that game's own management tooling rather than invented against the schema: WoW's matches FusionCMS's Characters_model.php::getOnlineCount() verbatim; OpenDAoC's matches upstream OpenDAoC-Core's own StatSave.cs/stats.php reading serverstats. EQEmu has no DB-backed online-player source (re-verified live: peq has no who_all_cache, no characters.online-equivalent, no count anywhere) -- corrects an earlier "genuinely unavailable" claim, which was wrong about there being no source at all. The real source is World's in-memory client list, exposed safely through Spire's own authenticated HTTP API (GET /api/v1/eqemuserver/server-stats, backed by a telnet admin console that must stay loopback-only). Added a spire_session_api probe method that logs in as a dedicated service account and reuses the JWT; degrades to "unavailable" honestly until that account is provisioned. Removes the ssh_mysql_query and ssh_docker_logs_regex methods -- the deployed image never had an ssh client, so both always failed. Does not touch presence_inferred (Goldberg relay), which already degrades to "unknown" without ssh, by design; not fixed here per explicit instruction not to add openssh-client to the runtime image or probe the relay's game ports. |
||
|---|---|---|
| .. | ||
| api/v1 | ||
| internal | ||
| middleware | ||
| plugins | ||
| routes/auth | ||
| tasks | ||
| arktype.ts | ||
| h3.d.ts | ||
| tsconfig.json | ||