Moduł:Grafika

Z Nonsensopedii, polskiej encyklopedii humoru

Moduł dla {{Grafika}}.


local tools = require('Moduł:Narzędzia')
local matma = require('Moduł:Matma')
local nielink = require('Moduł:Nielink')
local p = {}

function p.grafika(frame)
	local args = tools.getArgs(frame)
	local file = matma._chooseRandom( args['1'] or '' )
	if file == nil or file == '' then return '' end
	
	local fileLowerPrefix = mw.ustring.sub(mw.ustring.lower(file), 1, 5)
	if fileLowerPrefix ~= 'plik:' and fileLowerPrefix ~= 'file:' then
		file = 'Plik:' .. file
	end
	
	local smwResult = mw.smw.getQueryResult{
		'[[' .. file .. ']]',
		'?Ma podpis pliku',
		'?Ma autora'
	}
	
	local podpis = args['2'] or args['podpis'] or nil
	if not podpis then
		if #smwResult.results == 1 then
			podpis = smwResult.results[1].printouts['Ma podpis pliku'][1] or ''
		else
			podpis = ''
		end
	end
	local podpisNielink = nielink._nielink(podpis)
	
	local autor = nil
	if #smwResult.results == 1 then
		autor = smwResult.results[1].printouts['Ma autora'][1]
	end
	
	local rozmiar = args['rozmiar'] or '350x350px'
	local s = '<div class="center" style="font-size: 0.9em">[[' .. file ..
		'|center|' .. rozmiar .. '|' .. podpisNielink .. ']]'
		
	if autor or podpis ~= '' then
		s = s .. '<div style="margin-top: 10px">'
	end
		
	s = s .. podpis
	
	if autor then
		if podpis ~= '' then s = s .. '<br>' end
		s = s .. '<i>' .. mw.language.new('pl'):gender(autor, 'Autor: ', 'Autorka: ')
			.. autor .. '</i>'
	end
	
	if autor or podpis ~= '' then
		s = s .. '</div>'
	end
	
	local konkurs = args['konkurs'] or ''
	local k_width = args['rozmiar gwiazdek'] or '250px'
	s = s .. '<div style="margin: 0.5em auto 0 auto; max-width: ' .. k_width .. ';">{{#ratepage:' ..
		file .. '|' .. konkurs .. '|' .. k_width .. '}}</div></div>'
	
	return frame:preprocess(s)
end

return p