Commit graph

17 commits

Author SHA1 Message Date
vrubel
22a0e27763 Парсер: поддержка латиницы (международные турниры) + таблица: колонки Рейт и Доп1
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 8s
2026-06-19 14:51:15 +00:00
vrubel
7f627beeec Убрал название турнира из шапки жеребьёвки, оставил только номер тура
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 6s
2026-06-15 18:16:54 +00:00
vrubel
6259dcb3e5 Fix: убрал raw-строки — \n теперь настоящие переносы, а не литералы в MarkdownV2
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 4s
2026-06-15 18:01:51 +00:00
vrubel
14d5a13afb Заменил box-drawing юникод на ASCII (│→|, ─→-, ┼→+, …→...) — гарантированное выравнивание на всех платформах
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 8s
2026-06-15 17:44:38 +00:00
vrubel
98a8febf37 Сжат формат таблицы для телефонов: w=25 символов, имена по 17 символов с обрезкой
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 4s
2026-06-15 17:25:59 +00:00
vrubel
62e1c73cdd Fix: корректный _display_width — кириллица это 1 колонка в моноширинном шрифте, не 2
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 8s
2026-06-15 17:15:19 +00:00
vrubel
dd9d01e7e0 Fix: пересчёт очков в _apply_round_results после применения результатов сыгранного тура
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 4s
2026-06-15 16:53:57 +00:00
vrubel
e0a897fd67 Пробинг туров: если тур уже сыгран — продвигаемся дальше вместо остановки
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 4s
2026-06-15 10:47:18 +00:00
Roman Vrubel
755290e43b Починено выравнивание: обрезанные имена теперь добиваются пробелами до ширины колонки
- _pad_col: после truncate + pad до точной ширины (не оставлял хвост)
- _display_width: добавлены U+2026 (…) и U+2116 (№) в wide-символы
2026-06-14 21:16:54 +00:00
Roman Vrubel
c6d799e82f Исправлено: обрезка длинных имён + разделители между парами
- _pad_col теперь обрезает имена длиннее колонки (с многоточием)
- Разделительная линия (────┼────┼────) после каждой пары
- chunk_size кратен 3 (white + black + border)
- Очки выровнены по самой длинной фамилии
2026-06-14 21:13:48 +00:00
Roman Vrubel
bd8cb7d9fc Починен краш Message_too_long: умная разбивка на чанки с code-блоками
- format_pairings возвращает структуру (title/rows/header/footer)
- _render_chunks разбивает пары на группы по ~30 пар
- Каждый чанк — свой code-блок с заголовком
- Убраны разделители между парами (экономия ~50% размера)
- Fallback plain text при любой ошибке MarkdownV2
2026-06-14 21:10:31 +00:00
Roman Vrubel
6bb1d238aa Таблица: ширина колонки — по самой длинной фамилии +3 пробела, разделители между парами
- w_name вычисляется динамически (max + 3, до 42)
- Горизонтальная линия (───┼───┼───) между каждой парой
2026-06-14 21:08:04 +00:00
Roman Vrubel
70ff9bfc4b Таблица в code-блоке: 3 колонки, 2 строки на пару, влезает на телефон
Формат:
#  │ Игрок                  │ О
───┼────────────────────────┼────
1  │ Мармылев Александр Д.  │ 4.0
   │ Нестеров Мирон А.      │ 4.0

Внутри code-блока MarkdownV2 не нужен (literal text).
2026-06-14 21:03:59 +00:00
Roman Vrubel
a17e21c983 Починены краши MarkdownV2: экранирование точек в очках, fallback на plain text
- Очки теперь через _md_escape (4.0 → 4\.0)
- Каждая пара в две строки (белые сверху, чёрные снизу)
- Защита: при ошибке MarkdownV2 парсинга — plain text
- Экранрованы точки в статусных сообщениях
2026-06-14 21:01:10 +00:00
Roman Vrubel
566daf5bb4 Убрал таблицу, заменил на компактный список (влезает на телефон)
Каждая пара — одна строка: номер, белые (очки) — чёрные (очки).
Убрал мёртвый код: _display_width, _make_table_* и др.
2026-06-14 20:51:24 +00:00
Roman Vrubel
35fb54a887 Перевёл Telegram-ботов на MarkdownV2 с таблицами в code-блоках
- client_bot.py: вывод пар в моноширинной таблице ()
  с учётом ширины кириллицы и обрезкой длинных имён
- admin_bot.py: /stat в MarkdownV2
- Оба бота: все сообщения в ParseMode.MARKDOWN_V2
2026-06-14 20:48:02 +00:00
Roman Vrubel
5c4b2536e7 Добавлены Telegram-боты (клиентский + админский)
- Клиентский бот: принимает ссылку на chess-results.com,
  проверяет наличие результатов/жеребьёвки, считает пары
  следующего тура, выводит в HTML-формате
- Админский бот: /stat — уникальные пользователи,
  всего запросов, запросов за сегодня
- Статистика через SQLite (volume bot-data)
- Оба бота в docker-compose с автоперезапуском
- .env.example с тестовыми токенами
- .env в .gitignore
2026-06-14 20:39:19 +00:00