From 97c6f2c8a61aedee94dbf67d852636b4490b0f43 Mon Sep 17 00:00:00 2001 From: AgentScrubbles Date: Sat, 25 Jul 2026 18:42:16 -0700 Subject: [PATCH] Add age ratings (#451) * Base age rating system * Cleanup enum leftovers * Missed files * GB importer * Linter settings * Translations * Prettier and linting --------- Co-authored-by: Robert Clabough --- server/.devcontainer/docker-compose.yml | 2 + server/.env.example | 4 + server/components/GameEditor/Metadata.vue | 141 ++++++++++++++++++ server/i18n/locales/de.json | 6 + server/i18n/locales/en_pirate.json | 6 + server/i18n/locales/en_us.json | 6 + server/i18n/locales/fr.json | 6 + server/i18n/locales/pl.json | 6 + server/pages/store/[id]/index.vue | 26 ++++ .../migration.sql | 20 +++ server/prisma/models/content.prisma | 26 +++- .../v1/admin/game/[id]/age-ratings.patch.ts | 65 ++++++++ .../api/v1/admin/game/[id]/index.get.ts | 2 + server/server/api/v1/games/[id]/index.get.ts | 1 + server/server/internal/metadata/giantbomb.ts | 110 +++++++++++++- server/server/internal/metadata/igdb.ts | 105 ++++++++++++- server/server/internal/metadata/index.ts | 21 +++ server/server/internal/metadata/manual.ts | 1 + .../server/internal/metadata/pcgamingwiki.ts | 1 + server/server/internal/metadata/steam.ts | 66 +++++++- server/server/internal/metadata/types.d.ts | 8 + server/utils/ageRatings.ts | 80 ++++++++++ 22 files changed, 704 insertions(+), 5 deletions(-) create mode 100644 server/server/api/v1/admin/game/[id]/age-ratings.patch.ts create mode 100644 server/utils/ageRatings.ts diff --git a/server/.devcontainer/docker-compose.yml b/server/.devcontainer/docker-compose.yml index 52598027..7bb4b9b6 100644 --- a/server/.devcontainer/docker-compose.yml +++ b/server/.devcontainer/docker-compose.yml @@ -10,6 +10,8 @@ services: db: image: postgres:14-alpine + ports: + - "5432:5432" environment: POSTGRES_USER: drop POSTGRES_PASSWORD: drop diff --git a/server/.env.example b/server/.env.example index 92ad2a29..dbd70e57 100644 --- a/server/.env.example +++ b/server/.env.example @@ -2,6 +2,10 @@ DATABASE_URL="postgres://drop:drop@127.0.0.1:5432/drop" GIANT_BOMB_API_KEY="" +# Optional, IGDB client information +IGDB_CLIENT_ID="" +IGDB_CLIENT_SECRET="" + EXTERNAL_URL="http://localhost:3000" NUXT_PORT=4000 diff --git a/server/components/GameEditor/Metadata.vue b/server/components/GameEditor/Metadata.vue index ebb4ff30..9030e7c3 100644 --- a/server/components/GameEditor/Metadata.vue +++ b/server/components/GameEditor/Metadata.vue @@ -52,6 +52,92 @@ /> +
+ +
+
+ + {{ + $t("library.admin.game.ageRatingLabel", { + organization: ar.organization, + rating: ar.rating, + }) + }} + + +
+

+ {{ $t("library.admin.game.ageRatingsEmpty") }} +

+
+ + + + +
+ +
+
@@ -468,6 +554,8 @@