Commit graph

9 commits

Author SHA1 Message Date
vrubel
66b10d9425 feat: rapid/blitz ratings, instant addplayer, hyperlinks, bug fixes
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 7s
- fetch_fide_player: parse rapid and blitz ratings from FIDE profile
- subscriptions: add rapid/blitz columns (auto-migration)
- /myplayers card: show rapid (📍) and blitz () ratings
- /addplayer confirmation: show rapid/blitz alongside standard rating
- find_player_in_cache: extract instant SQL-only search from scan_for_player
- /addplayer: use find_player_in_cache instead of full HTTP scan — instant response
- tournament names in /myplayers and /addplayer are now hyperlinks
- add_player_watch: ON CONFLICT DO UPDATE to reactivate deleted players
- my_players: try/except per card with plain-text fallback, error logged to stderr

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 23:35:49 +00:00
vrubel
293c1d90c8 fix: player tracking subscription flow and /myplayers display
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 4s
- scan_for_player: remove hardcoded TNR range (1434k-1450k), search full cache
- discover_max_tnr: start from cache MAX(tnr) instead of stuck-at-500k value
- addplayer: if no tournament found, add fide_only watch instead of asking for URL
- rescan_new_tournaments: deactivate fide_only entry when real tournament found
- /myplayers: card layout grouped by player, removal by FIDE ID
- /removeplayer: now accepts FIDE ID, removes all subscriptions for that player
- fix MarkdownV2 escaping: dates (hyphens), <> in messages, title='None'
- check_all_subscriptions: skip fide_only entries; interval 5min → 1min

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 22:54:01 +00:00
vrubel
d18c5016ce feat: rescan_existing_tournaments — detect new players in cached tournaments every 2h
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 6s
2026-06-20 22:09:48 +00:00
vrubel
07b016bff9 perf: SQL LIKE query instead of Python loop; skip warmup if cache >1000
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 7s
2026-06-20 09:06:11 +00:00
vrubel
34dc8b7ac6 perf: check tnr_cache before discover_max_tnr (instant search) 2026-06-20 08:56:18 +00:00
vrubel
9a583c8fa5 fix: match player by SNo, not name (Latin/Cyrillic mismatch) 2026-06-20 08:55:09 +00:00
vrubel
ba293dcb70 feat: pairings output - show ±5 around subscribed player
- _build_table_rows: filter to ±5 boards around player
- Normalize names (strip commas) for matching FIDE vs pairings format
- Highlight subscribed player with  emoji
- Reduce name column width to compensate for emoji
- Add tournament name to pairing header
- Manual URL flow: look up subscription to highlight player
- Fix MarkdownV2 escaping for em-dash
2026-06-20 07:53:43 +00:00
vrubel
89f5861ee3 fix: auto-tournament search via local tnr_cache index
- Extract canonical FIDE ID from profile page (profile-info-id)
- Add tnr_cache table for local tournament index with players
- scan_for_player uses cache-only search (instant SQL, 0 HTTP)
- warmup_cache builds full index at step 1 (1445000→1434000)
- Save/resume warmup progress via tnr_state
- Auto-migrate missing columns (start_date/end_date)
- Add hourly rescan_new_tournaments job
- Fix discover_max_tnr (larger probe steps, lower default)
- Use asyncio.to_thread() for warmup (no crutches)
2026-06-20 07:15:16 +00:00
vrubel
7ebe1aa66e Подписка на игроков: /addplayer, /myplayers, /removeplayer, фоновая проверка результатов и жеребьёвки
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 11s
2026-06-19 18:35:12 +00:00