模組:沙盒/PexEric/2
外观
local p = {}
local ArticleHistoryParser = require("Module:ArticleHistoryParser")
function p.main(frame)
local args = frame.args
local categoryName = args[1]
local action = args[2]
local iconType = args[3]
local dplQuery = frame:preprocess(string.format(
'{{#dpl:category=%s|namespace=Talk|format=,¦%%TITLE%%¦,|noresultsheader=|suppresserrors=true}}',
categoryName
))
local pageData = {}
for title in mw.ustring.gmatch(dplQuery, "¦([^¦]+)¦") do
local dateStr = ArticleHistoryParser.findDate({args = {title, action}})
if dateStr ~= "" then
local year, month, day = dateStr:match("(%d+)年(%d+)月(%d+)日")
if year then
table.insert(pageData, {
title = title,
dateStr = dateStr,
dateNum = tonumber(year) * 10000 + tonumber(month) * 100 + tonumber(day)
})
end
end
end
table.sort(pageData, function(a, b) return a.dateNum > b.dateNum end)
local output = {}
for i, data in ipairs(pageData) do
table.insert(output, string.format('# {{icon|%s}} [[%s]]<small>(%s)</small>',
iconType, data.title:gsub("^Talk:", ""), data.dateStr))
end
return table.concat(output, "\n")
end
return p