Модуль:ЭтоПарсер: различия между версиями
Johnbrown (обсуждение | вклад) Нет описания правки |
Oreolek (обсуждение | вклад) мНет описания правки |
||
| Строка 18: | Строка 18: | ||
function p._main(args, frame) |
function p._main(args, frame) |
||
-- Исключения (отдельные игры) сюда |
|||
local notParser = { |
local notParser = { |
||
"Deja vu (RInform)", |
"Deja vu (RInform)", |
||
| Строка 39: | Строка 40: | ||
end |
end |
||
local platform_parser = frame:callParserFunction( |
local platform_parser = frame:callParserFunction( |
||
"# |
"#ask", |
||
{ |
{ |
||
args[1], |
args[1], |
||
| Строка 46: | Строка 47: | ||
} |
} |
||
) |
) |
||
-- Платформы (всё что предполагается парсерным если сделано на этой платформе) сюда |
|||
local platforms = { |
local platforms = { |
||
"6days LUA", |
"6days LUA", |
||
Текущая версия от 03:24, 30 сентября 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(
"#ask",
{
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