Moduł:NonNews data

Z Nonsensopedii, polskiej encyklopedii humoru

local p = {}

local monthMap = {
	stycznia = 'styczeń',
	lutego = 'luty',
	marca = 'marzec',
	kwietnia = 'kwiecień',
	maja = 'maj',
	czerwca = 'czerwiec',
	lipca = 'lipiec',
	sierpnia = 'sierpień',
	['września'] = 'wrzesień',
	['października'] = 'październik',
	listopada = 'listopad',
	grudnia = 'grudzień'
}

-- do użycia w wikitekście przez #invoke
function p.nnData(frame)
	local tools = require('Moduł:Narzędzia')
	local text = frame:getParent().args[1] or ''
	
	if text == '' then 
		return mw.smw.info('Nie podano daty NonNewsa – podaj ją w szablonie „NonNews data”, by poprawnie skategoryzować wiadomość.', 'error')
	end
	
	text = mw.ustring.lower( mw.text.trim(text) )
	local split = mw.text.split(text, '%s+')
	
	if #split ~= 3 then
		return mw.smw.info('Nierozpoznany format daty – poprawny format to „17 września 2005”.', 'error')
	end
	
	local prop = { ['Ma datę'] = text, ["Ma dzień"] = split[1], ["Ma miesiąc"] = monthMap[split[2]], ["Ma rok"] = split[3] }
	local smwResult = mw.smw.set(prop)
	
	if smwResult ~= true then
		return mw.smw.info(smwResult['error'], 'error')
	end
	
	local month = monthMap[split[2]] or split[2]
	local year = split[3]
	return '[[Kategoria:NonNews – ' .. month .. ' ' .. year .. ']]'
end

return p