Модуль:Entity Sprite/all: различия между версиями

Нет описания правки
Метки: ручная отмена отменено
Нет описания правки
Метка: отменено
Строка 199: Строка 199:
end
end


local function isUploadedFilePage(id)
local function collectFileTitles(data)
local title = mw.title.new("Файл:" .. prefix .. id .. ".png")
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 link = "[[:Файл:" .. prefix .. id .. ".png]]"
local name = "Файл:" .. prefix .. id .. ".png"
local link = "[[:" .. name .. "]]"


if isUploadedFilePage(id) then
if existenceMap[name] then
return "<code>" .. link .. "</code>"
return "<code>" .. link .. "</code>"
end
end