Модуль:ЭтоПарсер: различия между версиями
Oreolek (обсуждение | вклад) мНет описания правки |
Johnbrown (обсуждение | вклад) Нет описания правки |
||
| Строка 52: | Строка 52: | ||
"Inform", |
"Inform", |
||
"INTER QUEST", |
"INTER QUEST", |
||
"Jaiffa", |
|||
"Protoparser.js", |
"Protoparser.js", |
||
"Quazatron Adventure", |
"Quazatron Adventure", |
||
Версия от 19:20, 29 сентября 2025
Модуль, который в первом нумерованном параметре принимает название страницы игры и возвращает «да», если игра является парсерной, или «нет», если парсерной не является.
В начале выполняется проверка на игры-исключения, которые написаны на парсерных платформах, но парсерными не являются, а затем, если исключение не обнаружено, проверка на парсерность используемой платформы.
Название страниц с играми-исключениями надо добавлять по аналогии в первую таблицу notParser, а названия новых парсерных платформ во вторую таблицу platforms. Причём, названия парсерных платформ в шаблоне должны указываться по названию их фактической страницы в вики (указание перенаправляющей страницы с названием-псевдонимом не сработает).
Для того, чтобы обозначить в вики какую-то игру на непарсерной платформе как парсерную, следует использовать явное указание темы «Парсер» в её карточке.
local getArgs = require("Module:Arguments").getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args, frame)
end
local function has_value(tab, val)
for index, value in ipairs(tab) do
if value == val then
return true
end
end
return false
end
function p._main(args, frame)
local notParser = {
"Deja vu (RInform)",
"TADSTRIS",
"Аргинк (RTADS)",
"Граф Нулин",
"Лабиринт (Ласточкин, Антон)",
"На Страже",
"Наводчик",
"Ничто не забыто",
"Остров (ТОМ 2)",
"Остров (ТОМ)",
"Последняя мечта",
"Похождения отважного хомяка Семена-1: Побег (RTADS)",
"Спроси Алису",
"Супрематизм в IF",
"Шаблон РПГ",
}
if has_value(notParser, args[1]) then
return "нет"
end
local platform_parser = frame:callParserFunction(
"#show",
{
args[1],
'?Платформа',
link = 'none'
}
)
local platforms = {
"6days LUA",
"ADRIFT",
"Az (web/parser)",
"Inform",
"INTER QUEST",
"Jaiffa",
"Protoparser.js",
"Quazatron Adventure",
"RInform",
"RTADS",
"TADS",
"TDZ",
"ZIL",
"Декодер 2002",
"Метапарсер",
"ТКР 2",
"ТОМ 0.9 бета",
"ТОМ 2",
"ЯРИЛ",
}
if has_value(platform_parser, platforms) then
return "да"
end
return "нет"
end
return p