Emperor's Domination Wiki
Advertisement

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
Advertisement