全站通知:
模块:Test
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块: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