跳转到内容

模組:DYKCount/sandbox

维基百科,自由的百科全书

这是本页的一个历史版本,由Q28留言 | 贡献2020年2月6日 (四) 05:10 (建立模块:DYKCount的沙盒版本)编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)
local p={}
local lib_arg={};
function p.getDYKCount(frame)
    local args, working_frame
    if frame == mw.getCurrentFrame() then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        if lib_arg.getArgs == nil then lib_arg = require('Module:Arguments') end
        args = lib_arg.getArgs(frame, {parentFirst=true})
        working_frame = frame
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
        working_frame = mw.getCurrentFrame()
        if type(args) ~= type({}) then args = {frame} end
    end
    local input_n = args[1] or args['1']
	local src = working_frame:preprocess{ text = "{{msgnw:" .. input_n .. "}}" }
	local st,ed = mw.ustring.find(src, "{{%s-produceEncouragement%s-|%s-count%s-=%s-%d+%s-}}" );
	if st then
		local dyk_template = mw.ustring.sub(src, st,ed)
		st,ed = mw.ustring.find(dyk_template, "count%s-=%s-%d+" )
		dyk_template = mw.text.decode(mw.ustring.sub(dyk_template, st,ed))
		st,ed = mw.ustring.find(dyk_template, "%d+" )
		local dyk_count = mw.ustring.sub(dyk_template, st,ed)
		return dyk_count;
	else
		return 0;
	end
end
return p;