Modul:МестоПоНаселениюРегионы
Körüniş
Bu modül için bir Modul:МестоПоНаселениюРегионы/belge belgelendirmesi oluşturabilirsiniz
require('strict')
local ArrayReg = {'Алтайский край', 'Амурская область', 'Архангельская область', 'Астраханская область', 'Белгородская область', 'Брянская область', 'Владимирская область', 'Волгоградская область', 'Вологодская область', 'Воронежская область', 'Москва', 'Санкт-Петербург', 'Еврейская автономная область', 'Забайкальский край', 'Ивановская область', 'Иркутская область', 'Кабардино-Балкария', 'Калининградская область', 'Калужская область', 'Камчатский край', 'Карачаево-Черкесия', 'Республика Карелия', 'Кемеровская область', 'Кировская область', 'Костромская область', 'Краснодарский край', 'Красноярский край', 'Курганская область', 'Курская область', 'Ленинградская область', 'Липецкая область', 'Магаданская область', 'Московская область', 'Мурманская область', 'Ненецкий автономный округ', 'Нижегородская область', 'Новгородская область', 'Новосибирская область', 'Омская область', 'Оренбургская область', 'Орловская область', 'Пензенская область', 'Пермский край', 'Приморский край', 'Псковская область', 'Адыгея', 'Республика Алтай', 'Башкортостан', 'Бурятия', 'Дагестан', 'Ингушетия', 'Калмыкия', 'Республика Коми', 'Республика Крым', 'Марий Эл', 'Мордовия', 'Якутия', 'Северная Осетия', 'Татарстан', 'Тыва', 'Хакасия', 'Ростовская область', 'Рязанская область', 'Самарская область', 'Саратовская область', 'Сахалинская область', 'Свердловская область', 'Севастополь', 'Смоленская область', 'Ставропольский край', 'Тамбовская область', 'Тверская область', 'Томская область', 'Тульская область', 'Тюменская область', 'Удмуртия', 'Ульяновская область', 'Хабаровский край', 'Ханты-Мансийский автономный округ — Югра', 'Челябинская область', 'Чечня', 'Чувашия', 'Чукотский автономный округ', 'Ямало-Ненецкий автономный округ', 'Ярославская область'}
local NOAOCheck = {'Архангельская область без Ненецкого автономного округа', 'Тюменская область без автономных округов'}
local ForceAOCheck = {'Архангельская область', 'Тюменская область'}
local ArrayDatas = {}
local ArrayIndexes = {}
local ArrayTemps = {}
local PopPlace = {}
PopPlace.__index = PopPlace
function PopPlace: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 PopPlace:NAOCheck(Regarg, NAOARG)
if table.contains(NOAOCheck, Regarg) then
return true
end
if NAOARG=='NOAO' then
if table.contains(ForceAOCheck, Regarg) then
return false
else
return true
end
end
return false
end
function PopPlace:render()
if self.args['ФО'] then
ArrayReg = require('Module:МестоПоНаселениюРегионы/'..self.args['ФО'])
end
local AOBase, NAOPop, TOBase, KHMAOPop, YNAOPop
AOBase = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {'Архангельская область', 'ч'} }))
NAOPop = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {'Ненецкий автономный округ', 'ч'} }))
TOBase = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {'Тюменская область', 'ч'} }))
KHMAOPop = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {'Ханты-Мансийский автономный округ — Югра', 'ч'} }))
YNAOPop = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {'Ямало-Ненецкий автономный округ', 'ч'} }))
if self:NAOCheck(self.args['1'], self.args['2']) then
local GETArOblForReplace = self:gkeyfromVal(ArrayReg, 'Архангельская область')
local GETTOblForReplace = self:gkeyfromVal(ArrayReg, 'Тюменская область')
ArrayReg[GETArOblForReplace] = tostring(ArrayReg[GETArOblForReplace]..' без Ненецкого автономного округа')
ArrayReg[GETTOblForReplace] = tostring(ArrayReg[GETTOblForReplace]..' без автономных округов')
end
for p,v in ipairs(ArrayReg) do
if v=='Архангельская область без Ненецкого автономного округа' then
ArrayDatas[#ArrayDatas+1] = AOBase-NAOPop
ArrayTemps[v..""]=AOBase-NAOPop
elseif v=='Тюменская область без автономных округов' then
ArrayDatas[#ArrayDatas+1]=TOBase-KHMAOPop-YNAOPop
ArrayTemps[v..""]=TOBase-KHMAOPop-YNAOPop
else
ArrayDatas[#ArrayDatas+1] = tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {v, 'ч'} }))
ArrayTemps[v..""]=tonumber(tostring(self.frame:expandTemplate{ title = 'Eali', args = {v, 'ч'} }))
end
end
table.sort(ArrayDatas, function(a,b) return a>b end)
for _,o in ipairs(ArrayReg) do
ArrayIndexes[o..""] = self:gkeyfromVal(ArrayDatas, ArrayTemps[o..""])
end
--end
ArrayDatas, ArrayTemps, NOAOCheck, ForceAOCheck, AOBase, NAOPop, TOBase, KHMAOPop, YNAOPop = nil
if table.contains(ArrayReg, self.args['1']) then
ArrayReg = nil
return ArrayIndexes[self.args['1']] or ''
end
end
function PopPlace.new(frame, args)
if not args then
args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:МестоПоНаселениюРегионы'}})
--return
end
local obj = {
frame = frame,
args = args
}
return setmetatable(obj, PopPlace)
end
local p = {}
function p.main(frame)
return PopPlace.new(frame):render()
end
return p