local p = {}
local lib_va = require('Module:Va')
local yesno = require('Module:Yesno')

local function getTitle(...)
	local success, titleObj = pcall(mw.title.new, ...)
	if success then
		return titleObj
	else
		return nil
	end
end

--p.main 修改自自module:Template:Weighted_page_size
function p.Weighted_page_size( titleText, ignore_redirect )
    if not titleText then
        return 0
    end
    local title = mw.title.new( titleText )
    local success = xpcall(function()
         if not ignore_redirect then --查找重新導向是高開銷操作,提供取消的方法
	        title = getTitle( lib_va.redirect_target(titleText) )
	     end
    end,function()end)
	if not success then mw.addWarning("[[Module:Vae2 icon]] 超出了模板限制 於標題 \"" .. titleText .. "\" 顯示的結果可能會不正確。") end
    if not title then
        return 0
    end
    local content = title:getContent()
    if not content then
        return 0
    end
    local chars = mw.ustring.len( content )
    return math.floor( chars * 3.786 + 0.5 )
end

function p.main( frame )
    local titleText = frame.args[1]
    local size
    local icontext
    size = p.Weighted_page_size(titleText, yesno(frame.args.ignore_redirect)) --查找重新導向是高開銷操作,提供取消的方法

    if size<2000 then
        icontext='[[File:Qsicon Ueberarbeiten.svg|16px|基础条目扩展(少於2KB)]]'
    elseif size<8000 then   
        icontext='[[File:Qsicon inArbeit.svg|16px|基础条目扩展(2至8KB)]]'
    elseif size<16000 then  
        icontext='[[File:YesCheck BlueLinear.svg|16px|基础条目扩展(8至16KB)]]'
    else    
        icontext='[[File:YesCheck GreenLinear.svg|16px|基础条目扩展(16KB或以上)]]'
    end
    return icontext
end

return p