* docs: migrate from mkdocs to mdbook - Rename old mkdocs docs/ to old-docs/ for reference - Set up new docs/ with mdbook (book.toml + src/ tree) - Mirror full nav structure from mkdocs.yml into SUMMARY.md - Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes - Import Justfile-docs from root Justfile - Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action to install mdbook, split into separate build + deploy jobs, PR builds run the check step too * ci(docs): pin actions to SHAs, install mdbook via release binary * ci(docs): install mdbook from apt instead of curling a release binary * dev: replace mkdocs python stack with mdbook in dev image * ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI * docs: fix duplicate file entries in SUMMARY.md * docs: remove docs-install recipe * docs: remove site-url from book.toml to fix asset loading * dev: install mdbook from upstream release binary, not Debian apt The Debian package (0.4.x+ds) strips bundled font assets, leaving the built site without fonts/fonts.css. Use the upstream tarball (same as CI) so the theme is complete. Handles x86_64 and aarch64. * docs: vendor mdbook tarballs in dev/mdbook/, install from there Dockerfile.dev uses COPY + tar to install the right arch at build time. CI extracts the x86_64 tarball directly from the checkout. No network access required for either — and no stripped-fonts Debian package. * fix: unwritten
3.3 KiB
UGPT Stat Showcase
These endpoints are related to the Statistic Showcase feature.
Evaluate this users set stats
GET /api/v1/users/:userID/games/:gameGroup/:playtype/showcase
Parameters
| Property | Type | Description |
| :: | :: | :: |
| projectUser | Optional, userID | If provided, will project another users showcase onto this user, evaluating the same user against the projectedUser's stats. |
Response
| Property | Type | Description |
| :: | :: | :: |
| <body> | Array<StatShowcaseResults> | |
Example
Request
GET /api/v1/users/1/games/iidx/SP/showcase
Response
[{
stat: {
},
value: {
value: 123,
},
related: {
song: {
title: "FREEDOM DIVE",
// ...
},
chart: {
// some chart stuff..
},
// folders: [] if this is a folder(s) stat, then folders are displayed here.
}
}]
Replace a user's stat showcase.
PATCH /api/v1/users/:userID/games/:gameGroup/:playtype/showcase
Permissions
customise_profile
Parameters
| Property | Type | Description |
| :: | :: | :: |
| <body> | Array<StatDocument> | An array of up to 6 stat documents. |
Response
| Property | Type | Description |
| :: | :: | :: |
| <body> | Array<StatDocument> | The newly updated stat documents. |
Example
Request
PATCH /api/v1/users/1/games/iidx/SP/showcase
[
{
mode: "chart",
chartID: "some_chart_id",
property: "percent"
}
]
Response
[
{
mode: "chart",
chartID: "some_chart_id",
property: "percent"
}
]
Evaluate a custom stat on this user.
GET /api/v1/users/:userID/games/:gameGroup/:playtype/showcase/custom
Parameters
| Property | Type | Description |
| :: | :: | :: |
| mode | "folder" | "chart" | Whether the stat to evaluate is on a folder or a chart. |
| property | "grade" | "lamp" | "score" | "percent" or "playcount" if mode is chart. | What property to evaluate on the given criteria. |
| chartID | string, if mode === "chart" | If mode is chart, this should contain the relevant chartID. |
| folderID | string, if mode === "folder" | If mode is folder, this should contain the relevant folderID. |
| gte | number, if mode === "folder" | If mode is folder, this must contain the value the property must be greater than, i.e. lamp >= 6, or percent >= 90 |
Response
| Property | Type | Description |
| :: | :: | :: |
| stat | StatDocument | The stat you evaluated. |
| result | {value: number | null, outOf?: number } | Contains value, which contains the stat's value, or NULL if the mode is chart and the user has not played this chart. If mode is folder, outOf contains the total amount of charts in that folder. |
| related | {song, chart} or {folders} | If mode is chart, contains the pertinent song and chart. If mode is folder, contains the pertinent folder documents.
Example
Request
GET /api/v1/users/1/games/iidx/SP/showcase/custom?mode=chart&property=percent&chartID=some_chart_id
Response
{
stat: {
mode: "chart",
property: "percent",
chartID: "some_chart_id",
},
result: {
value: 99.12
},
related: {
song: {
id: 123,
title: "AA",
artist: "DJ.Amuro",
// ...
},
chart: {
songID: 123,
difficulty: "ANOTHER",
// ...
}
}
}