İçeriğe atla

Modul:МестоПоНаселениюРегионы

QIRIMTATAR VİKİPEDİYASINIÑ MALÜMATI

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