Модуль:Data/2042: различия между версиями
The Twist (обсуждение | вклад) Нет описания правки |
The Twist (обсуждение | вклад) Нет описания правки |
||
| Строка 26: | Строка 26: | ||
-- 3. МЕДИА | -- 3. МЕДИА | ||
-- video = "", | |||
review_url = "I9_SzDUhH5M", | review_url = "I9_SzDUhH5M", | ||
review_time = "0m58s", | review_time = "0m58s", | ||
| Строка 69: | Строка 69: | ||
-- ИНДИЯ - СОМАЛИ (заготовка) | -- ИНДИЯ - СОМАЛИ (заготовка) | ||
["2046-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, type = "автогол"}, | |||
{team = 2, scorer = "Стас", assist = "Дима_Кес.", score = "3:3", min = 10}, | |||
-- type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол" | |||
}, | |||
-- 7. НАГРАДЫ И КОММЕНТАРИИ | |||
mvp = { | |||
player = "Саша_Т.", | |||
team = 1, | |||
role = "поле", | |||
}, | |||
-- comment = "" | |||
}, | |||
-- МОНГОЛИЯ - АМЕРИК. САМОА (заготовка) | |||
["2046-03"] = { | |||
-- 1. БАЗОВАЯ ИНФОРМАЦИЯ | -- 1. БАЗОВАЯ ИНФОРМАЦИЯ | ||
date = "2024-10-06", -- ГГГГ-ММ-ДД | date = "2024-10-06", -- ГГГГ-ММ-ДД | ||
| Строка 88: | Строка 145: | ||
halfs = 1, -- Количество таймов основного времени | halfs = 1, -- Количество таймов основного времени | ||
half_time = 10, -- Количество минут в одном тайме основного времени | half_time = 10, -- Количество минут в одном тайме основного времени | ||
-- 3. МЕДИА | -- 3. МЕДИА | ||
-- video = "p8UVvKKdVEw", | |||
review_url = "I9_SzDUhH5M | review_url = "I9_SzDUhH5M", | ||
review_time = "0m58s", | review_time = "0m58s", | ||
| Строка 156: | Строка 210: | ||
}, | }, | ||
-- Дальше идет следующий матч ["2046- | -- Дальше идет следующий матч ["2046-04"] = { ... } | ||
} | } | ||
Версия от 23:32, 9 апреля 2026
Список баз данных
- База данных финального турнира ЧТМ (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 {
-- ЭРИТРЕЯ - СВАЗИЛЕНД
["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 = ""
},
-- ИНДИЯ - СОМАЛИ (заготовка)
["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, type = "автогол"},
{team = 2, scorer = "Стас", assist = "Дима_Кес.", score = "3:3", min = 10},
-- type может быть: "пенальти", "штрафной", "голова", "пятка", "автогол"
},
-- 7. НАГРАДЫ И КОММЕНТАРИИ
mvp = {
player = "Саша_Т.",
team = 1,
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 = "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},
-- 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},
-- },
--
-- -- И так далее для ассистентов, вратарей, полезных и эффективных...
-- }
-- }