bugfix250107.1

本WIKI于23/4/26申请开通,编辑权限开放,欢迎收藏,欢迎更多殿下加入我们来一起搭建!Wiki反馈催更群:945258792
编辑帮助:指南 | 捉虫许愿:反馈

全站通知:

模块:FurnitureStatistics

来自代号鸢WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:FurnitureStatistics/doc创建

local p = {}
function p.keySum(frame)
	local obj = p["data"](frame)
    local keyCount = 0
    for k, v in pairs(obj) do
        keyCount = keyCount + 1
    end
	return keyCount
end

function p.valSum(frame)
	local obj = p["data"](frame)
    local valueSum = 0
    for k, v in pairs(obj) do
        valueSum = valueSum + v
    end
	return valueSum
end

function p.list(frame)
	local obj = p["data"](frame)
    local formattedParts = {}
    
    for k, v in pairs(obj) do
        table.insert(formattedParts, k .. " * " .. v)
    end
    local newString = table.concat(formattedParts, ", ")
	return  newString
end

function p.data(frame)
    local input = frame.args[1] or '{}'
    local data = mw.text.jsonDecode(input)
    local obj = {}
    
    for k, v  in pairs(data) do
        obj[k] = tonumber(v)
    end
	return obj
end

function p.main(frame)
    local input = frame.args[1] or '{}'
    local data = mw.text.jsonDecode(input)  -- 处理HTML转义字符
    
    local obj = {}
    
    for k, v  in pairs(data) do
        obj[k] = tonumber(v)
    end
    
    -- for key_part  in string.gmatch(data, '"[^"]+"%s*:%s*%d+') do
    	
	   -- local k, v = string.match(key_part, '"([^"]+)"%s*:%s*(%d+)')
	   -- if k and v then
	   --     obj[k] = tonumber(v)
	   -- end
    -- end

    -- 计算结果
    local keyCount = 0
    local valueSum = 0
    local formattedParts = {}
    
    for k, v in pairs(obj) do
        keyCount = keyCount + 1
        valueSum = valueSum + v
        table.insert(formattedParts, k .. "*" .. v)
    end

    -- 生成输出
    local result = {
        "键数量:" .. keyCount,
        "值总和:" .. valueSum,
        "格式化:" .. table.concat(formattedParts, ", ")
    }
	
	-- mw.log(result)
	mw.logObject(result)
    return table.concat(result, "\n")
end

return p