Documentation for this module may be created at Module:Image/doc
local p = {}
local m = require("Module:Main")
local getArgs = require('Dev:Arguments').getArgs
-----------------------------------------------------------------------------------------------
function p.main(frame)
local args = getArgs(frame)
local pagename = mw.title.getCurrentTitle().text
local volume_number = p.lua_get_volume_number(pagename)
local volume_link = p.lua_get_volume_link(volume_number)
local image_type = p.lua_get_image_type(pagename)
local artist = p.lua_get_artist_from_volume(volume_number)
local i
local s = ''
local subjects = {}
local output = {}
for i = 1, 20 do
s = args[i]
if not m.empty(s)
then table.insert(subjects, s)
end
end
table.insert(output, '<infobox>')
table.insert(output, '<title source="title">')
table.insert(output, '<default>'..pagename..'</default>')
table.insert(output, '</title>')
table.insert(output, '<data source="volume">')
table.insert(output, '<label>Volume</label>')
table.insert(output, '<default>'..volume_link..'</default>')
table.insert(output, '</data>')
table.insert(output, '<data source="artist">')
table.insert(output, '<label>Artist</label>')
table.insert(output, '<default>'..artist..'</default>')
table.insert(output, '</data>')
table.insert(output, '<data source="type">')
table.insert(output, '<label>Type</label>')
table.insert(output, '<default>'..image_type..'</default>')
table.insert(output, '</data>')
table.insert(output, '<data source="subjects">')
table.insert(output, '<label>Subjects</label>')
table.insert(output, '<default>'..p.lua_get_subjects(subjects)..'</default>')
table.insert(output, '</data>')
table.insert(output, '</infobox>')
return frame:preprocess( table.concat(output) )
end
-----------------------------------------------------------------------------------------------
-- get volume number from the pagename
function p.lua_get_volume_number(pagename)
local i
local j
local volume = ''
i,j,volume = string.find(pagename, 'Volume (%d+)')
return volume
end
-----------------------------------------------------------------------------------------------
function p.lua_get_volume_link(volume_number)
local category = 'Volume '..volume_number
local link = m.category_link(category, volume_number..' (帝霸'..volume_number..')')
category = m.add_category(category)
return category..link
end
-----------------------------------------------------------------------------------------------
function p.lua_get_subjects(subjects)
local i
local output = {}
if m.empty(subjects)
then output = m.add_category('Image Subject Needed')
else
for i = 1, #subjects do
table.insert(output, m.add_category(m.break_link({subjects[i], 1})..'/Images') )
end
output = table.concat(output)..'\n*'..mw.text.listToText(subjects, '\n*', '\n*')
end
return output
end
-----------------------------------------------------------------------------------------------
function p.lua_get_image_type(pagename)
local image_type = ''
local category = ''
local link = ''
if string.find(pagename, 'Textless') ~= nil
then image_type = 'Textless '
end
category = m.add_category(image_type..'Covers')
link = m.category_link(image_type..'Covers', image_type..'Cover')
return category..link
end
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
-- get artist's name based on volume number
function p.lua_get_artist_from_volume(volume)
local category = ''
local external_link = ''
local output = ''
if m.empty(volume) == false
then
volume = tonumber(volume)
if volume >= 1 and volume <= 50
then
category = '南柏'
external_link = 'http://www.hotupub.com/artist/117-%E5%8D%97%E6%9F%8F'
elseif (volume > 50 and volume <= 130) or m.in_list( {171, 172, 176}, volume)
then
category = '海琴'
external_link = 'http://www.hotupub.com/artist/177-%E6%B5%B7%E7%90%B4'
elseif (volume > 130 and volume <= 168) or volume == 187
then
category = 'BT公寓.小吉'
external_link = 'http://www.hotupub.com/artist/268-%E5%B0%8F%E5%90%89'
elseif m.in_list( {169, 170, 178, 183, 189, 190}, volume)
then
category = '雨霖'
external_link = 'http://www.hotupub.com/artist/90-%E9%9B%A8%E9%9C%96'
elseif m.in_list( {173, 175, 177, 182, 192, 194, 196}, volume)
then
category = '董紹華'
external_link = 'http://www.hotupub.com/artist/109-%E8%91%A3%E7%B4%B9%E8%8F%AF'
elseif m.in_list( {174, 181}, volume)
then
category = 'HOTU'
external_link = 'http://www.hotupub.com/artist/282-hotu'
elseif m.in_list( {179, 180, 185, 188}, volume)
then
category = 'BT公寓‧靈力'
external_link = 'http://www.hotupub.com/artist/136-bt%E5%85%AC%E5%AF%93%E2%80%A7%E9%9D%88%E5%8A%9B'
elseif volume == 186
then
category = '末末'
external_link = 'http://www.hotupub.com/artist/207-%E6%9C%AB%E6%9C%AB'
elseif volume == 191
then
category = '白羽kon'
external_link = 'http://www.hotupub.com/artist/271-%E7%99%BD%E7%BE%BDkon'
elseif volume == 193
then
category = '張翼'
external_link = 'http://www.hotupub.com/artist/255-%E5%BC%B5%E7%BF%BC'
elseif volume == 195
then
category = '絲繞'
external_link = 'http://www.hotupub.com/artist/237-%E7%B5%B2%E7%B9%9E'
end
if m.empty(category)
then output = m.add_category('Artist Needed')
else
external_link = '<sup><small>['..external_link..' ('..category..')]</small></sup>'
if not m.exists({'Category:'..category})
then output = m.add_category('Artist Needed')
end
category = m.add_category(category)..m.category_link(category)
output = output..category..external_link
end
end
return output
end
-----------------------------------------------------------------------------------------------
function p.lua_get_image_from_volume(volume)
local cover = ''
local textless = ''
if not m.empty(volume)
then
cover = 'File:Volume '..string.rep('0',3-#volume)..volume..'.jpg'
textless = 'File:Volume '..string.rep('0',3-#volume)..volume..' Textless.jpg'
end
return cover, textless
end
-----------------------------------------------------------------------------------------------
function p.image_tabber(volume_number)
local function link(value)
return '[['..value..'|300px]]'
end
local cover = ''
local textless = ''
local output = ''
cover, textless = p.lua_get_image_from_volume(volume_number)
if m.exists({textless})
then
cover = link(cover)
textless = link(textless)
output = '<tabber>|-|Main='..cover..'|-|Textless='..textless..'</tabber>'
else
output = link(cover)
end
return output
end
return p