小 (// Edit via Wikiplus) 标签:已被回退 |
小 (// Edit via Wikiplus) 标签:已被回退 |
||
第40行: | 第40行: | ||
header1 = '基本信息', |
header1 = '基本信息', |
||
label2 = '话数', |
label2 = '话数', |
||
data2 = '[[ComicInfo:number::'.. |
data2 = '[[ComicInfo:number::'..episode..']]', |
||
label3 = '微博标题', |
label3 = '微博标题', |
||
data3 = '[[ComicInfo:titleWeibo::'..data['title_weibo']..']]', |
data3 = '[[ComicInfo:titleWeibo::'..data['title_weibo']..']]', |
2023年8月23日 (三) 20:30的版本
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.main(frame)
local args = getArgs(frame)
local function getComicData(episode)
-- 去ComicData.json获取漫画数据
local comicList = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate { title = 'User:Baigei/ComicData.json' })
return comicList[episode]
end
local function margeData(data_from_json,data_from_args)
-- 用模板数据替换自动获取的数据
local data = {}
for k, v in pairs(data_from_json) do
data[k] = v
end
for k, v in pairs(data_from_args) do
if v ~= '' then
-- 当模板数据为空值时 使用自动获取的数据
data[k] = v
end
end
return data
end
local function fillInfobox(data,episode)
if data['next'] == nil then
data['next'] = '[[第' .. episode+1 .. '话]]'
end
if data['last'] == nil then
data['last'] = '[[第' .. episode-1 .. '话]]'
end
-- 用漫画数据生成信息框
local args = {
name='漫画信息框',
bodystyle='border-radius: 10px',
title='本话信息',
header1 = '基本信息',
label2 = '话数',
data2 = '[[ComicInfo:number::'..episode..']]',
label3 = '微博标题',
data3 = '[[ComicInfo:titleWeibo::'..data['title_weibo']..']]',
label4 = 'B漫标题',
data4 = '[[ComicInfo:titleBili::'..data['title_bili']..']]',
label5 = '所属篇目',
data5 = '[[ComicInfo:episode::'..data['episode']..']]',
label6 = '微博发布日期',
data6 = '[[ComicInfo:dateWeibo::'..data['date_weibo']..']]',
label7 = 'B漫发布日期',
data7 = '[[ComicInfo:dateBili::'..data['date_bili']..']]',
header8 = '阅读向导',
label9 = '上一话',
data9 = data['last'],
label10 = '下一话',
data10 = data['next']
}
return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
end
-- 默认输出第一话的信息框
local episode = 1
-- 获取话数
if args[1] ~= nil then
episode = tonumber(args[1])
end
if args['number'] ~= nil then
episode = tonumber(args['number'])
end
local episodeData_autoFill = getComicData(episode)
local episodeData = margeData(episodeData_autoFill,args)
return fillInfobox(episodeData,episode)
end
return p