diff --git a/.gitignore b/.gitignore index 626c288..aec71f0 100644 --- a/.gitignore +++ b/.gitignore @@ -236,6 +236,11 @@ spirit/assets/bundleCache/foil_masks/ # fresh clone has a working Home button without needing a local game install. !spirit/assets/bundleCache/en_US_Logos/ !spirit/assets/bundleCache/en_US_Logos/** +# Default landing carousel artwork for new installations. +!spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/ +!spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/** +!spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/ +!spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/** !spirit/assets/cards/ # Static localization reference data must ship with the repo (server loads it at # startup; a git-clone deploy has no other source). Runtime account/user DBs stay ignored. @@ -249,4 +254,4 @@ AGENTS.md unity_ptcgo_recon/ docs/ -native/ \ No newline at end of file +native/ diff --git a/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__data b/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__data new file mode 100644 index 0000000..46b3104 Binary files /dev/null and b/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__data differ diff --git a/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__info b/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__info new file mode 100644 index 0000000..4e749e4 --- /dev/null +++ b/spirit/assets/bundleCache/en_US_LandingPage_CRR80_3/00000000000000000000000001000000/__info @@ -0,0 +1,4 @@ +-1 +1677808771 +1 +__data diff --git a/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__data b/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__data new file mode 100644 index 0000000..b45364d Binary files /dev/null and b/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__data differ diff --git a/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__info b/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__info new file mode 100644 index 0000000..43bb04a --- /dev/null +++ b/spirit/assets/bundleCache/en_US_LandingPage_CRR87_3/00000000000000000000000001000000/__info @@ -0,0 +1,4 @@ +-1 +1677808766 +1 +__data diff --git a/spirit/assets/landing_pages/README.md b/spirit/assets/landing_pages/README.md index 0a9b2a9..f974b11 100644 --- a/spirit/assets/landing_pages/README.md +++ b/spirit/assets/landing_pages/README.md @@ -1,5 +1,13 @@ # Custom landing-page artwork +Fresh databases receive the two starter pages from +`spirit/database/json_data/default_dynamic_pages.json` when the `dynamic_pages` +table is first created. Their Whimsicott and Galarian Articuno artwork ships in +the tracked `en_US_LandingPage_CRR87_3` and `en_US_LandingPage_CRR80_3` bundles. +Existing tables are left alone, including intentionally empty ones: editing or +deleting pages in the dashboard persists across restarts. To change defaults +for future installations, edit the JSON seed; do not commit `ptcgo_server.db`. + Add a 16:9 PNG here to make it available in **Admin Dashboard → Dynamic Pages → Browse game artwork**. A 1920×1080 source is recommended. diff --git a/spirit/database/__init__.py b/spirit/database/__init__.py index aeb8065..1face90 100644 --- a/spirit/database/__init__.py +++ b/spirit/database/__init__.py @@ -6,6 +6,7 @@ from spirit.database.models import ( VersusProgress, DailyLoginProgress, AsyncTournament, TournamentEntry, TournamentLeaderboardClaim ) +from spirit.database import seeds as _seeds __all__ = [ "Base", diff --git a/spirit/database/json_data/default_dynamic_pages.json b/spirit/database/json_data/default_dynamic_pages.json new file mode 100644 index 0000000..609b771 --- /dev/null +++ b/spirit/database/json_data/default_dynamic_pages.json @@ -0,0 +1,56 @@ +[ + { + "page_type": "landing", + "sort_order": 1, + "content_json": { + "template": "LandingPageLeft", + "sortOrder": 1, + "startTime": 0, + "endTime": 4102444800000, + "labels": { + "GameText": { + "token": "spirit.dynamic_page.game_text", + "bundle": { + "en_US": "Welcome to SpiritPTCGO" + } + } + }, + "images": { + "GameBackground": { + "localeImageMap": { + "en_US": "LandingPage/swsh9_whimsicott_landingpage" + } + } + }, + "actions": {} + }, + "enabled": true + }, + { + "page_type": "landing", + "sort_order": 2, + "content_json": { + "template": "LandingPageRight", + "sortOrder": 2, + "startTime": 0, + "endTime": 4102444800000, + "labels": { + "GameText": { + "token": "spirit.dynamic_page.game_text", + "bundle": { + "en_US": "The first PTCGO private server!" + } + } + }, + "images": { + "GameBackground": { + "localeImageMap": { + "en_US": "LandingPage/swsh6_galarianarticuno_landingpage" + } + } + }, + "actions": {} + }, + "enabled": true + } +]