Модуль:Дадатковыя інтэрвікі/зьвесткі
Дакумэнтацыю да гэтага модуля можна стварыць у Модуль:Дадатковыя інтэрвікі/зьвесткі/Дакумэнтацыя
-- Гэты модуль апрацоўвае зьвесткі з mw.site.interwikiMap для выкарыстаньня з
-- [[Модуль:Дадатковыя інтэрвікі]]. Загружаючы зьвесткі з дапамогай mw.loadData,
-- мы пераконваемся, што гэта робіцца толькі адзін раз за разбор старонкі.
local prefixes, urls, hosts = {}, {}, {}
local function makeCountedData(t, storeKey, counterKey, itemKey, item)
t = t or {}
t[storeKey] = t[storeKey] or {}
t[storeKey][itemKey] = item
t[counterKey] = t[counterKey] and t[counterKey] + 1 or 1
return t
end
for prefix, data in pairs(mw.site.interwikiMap()) do
local prefixData = {}
for k, v in pairs(data) do
prefixData[k] = v
end
prefixes[prefix] = prefixData
local urlData = makeCountedData(
urls[urlText],
'prefixes',
'nPrefixes',
prefix,
prefixData
)
urlData.url = prefixData.url
urls[urlData.url] = urlData
end
for url, urlData in pairs(urls) do
local urlObj = mw.uri.new(url) -- We can't output URI objects as they have metatables
if not urlObj or not urlObj.host then
error(string.format(
"немагчыма знайсьці гаспадара ў URL '%s'; " ..
"калі ласка, праверце зьвесткі інтэрвікаў вашай вікі",
tostring(url)
))
end
local hostData = makeCountedData(
hosts[urlObj.host],
'urls',
'nUrls',
url,
urlData
)
hostData.host = urlObj.host
hosts[urlObj.host] = hostData
end
return {
prefixes = prefixes,
urls = urls,
hosts = hosts
}