ЧТМ:Центр управления модулями
Чтобы выполнение главной текущей задачи — автоматизации ЧТМ Вики с помощью Lua — не расползлось и не растерялось, собираем все главные направления на одной странице.
Список баз данных
[править код]- База данных финального турнира ЧТМ (Data)
2006 • 2010 • 2014 • 2018 • 2022 • 2026 • 2030 • 2034 • 2038 • 2042 • 2046
- База данных результатов всех турниров (Data/Tournaments)
2006 • 2009 • 2010 • 2013 • 2014 • 2015 • 2017 • 2018 • 2019 • 2020 • 2021 • 2022 • 2023 • 2024 • 2025 • 2026 • 2027 • 2028 • 2029 • 2030 • 2031 • 2032 • 2033 • 2034 • 2035 • 2036 • 2037 • 2038 • 2039 • 2040 • 2041 • 2042 • 2043 • 2044 • 2045 • 2046 • 2047 • 2048
- Прочие базы данных
- Data/Teams — словарь команд.
- Data/RatingCalc — единое хранилище словарей очков, рангов и ручных переопределений для движка подсчёта рейтинга.
- Технические страницы
- Cron/GenerateStats — служебный скрипт, предназначенный для агрегации, расчёта и кэширования полной базы данных финального турнира ЧТМ.
- Data/GrandStats.json (править) — огромная бандура для хранения генерируемого
Cron/GenerateStatsмашинного кода.
Обновление баз данных
[править код]Пока актуально только для финального турнира ЧТМ, но планируется расширить.
- Обновление
- Обновите или исправьте статистику на нужной подстранице, убедитесь, что нет ошибок синтаксиса.
- Откройте служебную страницу Развёртка шаблонов и вставьте следующий код:
{{#invoke:Cron/GenerateStats|main}} - Целиком скопируйте json-массив, перейдите на страницу Модуль:Data/GrandStats.json, удалите всё её содержимое и замените на только что скопированный код.
JSON-массивы занимают несколько мегабайт и хранить в SQL горы устаревшего нечитаемого кода абсолютно бессмысленно. Поэтому необходимо периодически чистить кэш от старых расчётов следующим образом:
Шаг 1. Находим old_id этих гигантских правок
Выполните следующий SQL-запрос:
SELECT old_id, LENGTH(old_text) AS size, old_flags
FROM text
ORDER BY size DESC
LIMIT 10;
Поскольку обычные статьи весят килобайты, этот запрос мгновенно выведет вам топ самых тяжелых правок за всю историю вашей вики. На первых строчках вы увидите ваши три правки размером ~2800000 байт.
Запишите их old_id.
Шаг 2. Обнуляем их вес (Освобождаем БД) Теперь мы просто превращаем этот машинный код в пустой, но валидный JSON-объект, чтобы не сломать парсер MediaWiki, если кто-то случайно откроет эту правку в истории. Выполните:
UPDATE text
SET old_text = '{"info": "Любой текст."}',
old_flags = 'utf-8'
WHERE old_id IN (НОМЕР, НОМЕР, НОМЕР);
(Замените цифры в скобках на те old_id, которые вы нашли на первом шаге).
Почему old_flags = 'utf-8'?
Иногда MediaWiki сжимает старые тяжелые правки и ставит флаг gzip или utf-8,gzip. Если мы заменяем сжатый бинарник на обычный текст, флаг gzip нужно обязательно убрать, иначе вики попытается «разархивировать» наш новый текст и выдаст ошибку. Флага utf-8 или вообще пустой строки '' будет достаточно.
Для заполнения Data/Tournaments пользуйтесь скриптом (или этим скриптом) на python для быстрого заполнения БД в корректном формате, а также скриптом для замены полных названий на трёхбуквенные коды, их можно выполнить, например, в Colab)
- Готово:
(править)
2006 (ЧТМ) • 2009 (КАм, КАф, КЕв, КОк, КЕвропы, КЮжАм, ККо) • 2010 (ЧТМ) • 2013 (КАм, КАф, КЕв, КОк, КЕвропы, КЮжАм, ККо) • 2014 (ЧТМ) • 2015 (КФе) • 2017 (КАм, КАф, КЕв, КОк, КЕвропы, ККо) • 2018 (ЧТМ) • 2019 (КФе) • 2020 (КАм, КАф, КЕв, КОк) • 2021 (ККо) • 2022 (ЧТМ) • 2023 (КФе) • 2024 (КАм, КАф, КЕв, КОк) • 2025 (ККо) • 2026 (ЧТМ) • 2027 (КФе) • 2028 (КАм, КАф, КЕв, КОк) • 2029 (ККо) • 2030 (ЧТМ) • 2031 (КФе) • 2032 (КАм, КАф, КЕв, КОк) • 2033 (ККо) • 2034 (ЧТМ) • 2035 (КФе) • 2036 (КАм, КАф, КЕв, КОк) • 2037 (ККо) • 2038 (ЧТМ) • 2039 (ЛНа) • 2041 (КФе) • 2040 (КАм, КАф, КЕв, КОк, ЧЧМ) • 2042 (ЧТМ, пер. матчи) • 2043 (ЛНа) • 2044 (КАм, КАф, КЕв, КОк, ЧЧМ) • 2045 (КФе) • 2046 (ЧТМ) • 2047 (ЛНа) • 2048 (КАм, КАф, КЕв, КОк, ЧЧМ)
- Не готово:
Кубки Убогих после 2006
- Скрипты для быстрого превращения Вики-кода в Lua
- ЧТМ:Центр управления модулями/скрипт сбора статистики турниров — работает нестабильно, много ошибок.
- Второй скрипт — менее функциональный, приходится много заполнять вручную, но более стабильный.
- Третий скрипт — для старых страниц, превращает полные названия в трёхбуквенные коды.
Главные технические модули
[править код]- Config
- StatEngine 2.6 (Pure • Matchday • TournamentAwards • Legacy • RatingCalc • StreaksCore • RatingBuilder — последний в фазе усиленной отладки)
Модули вывода вики-текста
[править код]Полностью переведённые на кэш
[править код]- PlayerStats — для списков достижений и статистики игроков, практически близок к совершенству.
- SimpleStats — для вывода простых таблиц статистических данных за всю историю ЧТМ.
Пока в старом формате
[править код]- HistoryTable — самые разные таблицы расчёта исторических показателей, вызывается с помощью шаблона Историческая таблица, готов к использованию.
- Историческая турнирная таблица — для статьи Исторический рейтинг ЧТМ, готов к использованию, но должен в будущем стать частью более обширного модуля.
- Призы игрового дня — таблички, это заготовка, его НЕ НАДО использовать в статьях, его код должен быть частью более глобального модуля.
- Список матчей ЧТМ — его необходимо допиливать, в текущем виде очень корявый.
- Статистика игроков по командам (2.0) — готов к использованию, надо только доработать.
- Megarating (1.2) — полностью готов к использованию и отлажен, реализуется через шаблон {{Мегарейтинг}}.
- TeamGoalscorers (1.5) — полностью готов к использованию на своей странице, в будущем может прокачаться одновременно как до того, чтобы стать частью более глобального модуля (TeamStatCompiler — сделано), так и до того, чтобы самому стать более глобальным модулем сбора не только статистики по голам, но и по остальным показателям.
- TeamMatchList (1.0) — полностью готов к использованию как самостоятельно, так и как часть глобального TeamStatCompiler.
- Streaks (2.0) — для статьи Рекордные серии матчей, полностью готов.
- Отчёт о матче (1.0) — для шаблона {{Статистика матча}}, полностью готов.
- MatchTable (1.1) — таблицы групп и плей-офф, полностью готов.
- TournamentResults (1.0) — работает в паре с MatchTable, готов.
- TeamStatCompiler (1.0-alpha.6) — код полностью отлажен, осталось только пройтись по сокращениям.
- RatingList (1.0) — достаточно простой модуль на базе RatingCalc, работает исправно.
- Significance (1.0) — модуль значимости игроков. Работает как для искомой страницы, полностью её собирая, так и как чистый движок в составе других модулей.
- FinalTournaments (1.0) — для страницы Список участий в финальных турнирах, работает как надо.
- Командные рекорды ЧТМ (1.0) — отлажен, работает, для страницы Командные рекорды ЧТМ
Категория
[править код]Экспериментальные модули
[править код]Узкоспециализированные модули-образцы:
- Беспроигрышные серии друг с другом
- Серии побед друг над другом
- Процент побед
- Матчи в составах разных команд
- Матчи в составе одной команды
- Связка
Выполняются стандартно:
{{#invoke:Название модуля|main}}
Тесты модулей
[править код]Для быстрой проверки.
Lua
[править код]- Megarating
- HistoryTable
- Статистика игроков по командам
- Автоматическая статистика
- Список матчей ЧТМ
- Призы игровых дней
- TeamGoalscorers
- TeamMatchList
- TestRating
- Streaks
- Отчёт о матче
- MatchTable
- TournamentResults
- TeamStatCompiler
- RatingList
- Significance
- FinalTournaments
- RatingBuilder
- PlayerStats
Cargo
[править код]Дополнительно
[править код]{{Doc/begin|{{FULLPAGENAME}}}}{{Docpage}}<includeonly>{{Docpage/для модулей}}</includeonly>
----
<includeonly>''Пожалуйста, добавляйте категории на страницу [[/doc|документации]]''.</includeonly>{{Doc/end}}