NotSoToothless a5abecb918 Auto merge dev → main (#1361)
* fix: don't freeze tournament brackets that overrun their scheduled end

date_end (TSS dateEndTournament) is only the *scheduled* end; tournaments
overrun it. compute_status now trusts in_active (GetActiveTournaments
presence) over date_end, and needs_scan no longer disables re-scans past
date_end + buffer. Fixes brackets stuck while their final was still pending.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* refactor: split _store_scan_sync into reusable upsert helpers

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: store_schedule writes meta/matches/standings without wiping battles

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* refactor: extract gather_structure_sync; add fetch_schedule_sync (no battles)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: reconcile_battles gap-fills replay links for played matches only

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: debounced schedule refresh coalesces game bursts into one TSS call

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: maybe_link_battle links replays from game match_id with zero TSS calls

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat: route received games through maybe_link_battle (fast-path bracket link)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* tss_tournaments: three small final-review cleanups

- link_battle_sync: drop unused team_a_name/team_b_name from SELECT and
  fix status index from r[3] to r[1]
- _replace_battles: add clarifying comment about fast-path caveat and
  that schedule refresh deliberately skips this function
- store_scan / store_schedule: dispatch sqlite writes off the event loop
  via run_in_thread instead of calling sync writers directly

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 04:23:34 -07:00
2026-06-29 04:23:34 -07:00
2026-06-29 02:28:49 -07:00
2026-06-29 04:23:34 -07:00
2026-06-17 00:32:30 -07:00
2026-06-28 03:38:20 -07:00
2026-06-20 21:12:53 -07:00
2026-06-29 04:23:34 -07:00

TSSBOT

Sibling bot under BOTS/. Skeleton only — actual logic to be implemented.

Shared game-data assets (vromfs, data parser, MAPS, ICONS, FONTS, DAGOR_FILES, update_game_files.py) live in ../SHARED/. Add ../SHARED to sys.path before importing data_parser:

import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "SHARED"))
from data_parser import UnitTags, LangTableReader  # etc.

Layout

  • BOT/ — Python source for the bot (placeholder)
  • web/ — front-end / API server for TSSBOT (placeholder)
  • start_bot.py — entry point stub
S
Description
TSS Discord Bot - TSS game data and tournaments
Readme 1.5 MiB
Languages
Python 99.3%
JavaScript 0.4%
Shell 0.3%