پودمان:جمعیت/آزمایشی

local population = {}
local args = {}
local data_module_prefix = "4500"
local converter = require("Module:Numeral converter")

local function ifexist(page)
    if not page then return false end
    if mw.title.new(page).exists then return true end
    return false
end

local function isempty(s)
  return s == nil or s == ''
end

local function loadpopulationdb(frame, s, year)
	local encodestr = converter.convert("en", s)
	year = converter.convert("en", year)
	--finding the corresponding db subpage
	local dbsubpage = math.floor(  tonumber(encodestr) / 10000 )
	local function setarg(k, v)
		if(v and v ~= '') then args[k] = v end
	end
	if( codestr ~= '' ) then
		local dbpage = data_module_prefix..tostring(dbsubpage)
		if (ifexist(dbpage)) then
			local data = mw.loadData(dbpage)
			local dargs = data[encodestr]
			
			if isempty(dargs) then --check if the code exists in db
				setarg('pop', 'خطا:کد یافت نشد'..'[[رده:خطای پودمان جمعیت: کد روستا ناموجود]]')
			else
				if (year =='95') then -- for year 1395 (p95)
					local p95_tmp = dargs['4500']
					if (p95_tmp == '-1') then
						setarg('pop', 'کمتر از ۳ خانوار')
					else
						local p95 = converter.convert("fa", dargs['4500'])
						setarg('pop', p95..' نفر (سرشماری ۹۵)4500')
					end
				end
			end
		else 
			setarg('pop', 'خطا:زیرصفحه داده‌های جمعیت یافت نشد'..'[[رده:خطای پودمان جمعیت: زیرصفحه داده‌های جمعیت ناموجود]]')	
		end
	end
end

local function printpop(frame)
	return (args['pop'])	
end

function population.main(frame)
	local args = require('Module:Arguments').getArgs(frame)--, {
		--	wrappers = 'Template:Iran population'
	--	})
	return population._main(args)
end

function population._main(args)

	if(args['کد'] and args['کد'] ~= '') then
		if( args['سال'] and args['سال'] ~= '') then
			loadpopulationdb(frame,args['کد'], args['سال'])
		else
			loadpopulationdb(frame,args['کد'], '95')
		end
	end
	
	return printpop(frame)
end

return population