Модуль:Entity Sprite/all: различия между версиями
Pok (обсуждение | вклад) Нет описания правки Метки: ручная отмена отменено |
Pok (обсуждение | вклад) Нет описания правки Метка: отменено |
||
| Строка 199: | Строка 199: | ||
end | end | ||
local function | local function collectFileTitles(data) | ||
local | local titles = {} | ||
return title and title.exists and not title.isRedirect | |||
for id, _ in pairs(data) do | |||
table.insert(titles, "Файл:" .. prefix .. id .. ".png") | |||
end | |||
return titles | |||
end | |||
local function buildFileExistenceMap(data) | |||
local titlesList = collectFileTitles(data) | |||
local titleObjs = mw.title.newBatch(titlesList) | |||
:lookupExistence() | |||
:getTitles() | |||
local map = {} | |||
for _, title in ipairs(titleObjs) do | |||
if title and title.prefixedText then | |||
map[title.prefixedText] = title.exists and not title.isRedirect | |||
end | |||
end | |||
return map | |||
end | end | ||
local function buildFileLink(id) | local function buildFileLink(id, existenceMap) | ||
local | local name = "Файл:" .. prefix .. id .. ".png" | ||
local link = "[[:" .. name .. "]]" | |||
if | if existenceMap[name] then | ||
return "<code>" .. link .. "</code>" | return "<code>" .. link .. "</code>" | ||
end | end | ||