Модуль:Data/2042
Список баз данных
- База данных финального турнира ЧТМ (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 или вообще пустой строки '' будет достаточно.
Пожалуйста, добавляйте категории на страницу документации.
return {
-- 01 ЭРИТРЕЯ - СВАЗИЛЕНД
["2046-01"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06",
matchday = 1,
num_hist = 614,
stage = "Группа",
letter = "A",
team1 = "ЭРИ",
team2 = "СВА",
score1 = 3,
score2 = 1,
aet = false,
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 4,
format2 = 4,
half_court = false,
halfs = 1,
half_time = 10,
-- et_halfs = 1,
-- et_half_time = 10,
-- neutral_goalies = {},
-- 3. МЕДИА
-- video = "",
review_url = "I9_SzDUhH5M",
review_time = "0m58s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"Дима_Кес.", "Бирюк", "Саша_Т.", "Саша_П."},
},
squad2 = {
starters = {"Диман", "Коля", "Гриша", "Вадим_К."},
},
subs = {
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "Бирюк", assist = "Саша_Т.", score = "1:0", min = 2},
{team = 1, scorer = "Саша_Т.", assist = "Ринат", score = "2:0", min = 4},
{team = 2, scorer = "Диман", assist = "Макс", score = "2:1", min = 6},
{team = 1, scorer = "Дима_Кес.", assist = "Макс", score = "3:1", min = 10},
},
missed_pens = {
{team = 1, taker = "Вадим_К.", result = "вратарь", goalie = "Бирюк", score = "2:1", min = 9},
},
clearances = {
},
cards = {
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Бирюк",
team = 1,
},
-- comment = ""
},
-- 02 ИНДИЯ - СОМАЛИ
["2046-02"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06",
matchday = 1,
num_hist = 615,
stage = "Группа",
letter = "A",
team1 = "ИНД",
team2 = "СОМ",
score1 = 3,
score2 = 3,
aet = false,
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 5,
format2 = 5,
half_court = false,
halfs = 1,
half_time = 10,
-- 3. МЕДИА
-- video = "",
review_url = "I9_SzDUhH5M",
review_time = "8m47s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"Диман", "Саша_П.", "Гриша", "Саша_Т.", "Вадим_К."},
full_match_goalie = "Диман", -- стоял весь матч
},
squad2 = {
starters = {"Никита_Кол.", "Дима_Кес.", "Стас", "Бирюк", "Коля"},
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 2, scorer = "Коля", assist = "Стас", score = "0:1", min = 3},
{team = 1, scorer = "Саша_Т.", assist = "Гриша", score = "1:1", min = 4},
{team = 1, scorer = "Саша_П.", assist = "Саша_Т.", score = "2:1", min = 5},
{team = 1, scorer = "Вадим_К.", assist = "Саша_Т.", score = "3:1", min = 8},
{team = 2, scorer = "Саша_П.", score = "3:2", min = 10, goal_type = "автогол"},
{team = 2, scorer = "Стас", assist = "Дима_Кес.", score = "3:3", min = 10},
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Саша_Т.",
team = 1,
role = "поле",
},
-- comment = ""
},
-- 03 МОНГОЛИЯ - АМЕРИК. САМОА
["2046-03"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06",
matchday = 1,
num_hist = 616,
stage = "Группа",
letter = "B",
team1 = "МОН",
team2 = "АСА",
score1 = 1,
score2 = 3,
aet = false,
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 5, -- Число игроков на поле в первой команде
format2 = 5, -- Число игроков на поле во второй команде
half_court = false, -- На одни ворота? (true/false)
halfs = 1, -- Количество таймов основного времени
half_time = 10, -- Количество минут в одном тайме основного времени
-- 3. МЕДИА
-- video = "p8UVvKKdVEw",
review_url = "I9_SzDUhH5M",
review_time = "16m52s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"", "", "", "", ""},
-- full_match_goalie = "Антон", -- Если стоял весь матч
},
squad2 = {
starters = {"", "", "", "", ""},
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "", assist = "", score = "1:0", min = 2},
{team = 2, scorer = "", assist = "", score = "1:1", min = 4},
{team = 2, scorer = "", assist = "", score = "1:2", min = 6},
{team = 2, scorer = "", assist = "", score = "1:3", min = "10+1"},
-- goal_type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
clearances = { -- Выносы из пустых
-- {team = 2, player = "Диман", score = "1:0", min = 14},
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "",
team = 0,
role = "поле",
},
-- comment = ""
},
--
["2046-"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06", -- ГГГГ-ММ-ДД
matchday = 1, -- Номер игрового дня в турнире (пригодится для связи с призами дня)
num_hist = 000, -- Исторический номер
stage = "Группа", -- Стадия
letter = "", -- Литера группы, если групповой раунд
team1 = "", -- Можно использовать ваши 3-буквенные коды
team2 = "",
score1 = 0,
score2 = 0,
aet = false, -- Было ли дополнительное время (true/false)
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 0, -- Число игроков на поле в первой команде
format2 = 0, -- Число игроков на поле во второй команде
half_court = false, -- На одни ворота? (true/false)
halfs = 1, -- Количество таймов основного времени
half_time = 10, -- Количество минут в одном тайме основного времени
-- 3. МЕДИА
-- video = "p8UVvKKdVEw",
review_url = "I9_SzDUhH5M",
review_time = "0m0s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"", "", "", "", ""},
-- full_match_goalie = "Антон", -- Если стоял весь матч
},
squad2 = {
starters = {"", "", "", "", ""},
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "", assist = "", score = ":", min = 0},
{team = 2, scorer = "", assist = "", score = ":", min = 0}
-- goal_type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
clearances = { -- Выносы из пустых
-- {team = 2, player = "Диман", score = "1:0", min = 14},
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Бирюк",
team = 1, -- 1, 2 или 0 (если нейтральный вратарь)
role = "поле", -- "поле" или "вратарь"
},
-- comment = ""
},
--
["2046-"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06", -- ГГГГ-ММ-ДД
matchday = 1, -- Номер игрового дня в турнире (пригодится для связи с призами дня)
num_hist = 000, -- Исторический номер
stage = "Группа", -- Стадия
letter = "", -- Литера группы, если групповой раунд
team1 = "", -- Можно использовать ваши 3-буквенные коды
team2 = "",
score1 = 0,
score2 = 0,
aet = false, -- Было ли дополнительное время (true/false)
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 0, -- Число игроков на поле в первой команде
format2 = 0, -- Число игроков на поле во второй команде
half_court = false, -- На одни ворота? (true/false)
halfs = 1, -- Количество таймов основного времени
half_time = 10, -- Количество минут в одном тайме основного времени
-- 3. МЕДИА
-- video = "p8UVvKKdVEw",
review_url = "I9_SzDUhH5M",
review_time = "0m0s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"", "", "", "", ""},
-- full_match_goalie = "Антон", -- Если стоял весь матч
},
squad2 = {
starters = {"", "", "", "", ""},
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "", assist = "", score = ":", min = 0},
{team = 2, scorer = "", assist = "", score = ":", min = 0}
-- goal_type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
clearances = { -- Выносы из пустых
-- {team = 2, player = "Диман", score = "1:0", min = 14},
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Бирюк",
team = 1, -- 1, 2 или 0 (если нейтральный вратарь)
role = "поле", -- "поле" или "вратарь"
},
-- comment = ""
},
--
["2046-"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06", -- ГГГГ-ММ-ДД
matchday = 1, -- Номер игрового дня в турнире (пригодится для связи с призами дня)
num_hist = 000, -- Исторический номер
stage = "Группа", -- Стадия
letter = "", -- Литера группы, если групповой раунд
team1 = "", -- Можно использовать ваши 3-буквенные коды
team2 = "",
score1 = 0,
score2 = 0,
aet = false, -- Было ли дополнительное время (true/false)
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 0, -- Число игроков на поле в первой команде
format2 = 0, -- Число игроков на поле во второй команде
half_court = false, -- На одни ворота? (true/false)
halfs = 1, -- Количество таймов основного времени
half_time = 10, -- Количество минут в одном тайме основного времени
-- 3. МЕДИА
-- video = "p8UVvKKdVEw",
review_url = "I9_SzDUhH5M",
review_time = "0m0s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"", "", "", "", ""},
-- full_match_goalie = "Антон", -- Если стоял весь матч
},
squad2 = {
starters = {"", "", "", "", ""},
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "", assist = "", score = ":", min = 0},
{team = 2, scorer = "", assist = "", score = ":", min = 0}
-- goal_type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
clearances = { -- Выносы из пустых
-- {team = 2, player = "Диман", score = "1:0", min = 14},
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Бирюк",
team = 1, -- 1, 2 или 0 (если нейтральный вратарь)
role = "поле", -- "поле" или "вратарь"
},
-- comment = ""
},
-- (заготовка)
["2046-03"] = {
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ
date = "2024-10-06", -- ГГГГ-ММ-ДД
matchday = 1, -- Номер игрового дня в турнире (пригодится для связи с призами дня)
num_hist = 614, -- Исторический номер
stage = "Группа", -- Стадия
letter = "A", -- Литера группы, если групповой раунд
team1 = "ЭРИ", -- Можно использовать ваши 3-буквенные коды
team2 = "СВА",
score1 = 3,
score2 = 1,
aet = false, -- Было ли дополнительное время (true/false)
-- 2. УСЛОВИЯ ИГРЫ
stadium = "Тулака-Арена",
format1 = 4, -- Число игроков на поле в первой команде
format2 = 4, -- Число игроков на поле во второй команде
half_court = false, -- На одни ворота? (true/false)
halfs = 1, -- Количество таймов основного времени
half_time = 10, -- Количество минут в одном тайме основного времени
-- 3. МЕДИА
-- video = "p8UVvKKdVEw",
review_url = "I9_SzDUhH5M",
review_time = "0m58s",
-- 4. СОСТАВЫ
squad1 = {
starters = {"Дима Кес.", "Бирюк", "Саша Т.", "Саша_П."},
-- full_match_goalie = "Антон", -- Если стоял весь матч
},
squad2 = {
starters = {"Диман", "Коля", "Гриша", "Вадим_К."},
},
-- Замены, опоздания (можно не заполнять, если не было)
subs = {
-- {team = 1, player_out = "Макс", player_in = "Вася", score = "1:0", min = 15},
-- {team = 2, player_out = "none", player_in = "Ильич", score = "1:1"}, -- Опоздавший (вышел вместо никого)
},
-- 5. СОБЫТИЯ В ИГРЕ
goals = {
{team = 1, scorer = "", assist = "", score = ":", min = 0},
{team = 2, scorer = "", assist = "", score = ":", min = 0}
-- goal_type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
missed_pens = {
{team = 1, taker = "Вадим_К.", result = "вратарь", goalie = "Бирюк", score = "2:1", min = 9},
-- {team = 2, taker = "Ринат", result = "штанга"},
},
clearances = { -- Выносы из пустых
-- {team = 2, player = "Диман", score = "1:0", min = 14},
},
cards = {
-- {team = 1, player = "Алишер", color = "жёлтая", score = "1:0", min = 18},
-- {team = 2, player = "Серёга", color = "красная", score = "1:1", min = 25, return_score = "1:1", return_min = 27, reason = "Фол последней надежды"},
},
-- 6. СЕРИЯ ПЕНАЛЬТИ (если была)
-- shootout_score1 = 3,
-- shootout_score2 = 4,
-- shootout = {
-- -- num - порядок удара, result: "гол", "вратарь", "мимо", "штанга", "перекладина"
-- {num = 1, team = 1, taker = "Макс", goalie = "Диман", result = "гол", score_after = "1:0"},
-- {num = 2, team = 2, taker = "Некит", goalie = "Антон", result = "вратарь", score_after = "1:0"},
-- -- и так далее...
-- },
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Бирюк",
team = 1, -- 1, 2 или 0 (если нейтральный вратарь)
role = "поле", -- "поле" или "вратарь"
},
-- comment = ""
},
-- Дальше идет следующий матч ["2046-04"] = { ... }
}
-- Болванка для призов (в другую страницу надо запихнуть)
-- return {
-- ["day7"] = {
-- date = "1 мая 2024",
-- stadium = "Тулака-Арена",
--
-- -- MVP дня
-- mvp = {
-- {place = 1, player = "Некит", awarded = true},
-- {place = 2, player = "Диман", awarded = false},
-- {place = "worst", player = "Алишер"},
-- },
--
-- -- Лучший бомбардир
-- top_scorer = {
-- {place = 1, player = "Стас", goals = 5, awarded = true},
-- {place = 1, player = "Макс", goals = 5, awarded = true}, -- Дележ 1 места
-- {place = 3, player = "Ринат", goals = 3, awarded = false},
-- },
--
-- -- И так далее для ассистентов, вратарей, полезных и эффективных...
-- }
-- }