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