bugfix250107.1
全站通知:

模块:Test

来自恋与深空WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

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

local p={}
function p.getAllItem(frame)
	
	frame = frame or mw.getCurrentFrame();
	
    -- 获取Item的总数
	local itemCount = frame:callParserFunction{
		name="#ask:[[分类:Item]]",
		args={
			"?ItemJson",
			format="count"
		}
	}
	mw.log("count:"..itemCount);

    -- 获取ask的次数
    local askTimes = math.ceil(itemCount / 1000);
    mw.log("askTimes:"..askTimes);

    -- 获取data:多次ask结果组成的数组
    local data = {};
    for i = 1, askTimes do
        local offset = (i - 1) * 1000;
        local result = frame:callParserFunction{
            name="#ask:[[分类:Item]]",
            args={
                "?ItemJson",
                mainlabel="-",
                headers="hide",
                searchlabel="",
                sep=",",
                limit=1000,
                offset=tostring(offset)
            }
        }
        if result and result ~= "" then
            table.insert(data, result);
        end
    end

    -- 合并所有数据,set Json
    local finalData = "["..table.concat(data, ",").."]";
    mw.log(finalData);
    frame:callParserFunction('#set:'.. "Json" ..'=' .. finalData);

    -- 获取多次ask结果的table(html元素),返回table
    local dataTable = "";
    for i = 1, askTimes do
        local offset = (i - 1) * 1000;
        local tableHtml = frame:callParserFunction{
            name="#ask:[[分类:Item]]",
            args={
                "?ItemJson",
                headers="show",
                searchlabel="",
                sep=",",
                limit=1000,
                offset=tostring(offset),
                format="table"
            }
        }
        if tableHtml and tableHtml ~= "" then
            dataTable = dataTable .. "<h3>第" .. i .. "页数据</h3>" .. tableHtml;
        end
    end

    return dataTable;
end

return p