From a14ab5e170ce9abb6d244d1a37d8ce6925239f9d Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sun, 15 Feb 2026 00:05:58 +0100 Subject: [PATCH] Update for Season 2026 --- ...la11-docker.yaml => formula12-docker.yaml} | 10 +-- flake.nix | 2 +- .../components/cards/SeasonPickCard.svelte | 33 +++------ src/lib/schema.ts | 6 +- .../data/seasonpickresults/+page.svelte | 54 ++++++-------- src/routes/leaderboard/+page.svelte | 2 +- src/routes/seasonpicks/+page.svelte | 73 ++++++++++--------- 7 files changed, 82 insertions(+), 98 deletions(-) rename .gitea/workflows/{formula11-docker.yaml => formula12-docker.yaml} (70%) diff --git a/.gitea/workflows/formula11-docker.yaml b/.gitea/workflows/formula12-docker.yaml similarity index 70% rename from .gitea/workflows/formula11-docker.yaml rename to .gitea/workflows/formula12-docker.yaml index 2178fc4..25d8587 100644 --- a/.gitea/workflows/formula11-docker.yaml +++ b/.gitea/workflows/formula12-docker.yaml @@ -1,4 +1,4 @@ -name: Build Formula11 Docker Image +name: Build Formula12 Docker Image on: push: @@ -19,7 +19,7 @@ jobs: registry: gitea.vps.chriphost.de username: ${{ secrets.CONTAINER_REGISTRY_USER }} password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - - name: Build Formula11 Docker Image - run: docker build --file formula11.dockerfile --tag gitea.vps.chriphost.de/christoph/formula11:latest . - - name: Push Formula11 Docker Image - run: docker push gitea.vps.chriphost.de/christoph/formula11:latest + - name: Build Formula12 Docker Image + run: docker build --file formula12.dockerfile --tag gitea.vps.chriphost.de/christoph/formula12:latest . + - name: Push Formula12 Docker Image + run: docker push gitea.vps.chriphost.de/christoph/formula12:latest diff --git a/flake.nix b/flake.nix index d5c4cb4..781acf5 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ rec { - description = "Formula11"; + description = "Formula12"; inputs = { nixpkgs.url = "nixpkgs"; # Use nixpkgs from system registry diff --git a/src/lib/components/cards/SeasonPickCard.svelte b/src/lib/components/cards/SeasonPickCard.svelte index 7d7f586..e73c6d8 100644 --- a/src/lib/components/cards/SeasonPickCard.svelte +++ b/src/lib/components/cards/SeasonPickCard.svelte @@ -55,7 +55,7 @@ let wcc_value: string = $state(seasonpick?.wccwinner ?? ""); let overtakes_value: string = $state(seasonpick?.mostovertakes ?? ""); let dnfs_value: string = $state(seasonpick?.mostdnfs ?? ""); - let doohan_value: string = $state(seasonpick?.doohanstarts.toString() ?? ""); + let liveries_value: string = $state(seasonpick?.liveries ?? ""); let teamwinners_input: string = $state(""); let teamwinners_chips: string[] = $state([]); @@ -140,7 +140,7 @@ if (disabled || !drivers) return; // Can only select 10 drivers - if (teamwinners_chips.length >= 10) return; + if (teamwinners_chips.length >= 11) return; // Can only select a driver once if (teamwinners_chips.includes(event.detail.value)) return; @@ -208,18 +208,11 @@ toastStore.trigger(get_error_toast("Please select a driver for most DNFs!")); return; } - if ( - !doohan_value || - doohan_value === "" || - parseInt(doohan_value) <= 0 || - parseInt(doohan_value) > 24 - ) { - toastStore.trigger( - get_error_toast("Please enter between 0 and 24 starts for Jack Doohan!"), - ); + if (!liveries_value || liveries_value === "") { + toastStore.trigger(get_error_toast("Please select a team for most liveries!")); return; } - if (!teamwinners_ids || teamwinners_ids.length !== 10) { + if (!teamwinners_ids || teamwinners_ids.length !== 11) { toastStore.trigger(get_error_toast("Please select a winner for each team!")); return; } @@ -235,7 +228,7 @@ wccwinner: wcc_value, mostovertakes: overtakes_value, mostdnfs: dnfs_value, - doohanstarts: doohan_value, + liveries: liveries_value, teamwinners: teamwinners_ids, podiums: podiums_ids, }; @@ -324,18 +317,16 @@ Most DNFs - - + - Doohan Starts - + Most Liveries + = 10) return; + if (teamwinners_chips.length >= 11) return; // Can only select a driver once if (teamwinners_chips.includes(event.detail.value)) return; @@ -313,18 +313,11 @@ toastStore.trigger(get_error_toast("Please select a driver for most DNFs!")); return; } - if ( - !doohan_starts || - doohan_starts === "" || - parseInt(doohan_starts) <= 0 || - parseInt(doohan_starts) > 24 - ) { - toastStore.trigger( - get_error_toast("Please enter between 0 and 24 starts for Jack Doohan!"), - ); + if (!liveries || liveries === "") { + toastStore.trigger(get_error_toast("Please select a team for most liveries!")); return; } - if (!teamwinners_ids || teamwinners_ids.length !== 10) { + if (!teamwinners_ids || teamwinners_ids.length !== 11) { toastStore.trigger(get_error_toast("Please select a winner for each team!")); return; } @@ -342,7 +335,7 @@ wccwinner: wccwinner_select_value, mostovertakes: overtakes_ids, mostdnfs: dnfs_ids, - doohanstarts: doohan_starts, + liveries: liveries, teamwinners: teamwinners_ids, podiums: podiums_ids, }; @@ -445,32 +438,31 @@ - +
(drivers, "code", "DOO")?.headshot_url ?? - get_driver_headshot_template(graphics)} - imgid="doohan_headshot" + imgsrc={get_by_value(teams, "id", liveries)?.banner_url ?? + get_team_banner_template(graphics)} + imgid="liveries_banner" width="w-full h-32" - imgwidth={DRIVER_HEADSHOT_WIDTH} - imgheight={DRIVER_HEADSHOT_HEIGHT} + imgwidth={TEAM_BANNER_WIDTH} + imgheight={TEAM_BANNER_HEIGHT} imgleft={true} imgshadow={false} - extraimgclass="mt-[20px]" + extraimgclass="mt-[16px] rounded-r-md" extraclass="w-full" > -

How often did JACK DOOHAN start?

- Which constructor had the most liveries this season? + - Doohan Starts - + Most Liveries +
diff --git a/src/routes/leaderboard/+page.svelte b/src/routes/leaderboard/+page.svelte index a3c5328..4c998ca 100644 --- a/src/routes/leaderboard/+page.svelte +++ b/src/routes/leaderboard/+page.svelte @@ -62,7 +62,7 @@ p.dnfs_points + p.teamwinner_points + p.podium_points + - p.doohan_points + p.liveries_points ); }; diff --git a/src/routes/seasonpicks/+page.svelte b/src/routes/seasonpicks/+page.svelte index b0be61c..e17fa61 100644 --- a/src/routes/seasonpicks/+page.svelte +++ b/src/routes/seasonpicks/+page.svelte @@ -56,21 +56,6 @@ } }); - let correct_doohanstarts: number | undefined = $state(undefined); - Promise.all([data.seasonpickresults, data.seasonpicks]).then( - ([results, picks]: [SeasonPickResult[], SeasonPick[]]) => { - if (results.length === 1) { - let result = results[0]; - - correct_doohanstarts = Math.min( - ...picks.map((pick: SeasonPick) => { - return Math.abs(pick.doohanstarts - result.doohanstarts); - }), - ); - } - }, - ); - // Users that have already picked the season let pickedusers: Promise = $derived.by(async () => (await data.seasonpickedusers).filter( @@ -125,14 +110,19 @@ {data.seasonpick?.hottake} - -
-

Doohan Starts:

- {#if data.seasonpick} - - Jack Doohan startet {data.seasonpick?.doohanstarts} mal. - - {/if} + +
+

Most Liveries:

+
@@ -359,14 +349,16 @@ DNFs
- +
- - Doohan + + Liveries
-
+
@@ -374,7 +366,9 @@
-
+
Podiums
@@ -395,6 +389,7 @@ {@const mostovertakes = pick ? get_by_value(drivers, "id", pick.mostovertakes) : undefined} + {@const liveries = pick ? get_by_value(teams, "id", pick.liveries) : undefined} {@const mostdnfs = pick ? get_by_value(drivers, "id", pick.mostdnfs) : undefined} {@const drivers_startedactive = drivers .filter((driver: Driver) => driver.started_active) @@ -507,24 +502,30 @@
- +
-
- Jack Doohan startet {pick?.doohanstarts ?? "?"} mal. +
+
{#if pick && pick.teamwinners}
@@ -562,7 +563,7 @@
{#if pick && pick.podiums}