Files
zkldi_Tachi/old-docs/docs/api/routes/ugpt-showcase.md
T
zk e363bd2532 docs: migrate from mkdocs to mdbook (#1558)
* 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
2026-05-22 20:43:07 +01:00

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",
			// ...
		}
	}
}