Модуль:ПлощадьРегионы/Украина/Место
Перейти к навигации
Перейти к поиску
require('strict')
local ArrayRegUA = {'Автономная Республика Крым', 'Винницкая область', 'Волынская область', 'Днепропетровская область', 'Донецкая область', 'Житомирская область', 'Закарпатская область', 'Запорожская область', 'Ивано-Франковская область', 'Киев', 'Киевская область', 'Кировоградская область', 'Луганская область', 'Львовская область', 'Николаевская область', 'Одесская область', 'Полтавская область', 'Ровненская область', 'Севастополь', 'Сумская область', 'Тернопольская область', 'Харьковская область', 'Херсонская область', 'Хмельницкая область', 'Черкасская область', 'Черниговская область', 'Черновицкая область'}
local AliasesForIDXCloningU = {
['город Киев']='Киев',
['АР Крым']='Автономная Республика Крым',
['АРК']='Автономная Республика Крым',
['Крым']='Автономная Республика Крым',
['город Севастополь'] = 'Севастополь',
['Севастопольский горсовет'] = 'Севастополь',
}
local ListAliasesU = {'город Киев', 'АР Крым', 'АРК', 'Крым', 'город Севастополь', 'Севастопольский горсовет'}
local ArrayDatasU = {}
local ArrayIndexesU = {}
local ArrayTempsU = {}
local AreaPlaceU = {}
AreaPlaceU.__index = AreaPlaceU
function AreaPlaceU:gkeyfromVal( t, value )
for k,v in pairs(t) do
if v==value then return k end
end
return ''
end
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
function AreaPlaceU:render()
for p,v in ipairs(ArrayRegUA) do
ArrayDatasU[#ArrayDatasU+1] = tonumber(tostring(self.frame:expandTemplate{ title = 'ПлощадьРегионы/Украина', args = {v} }))
ArrayTempsU[v..""]=tonumber(tostring(self.frame:expandTemplate{ title = 'ПлощадьРегионы/Украина', args = {v} }))
end
table.sort(ArrayDatasU, function(a,b) return a>b end)
for _,o in ipairs(ArrayRegUA) do
ArrayIndexesU[o..""] = self:gkeyfromVal(ArrayDatasU, ArrayTempsU[o..""])
end
for _,a in ipairs(ListAliasesU) do
if ArrayIndexesU[tostring(AliasesForIDXCloningU[a..""])] ~= ('' or nil) then
ArrayIndexesU[a..""] = ArrayIndexesU[tostring(AliasesForIDXCloningU[a..""])]
end
end
--end
ArrayDatasU, ArrayTempsU, ArrayRegUA, AliasesForIDXCloningU, ListAliasesU = nil
return ArrayIndexesU[self.args['1']] or ''
end
function AreaPlaceU.new(frame, args)
if not args then
args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:ПлощадьРегионы/Украина/Место', 'Template:ПлощадьРегионы/Украина'}})
--return
end
local obj = {
frame = frame,
args = args
}
return setmetatable(obj, AreaPlaceU)
end
local p = {}
function p.main(frame)
return AreaPlaceU.new(frame):render()
end
return p