モジュール:サンドボックス/FlatLanguage/LAWSH

モジュールの解説[作成]
local p = {};

local function is_set (var)
	return not (var == nil or var == '');
end

function p.main (frame)
	local QID = frame:getParent().args[1] or frame.args[1];
	local progress = frame:getParent().args[2] or frame.args[2];
	
	local text = '[[d:' .. QID .. ']]';
	
	local title_from_wikidata = mw.wikibase.getSitelink(QID);
	local title_from_arg      = frame:getParent().args[3] or frame.args[3];
	
	local title = title_from_wikidata or title_from_arg;
	
	if title then
		text = text .. ' [[' .. title .. ']]';
		
		if not(is_set(progress)) then
			local pagesize = tonumber(frame:callParserFunction('PAGESIZE', {title, 'R'}));
			
			if pagesize > 39000 then
				progress = 'A';
			elseif pagesize > 13000 then
				progress = 'B';
			else 
				progress = 'C';
			end
		end
		
		text = text .. ' ' .. frame:expandTemplate{title = 'CI', args = {progress}};
		
		if title_from_wikidata and title_from_arg then
			text = text .. ' (!!)';
		end
	else
		text =  text .. ' ' .. frame:expandTemplate{title = 'CI', args = {'NA'}};
	end
	
	return {text=text, progress=progress};
end

function p.gettext (frame)
	return p.main(frame).text
end

function p.getprogress (frame)
	return p.main(frame).progress
end

return p