Commit Graph

86 Commits

Author SHA1 Message Date
NotSoToothless 80a1ebde30 new spectra format (#1302) 2026-06-05 11:48:42 -07:00
NotSoToothless e9e83d4343 timeline (#1301) 2026-06-05 10:09:15 -07:00
deploy 9173d4097e line shit 2026-06-05 04:57:39 +00:00
deploy de42c30bab timeline feaky 2026-06-04 23:35:09 +00:00
deploy 6ceb800855 timeline changes 2026-06-04 21:59:01 +00:00
NotSoToothless 732730829d feakyyy (#1300) 2026-06-04 13:55:14 -07:00
NotSoToothless 62d25125cc update line (#1298) 2026-06-04 13:41:48 -07:00
NotSoToothless d546f37874 update line (#1297) 2026-06-04 13:36:27 -07:00
NotSoToothless 66e5a5e068 add frovy and update style (#1296) 2026-06-04 13:31:12 -07:00
NotSoToothless 67c821e501 add timeline page (#1295) 2026-06-04 10:16:40 -07:00
NotSoToothless 9d950c413f blacklist DSPL 💔 2 (#1294) 2026-06-01 13:31:49 -07:00
NotSoToothless 38726d6340 blacklist DSPL 💔 (#1293) 2026-06-01 13:16:43 -07:00
NotSoToothless cb0a18f748 move venv to shared (#1291) 2026-05-31 01:43:19 -07:00
NotSoToothless 37c3e66d75 update blacklists (#1290) 2026-05-30 10:23:03 -07:00
NotSoToothless ec2209b5d0 locale-slop (#1289) 2026-05-30 09:20:34 -07:00
NotSoToothless db34ca0d3d update helps and commands (#1288) 2026-05-30 09:09:29 -07:00
NotSoToothless 54c06bd275 lets get this party starteddddd (#1287) 2026-05-30 08:45:32 -07:00
deploy 8396f48f90 fix: squad KPS now averages per-player KPS instead of summing all kills
Previously sqKps = sumAllPlayerKills / games, inflating the value ~8x
since all 8 players' kills were summed before dividing by game count.
Now computed as the mean of each active player's individual kills/games.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:03:25 +00:00
deploy 14430d3850 simplify: strip first/last char for squadron tag normalization
WT tags are always exactly one decorator char on each side, so a
simple s[1:-1] is clearer than a regex strip.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:33:28 +00:00
deploy f9cced2b39 fix: use squadron_short for win/loss comparison in scoreboard
squadron_raw from old saved replays still has raw tags (-DSPLA-) but
winning_team is now stripped (DSPLA) by _strip_tag in process_session.
squadron_short is set by per-team DB resolution so it matches for both
old and new replays.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:26:18 +00:00
deploy c0755ec243 fix: strip leading/trailing non-alphanumeric chars in _normalize_squadron_tag
The old regex [^A-Za-z0-9_-] whitelisted dashes and underscores, so
-DSPLA- and _APS_ passed through untouched. All downstream code that
reads team["squadron"] then saw the raw tag instead of the bare short
name, causing NULL clan_ids in player_games_hist/match_summary and
broken lookups throughout. Fixing at the source means every consumer
gets a clean name without individual patches.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:24:25 +00:00
deploy 74c56881fd fix: strip tag decorators from winner/loser before guild_squadron comparison
guild_squadron is the clean short name from SQUADRONS.json (e.g. DSPLA)
but winning_team_squadron in the replay is the raw tagged value (-DSPLA-).
They never matched for dash/underscore-tagged squads so bar_color was
always not_involved instead of win/loss on the guild's own scoreboard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:18:11 +00:00
deploy 0154c41997 fix: strip tag decorators from squadron names in comp writer and /comp lookup
Squads with dash or underscore tags (e.g. -DSPLA-, _APS_) had their raw
replay team.squadron value written directly to COMPS filenames, producing
-DSPLA-.json / _APS_.json. The /comp autocomplete returns the clean DB
short_name (DSPLA) so the file lookup never matched.

Fix: strip leading/trailing non-alphanumeric characters and uppercase in
both the writer and the /comp command lookup. Also renamed the 8 existing
decorated COMPS files to their clean equivalents on disk.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:15:48 +00:00
deploy 1d5da8042c fix: use raw squadron tag for win/loss comparison, not resolved short name
My earlier change to use squadron_short (resolved clean name, e.g. DSPLA)
for display broke the win/loss header colour: winning_team is the raw
replay value (e.g. -DSPLA-) so the comparison never matched, rendering
both teams as losers. Split into squadron_raw (comparison) vs
squadron_short (display text) so each uses the right value.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 17:22:45 +00:00
deploy 2a143c360f fix: apply per-team resolution to process_session clan lookup
Same order-inversion bug as build_scoreboard_context existed in
process_session's resolve_clans call. The inverted squadron_long
caused the scoreboard renderer to find the opponent's diff entry
for a dash-tagged squad's players, producing ??? for every player
since their UIDs weren't in the wrong squad's points_diff dict.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 17:16:44 +00:00
deploy 606e174a97 fix: resolve each team independently to prevent squadron_long order inversion
When one team has a dash-tag (e.g. -DSPLA-) and the opponent has a normal
tag (e.g. ALUN2), batching both into resolve_clans caused the short-name
pass to place the normal team first in results and the tag pass to append
the dash-tagged team second — inverting the mapping vs. the teams array.
Each team's players were then looked up against the wrong squadron's API,
yielding curr=0 for everyone and diffs=0 on the scoreboard.

Fix: resolve each team concurrently and independently so results are always
index-aligned with the teams list regardless of which resolution path fires.
Also propagates squadron_short to the scoreboard renderer so display names
are clean (DSPLA not -DSPLA-).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 17:04:40 +00:00
NotSoToothless cc4bc14193 fix schedule (#1286) 2026-05-29 09:45:37 -07:00
deploy 5d972d7314 fix: resolve_clans drops unresolved placeholders to allow tag fallback
Squads with dash-wrapped tags (e.g. -DSPLA-) store the full tag in the
replay's team.squadron field rather than the bare short name. The short
lookup fails and returns a placeholder whose short_name blocks the tag
lookup, leaving squadron_long as "<unresolved>" and producing no point
diffs on scoreboards. Fix: only include successfully resolved clans
(clan_id is not None) in results and resolved_shorts so the tag pass
still runs for any failed short lookup. Affects all 186 dash-tagged squads.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 16:42:23 +00:00
Heidi c08fd9c42b removed tss endpoints from API 2026-05-29 15:11:14 +01:00
NotSoToothless 96aa75be57 fuck u (#1283) 2026-05-28 06:37:08 -07:00
NotSoToothless a489d7d04b fix schedule (#1282) 2026-05-28 06:03:52 -07:00
NotSoToothless 23a9cf8fbf fix lookups on replay paths for website (#1281) 2026-05-27 09:18:27 -07:00
NotSoToothless 4984ba4f6c fix schedule (#1280) 2026-05-27 07:22:53 -07:00
NotSoToothless 45b1b334c4 update bumass command, and bad wording (#1279) 2026-05-27 07:08:28 -07:00
NotSoToothless 2371e2d4cf mrowww (#1278) 2026-05-27 06:11:25 -07:00
NotSoToothless b735233e59 meowww (#1277) 2026-05-27 06:08:43 -07:00
NotSoToothless 82eed56cd9 meowww (#1276) 2026-05-27 06:03:08 -07:00
NotSoToothless 25ee9f98e7 meowww (#1275) 2026-05-27 06:00:23 -07:00
NotSoToothless c723081916 Auto merge dev → main (#1274)
* update homepage

* fix webhook missing restarts on PR merge (empty commits payload)

When GitHub fires a push event for a PR merge, the commits array is
sometimes empty, leaving changed_files as [] and skipping all restarts.
Fall back to git diff --name-only using the before/after SHAs from the
payload so changed files are always derived correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 05:56:17 -07:00
NotSoToothless 9dab5c09ed update homepage (#1273) 2026-05-27 05:47:32 -07:00
deploy 95f38a9b0d add supporters section to homepage
Shows paying squadrons as pill links (SHORT // LONG → /squadrons/<short>) above the footer, with a 15-min server-side cache backed by entitlements DB + SQUADRONS.json.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 12:38:58 +00:00
NotSoToothless f042fd4d8a whoops (#1272) 2026-05-27 04:37:03 -07:00
NotSoToothless 0c99a911e0 whoops (#1271) 2026-05-27 04:29:57 -07:00
NotSoToothless 8760c63759 update tss and sre replay area (#1269) 2026-05-25 21:24:56 -07:00
NotSoToothless c4693e498c fixed (#1268) 2026-05-24 19:47:37 -07:00
NotSoToothless 9c6ca3bcd7 compress the mf (#1267) 2026-05-24 19:44:12 -07:00
Clippii 99a43e398e fix ws dropping replays due to 1MB max_size limit
Raise websockets max_size to 32MB so zstd-compressed frames from Spectra
that exceed the 1MB default aren't rejected before decompression.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 16:36:24 +00:00
NotSoToothless f6f4e33a65 update to handle new structure from spectra, no more gobs (#1266) 2026-05-23 17:16:53 -07:00
NotSoToothless 2d5adfcbe0 fix leave alarm (#1265) 2026-05-21 23:22:10 -07:00
NotSoToothless cd909bc858 add leave option and wire up (#1264) 2026-05-19 22:24:03 -07:00