Commit Graph

16 Commits

Author SHA1 Message Date
2c8141660c fix IGDB resolution: drop broken category filter, match by URL prefix
the IGDB external_games category filter returns empty for all values.
filter steam/gog entries by URL prefix instead (store.steampowered.com,
gog.com). reduce batch size to 50 to stay within 500-result API limit
since each uid can return multiple platform entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 23:40:00 +01:00
109a9f383b add IGDB metadata enrichment, image proxy, rich game UI
server: metadata cache + fetch service, image proxy with disk cache,
POST /igdb/metadata + GET /igdb/image/:id/:size routes.
client: 002-metadata migration, enrichment wired into sync pipeline,
extracted SyncProgress component, square cover icons in list items,
genres/rating/summary on discover cards, tap-to-navigate on card stack,
rich game detail with screenshots, trailer embed, developer info.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 22:51:58 +01:00
7337f38710 add app versioning, state-aware update button, disable pinch zoom
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:31:14 +01:00
ee32bfd206 refine server setup, deploy script, steam icon cache
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 21:21:07 +01:00
399e7d5b89 add pwa setup, deploy script, fix build configuration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 14:44:41 +01:00
5ebd9dba16 add hono backend: steam, gog, igdb api proxy, fix gitignore overrides
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 13:40:43 +01:00
de812a0fd1 archive legacy code, begin clean rewrite
legacy branch preserves all prior code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 12:58:11 +01:00
831ed42b7e snapshot current state before gitea sync 2026-02-18 10:50:36 +01:00
11c3f141d5 clean up code 2026-02-06 23:18:13 +01:00
3cac486f6f fix Steam API: transform response format and add comprehensive logging
- Backend: transform Steam API response to match frontend expectations (games/count structure)
- Frontend: map Steam game fields (appid, name, playtime_forever) to database schema (id, title, playtimeHours)
- Add detailed logging throughout request lifecycle for debugging
- Add 60-second timeout with AbortController to prevent indefinite hanging
- Fix IndexedDB constraint violation by properly transforming game data before save

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 22:25:04 +01:00
cfe6384f75 implement proper Steam API endpoint for /steam/refresh
Fixed issue where backend was forwarding /steam/refresh to
store.steampowered.com instead of calling the actual Steam Web API.

Now properly calls:
https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/

With parameters from request body (apiKey, steamId).

Fixes 'the string did not match the expected pattern' error.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:53:04 +01:00
6a6fe467e1 fix API routing: remove /api prefix in Express routes
Uberspace web backend removes /api prefix before forwarding to Express,
so routes must not include /api. Changed from app.all('/api/*') to
app.all('/*').

/health route is defined first, so it takes precedence.

Fixes 404 errors when calling Steam API from production.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:50:51 +01:00
576c171a98 clean up: remove GitHub Pages & Cloudflare Workers, deploy to Uberspace
All-in-one Uberspace deployment:
- Backend: Node.js Express on port 3000 (/api/*)
- Frontend: Static files served by Apache (/)
- URL: https://wtp.uber.space

Removed:
- GitHub Actions workflow
- Cloudflare Worker setup service
- CloudflareSetupPage component
- CloudflareService
- 404.html (GitHub Pages redirect)
- Cloudflare menu item from Settings

Simplified:
- Use VITE_BASE_PATH and VITE_API_URL for config
- Single deployment target (no multi-env complexity)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 21:24:42 +01:00
0fe09f01f8 add simple Uberspace deployment option (simpler than Cloudflare)
Instead of the complex Cloudflare Worker setup with CORS proxy,
you can now deploy both PWA and backend on Uberspace (~5€/month).

Changes:
- Add Express.js backend server (server/index.js)
- Update ConfigService to support VITE_API_URL env variable
- Make base path configurable via VITE_BASE_PATH
- Add comprehensive Uberspace deployment guide
- Add .env.production.example for configuration

Deployment options:
1. Uberspace (recommended): Simple, all-in-one hosting
2. GitHub Pages + Cloudflare Workers: Free but complex setup

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-06 20:50:56 +01:00
030de7bfbe add some assets 2026-02-06 16:53:07 +01:00
83ffd6212e add working settings for steam 2026-02-05 12:06:25 +01:00