Участник:Гиперболоид инженера Мошонкина/скрипт: различия между версиями
Daruk (обсуждение | вклад) Нет описания правки |
LordBot (обсуждение | вклад) м Замена текста — «lang="py">» на «lang="python" line>» |
||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 1: | Строка 1: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="python" line> | ||
import re | import re | ||
import string | import string | ||
| Строка 45: | Строка 45: | ||
lua_output.append(f'\n ["{lua_group_name}"] = {{') | lua_output.append(f'\n ["{lua_group_name}"] = {{') | ||
lua_output.append(' type = "group",') | lua_output.append(' type = "group",') | ||
lua_output.append(f' number_of_rounds = {legs_indicator},') # <-- ДОБАВЛЕНО ДЛЯ ГРУПП | |||
lua_output.append(' standings = {') | lua_output.append(' standings = {') | ||
for t in teams: | for t in teams: | ||
| Строка 69: | Строка 70: | ||
lua_output.append(' },') | lua_output.append(' },') | ||
# --- 2. Парсинг матчей на вылет | # --- 2. Парсинг матчей на вылет --- | ||
knockout_pattern = re.compile(r'\{\{И\d+\s*\|?(.*?)\}\}', re.IGNORECASE | re.DOTALL) | knockout_pattern = re.compile(r'\{\{И\d+\s*\|?(.*?)\}\}', re.IGNORECASE | re.DOTALL) | ||
ko_counter = 1 | ko_counter = 1 | ||
| Строка 76: | Строка 77: | ||
body = match.group(1) | body = match.group(1) | ||
parts = [p.strip() for p in body.split('|')] | parts = [p.strip() for p in body.split('|')] | ||
# --- ДОБАВЛЕНО: Определяем количество кругов для плей-офф --- | |||
ko_rounds = 1 | |||
for i in range(0, len(parts), 5): | |||
chunk = parts[i:i+5] | |||
if len(chunk) >= 3: | |||
base_scores = chunk[2].split('(')[0] # отсекаем пенальти/доп.время для проверки | |||
if ',' in base_scores: | |||
ko_rounds = 2 | |||
break | |||
# ------------------------------------------------------------- | |||
lua_output.append(f'\n ["Knockout_Stage_{ko_counter}"] = {{') | lua_output.append(f'\n ["Knockout_Stage_{ko_counter}"] = {{') | ||
lua_output.append(' type = "knockout",') | lua_output.append(' type = "knockout",') | ||
lua_output.append(f' number_of_rounds = {ko_rounds},') # <-- ДОБАВЛЕНО ДЛЯ ПЛЕЙ-ОФФ | |||
lua_output.append(' matches = {') | lua_output.append(' matches = {') | ||
ko_counter += 1 | ko_counter += 1 | ||
| Строка 147: | Строка 160: | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
# Сюда вписываем нужный префикс. Если оставить "", будет работать как раньше. | # Сюда вписываем нужный префикс. Если оставить "", будет работать как раньше. | ||
PREFIX = " | PREFIX = "1R" | ||
data = """ | data = """ | ||
""" | """ | ||