docs: document downloaded games page and filter
This commit is contained in:
@@ -8,8 +8,9 @@ Search, browse, and retrieve game information.
|
||||
|
||||
Query params: `search` (title/developer/publisher), `platform`, `series`,
|
||||
`developers`, `publishers`, `playModes`, `languages`, `library`
|
||||
(arcade|theatre), `tags`, `yearFrom`, `yearTo`, `dateAddedSince` (ISO datetime),
|
||||
`dateModifiedSince` (ISO datetime), `sortBy`
|
||||
(arcade|theatre), `downloaded` (boolean, optional - restrict to games whose
|
||||
data is present on disk), `tags`, `yearFrom`, `yearTo`, `dateAddedSince` (ISO
|
||||
datetime), `dateModifiedSince` (ISO datetime), `sortBy`
|
||||
(title|releaseDate|dateAdded|dateModified|developer, default: title),
|
||||
`sortOrder` (asc|desc, default: asc), `page` (default: 1), `limit` (default: 50,
|
||||
max: 100), `showBroken` (default: false), `showExtreme` (default: false)
|
||||
@@ -25,6 +26,9 @@ in results and platform counts.
|
||||
|
||||
`GET /api/games/filter-options` - No auth required
|
||||
|
||||
Query param: `downloaded` (boolean, optional - restrict to games whose data is
|
||||
present on disk)
|
||||
|
||||
Returns platforms, developers, publishers, series, playModes, languages arrays
|
||||
with name/code and count.
|
||||
|
||||
|
||||
@@ -105,26 +105,29 @@ Clears permission cache entries.
|
||||
|
||||
## Settings Categories
|
||||
|
||||
| Category | Setting | Type | Default | Validation |
|
||||
| -------- | ----------------------- | ------- | -------------- | -------------------------------------- |
|
||||
| auth | guestAccessEnabled | boolean | true | - |
|
||||
| auth | userRegistrationEnabled | boolean | true | - |
|
||||
| auth | maxLoginAttempts | number | 5 | 1-20 |
|
||||
| auth | lockoutDurationMinutes | number | 15 | 1-1440 |
|
||||
| app | siteName | string | Flashpoint Web | maxLength: 100 |
|
||||
| app | maintenanceMode | boolean | false | - |
|
||||
| app | defaultTheme | string | dark | light\|dark\|system |
|
||||
| app | defaultPrimaryColor | string | blue | blue\|green\|red\|purple\|orange\|pink |
|
||||
| metadata | autoSyncEnabled | boolean | false | - |
|
||||
| metadata | syncIntervalMinutes | number | 60 | 0-1440 |
|
||||
| features | enablePlaylists | boolean | true | - |
|
||||
| features | enableFavorites | boolean | true | - |
|
||||
| features | enableStatistics | boolean | true | - |
|
||||
| features | enableActivityLog | boolean | true | - |
|
||||
| features | enableRatings | boolean | true | - |
|
||||
| features | enableLuckyButton | boolean | true | - |
|
||||
| game | defaultScaleMode | string | showall | showall\|exactfit\|noborder\|noscale |
|
||||
| game | defaultVolume | number | 0.7 | 0-1 |
|
||||
| Category | Setting | Type | Default | Validation |
|
||||
| -------- | ----------------------------- | ------- | -------------- | -------------------------------------- |
|
||||
| auth | guestAccessEnabled | boolean | true | - |
|
||||
| auth | userRegistrationEnabled | boolean | true | - |
|
||||
| auth | maxLoginAttempts | number | 5 | 1-20 |
|
||||
| auth | lockoutDurationMinutes | number | 15 | 1-1440 |
|
||||
| app | siteName | string | Flashpoint Web | maxLength: 100 |
|
||||
| app | maintenanceMode | boolean | false | - |
|
||||
| app | defaultTheme | string | dark | light\|dark\|system |
|
||||
| app | defaultPrimaryColor | string | blue | blue\|green\|red\|purple\|orange\|pink |
|
||||
| metadata | autoSyncEnabled | boolean | false | - |
|
||||
| metadata | syncIntervalMinutes | number | 60 | 0-1440 |
|
||||
| features | enablePlaylists | boolean | true | - |
|
||||
| features | enableFavorites | boolean | true | - |
|
||||
| features | enableStatistics | boolean | true | - |
|
||||
| features | enableActivityLog | boolean | true | - |
|
||||
| features | enableRatings | boolean | true | - |
|
||||
| features | enableLuckyButton | boolean | true | - |
|
||||
| features | enableDownloadedPage | boolean | true | - |
|
||||
| features | enableDownloadedPageForGuests | boolean | false | - |
|
||||
| features | enableDownloadedFilterDefault | boolean | false | - |
|
||||
| game | defaultScaleMode | string | showall | showall\|exactfit\|noborder\|noscale |
|
||||
| game | defaultVolume | number | 0.7 | 0-1 |
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ grid and list view options.
|
||||
- Play Mode, Language, Tags
|
||||
- Year Range (1970-2100)
|
||||
- Library (arcade/theatre)
|
||||
- Downloaded only
|
||||
- Show/hide broken games and extreme content
|
||||
|
||||
**Sorting:**
|
||||
@@ -57,6 +58,37 @@ grid and list view options.
|
||||
- List view (compact table format)
|
||||
- Adjustable card size
|
||||
|
||||
## Downloaded Games
|
||||
|
||||
A game counts as downloaded when it has at least one `game_data` row with
|
||||
`presentOnDisk = 1`.
|
||||
|
||||
**Filter:** Browse pages carry a "Downloaded only" switch and a removable
|
||||
chip. Its state lives in the compressed URL under the single-character key
|
||||
`w`: `w.1` means the user turned it on, `w.0` means they explicitly turned it
|
||||
off, and an absent key means "use the admin default".
|
||||
|
||||
**Downloaded page:** `/downloaded` lists downloaded games across both
|
||||
libraries. The filter is pinned on and its switch is hidden.
|
||||
|
||||
**Admin settings** (Settings > Features, see
|
||||
[Settings API](../06-api-reference/settings-api.md)): `enableDownloadedPage`
|
||||
(default true) shows or hides the `/downloaded` page and nav entry;
|
||||
`enableDownloadedPageForGuests` (default false, only shown while the page
|
||||
setting is on) allows guest access to it; `enableDownloadedFilterDefault`
|
||||
(default false) sets whether the "Downloaded only" filter starts on for users
|
||||
who haven't set it explicitly.
|
||||
|
||||
**Limitations:**
|
||||
|
||||
- Games with no `game_data` rows at all - legacy titles served from htdocs -
|
||||
can never appear as downloaded.
|
||||
- The `DownloadedReconciler`, which rebuilds the flag by scanning ZIP
|
||||
filenames in the games directory at startup and after each database sync,
|
||||
only ever sets the flag and never clears it. The Flashpoint Launcher may
|
||||
store game data outside that directory, so a missing ZIP is not proof of
|
||||
absence.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
#### GET /api/games
|
||||
|
||||
Reference in New Issue
Block a user