模組:AFC submission/reasons/data
外观
local data = mw.loadJsonData('Module:AFC_submission/reasons/data.json')
local TableTools = require('Module:TableTools')
local frame = mw.getCurrentFrame()
local expandHelper = {
AS_CSD = function (parent, args)
local csd_real_list = {}
for _, csdId in ipairs(args) do
table.insert(csd_real_list, frame:expandTemplate { title = 'CSD reason', args = { csdId, '快速刪除的標準', reason = 1 } })
end
return '提交的內容符合' .. mw.text.listToText(csd_real_list, '、', '和') .. '。'
end
}
local function mayExpand(parent)
if type(parent.message) == type({}) then
local expandBy = parent.message.expandBy
if not expandHelper[expandBy] then
error('Unrecognized expandBy "' .. expandBy .. '".')
end
parent.message = expandHelper[expandBy](parent, parent.message.args)
end
end
local reasonsMap = {}
for _i, block in ipairs(data.reasons) do
for _j, item in ipairs(block.items) do
local outputItem = {
key = item.key,
tags = {},
description = item.description
}
if item.declined then
outputItem.declined = TableTools.deepCopy(item.declined, true)
mayExpand(outputItem.declined)
else
outputItem.declined = false
end
if item.reject then
outputItem.reject = TableTools.deepCopy(item.reject, true)
mayExpand(outputItem.reject)
else
outputItem.reject = false
end
for _, tag in ipairs(item.tags) do
table.insert(outputItem.tags, tag)
reasonsMap[tag] = outputItem
end
end
end
return {
reasonsMap = reasonsMap,
custom = TableTools.deepCopy(data.custom, true)
}