Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Infobox DS Homebrews: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 49: Line 49:
     local categories = {
     local categories = {
         -- Applications
         -- Applications
         ['Math']                = {'DS homebrew applications', 'Maths Applications on DS', 'DS Homebrew Applications'},
         ['Math']                = {'DS homebrew applications', 'Maths applications on DS', 'DS homebrew applications'},
         ['Media Players']        = {'DS homebrew applications', 'Media Players on DS', 'DS Homebrew Applications'},
         ['Media Players']        = {'DS homebrew applications', 'Media players on DS', 'DS homebrew applications'},
         ['Music Apps']          = {'DS homebrew applications', 'Music Applications on DS', 'DS Homebrew Applications'},
         ['Music Apps']          = {'DS homebrew applications', 'Music applications on DS', 'DS homebrew applications'},
         ['Operating Systems']    = {'DS homebrew applications', 'Operating Systems on DS', 'DS Homebrew Applications'},
         ['Operating Systems']    = {'DS homebrew applications', 'Operating systems on DS', 'DS homebrew applications'},
         ['Other Apps']          = {'DS homebrew applications', 'Other Applications on DS', 'DS Homebrew Applications'},
         ['Other Apps']          = {'DS homebrew applications', 'Other applications on DS', 'DS homebrew applications'},
         ['System Tools']        = {'DS homebrew applications', 'System Tools on DS', 'DS Homebrew Applications'},
         ['System Tools']        = {'DS homebrew applications', 'System tools on DS', 'DS homebrew applications'},
         ['File Browsers']        = {'DS homebrew applications', 'Utility Applications on DS', 'DS Homebrew Applications'},
         ['File Browsers']        = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
         ['Utilities']            = {'DS homebrew applications', 'Utility Applications on DS', 'DS Homebrew Applications'},
         ['Utilities']            = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
         ['File Browsers']        = {'DS homebrew applications', 'Utility Applications on DS', 'DS Homebrew Applications'},
         ['File Browsers']        = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
         ['Save Managers and Editors'] = {'DS homebrew applications', 'Utility Applications on DS', 'DS Homebrew Applications'},
         ['Savegame Tools']       = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
         -- Games
         -- Games
         ['Action']              = {'DS homebrew games', 'Action Games on DS', 'DS Homebrew Games'},
         ['Action']              = {'DS homebrew games', 'Action games on DS', 'DS homebrew games'},
         ['Adventure']            = {'DS homebrew games', 'Adventure Games on DS', 'DS Homebrew Games'},
         ['Adventure']            = {'DS homebrew games', 'Adventure games on DS', 'DS homebrew games'},
         ['Arcade Games']        = {'DS homebrew games', 'Arcade Games on DS', 'DS Homebrew Games'},
         ['Arcade Games']        = {'DS homebrew games', 'Arcade games on DS', 'DS homebrew games'},
         ['Board']                = {'DS homebrew games', 'Board Games on DS', 'DS Homebrew Games'},
         ['Board']                = {'DS homebrew games', 'Board games on DS', 'DS homebrew games'},
         ['Card']                = {'DS homebrew games', 'Card Games on DS', 'DS Homebrew Games'},
         ['Card']                = {'DS homebrew games', 'Card games on DS', 'DS homebrew games'},
         ['Game Engine']          = {'DS homebrew games', 'Game Engines on DS', 'DS Homebrew Games'},
         ['Game Engine']          = {'DS homebrew games', 'Game engines on DS', 'DS homebrew games'},
         ['Music']                = {'DS homebrew games', 'Music Games on DS', 'DS Homebrew Games'},
         ['Music']                = {'DS homebrew games', 'Music games on DS', 'DS homebrew games'},
         ['Other Games']          = {'DS homebrew games', 'Other Games on DS', 'DS Homebrew Games'},
         ['Other Games']          = {'DS homebrew games', 'Other games on DS', 'DS homebrew games'},
         ['Platform']            = {'DS homebrew games', 'Platform Games on DS', 'DS Homebrew Games'},
         ['Platform']            = {'DS homebrew games', 'Platform games on DS', 'DS homebrew games'},
         ['Puzzle']              = {'DS homebrew games', 'Puzzle Games on DS', 'DS Homebrew Games'},
         ['Puzzle']              = {'DS homebrew games', 'Puzzle games on DS', 'DS homebrew games'},
         ['Racing']              = {'DS homebrew games', 'Racing Games on DS', 'DS Homebrew Games'},
         ['Racing']              = {'DS homebrew games', 'Racing games on DS', 'DS homebrew games'},
         ['Role Playing']        = {'DS homebrew games', 'Role Playing Games on DS', 'DS Homebrew Games'},
         ['Role Playing']        = {'DS homebrew games', 'Role playing games on DS', 'DS homebrew games'},
         ['Shooter']              = {'DS homebrew games', 'Shooter Games on DS', 'DS Homebrew Games'},
         ['Shooter']              = {'DS homebrew games', 'Shooter games on DS', 'DS homebrew games'},
         ['Simulation']          = {'DS homebrew games', 'Simulation Games on DS', 'DS Homebrew Games'},
         ['Simulation']          = {'DS homebrew games', 'Simulation games on DS', 'DS homebrew games'},
         ['Strategy']            = {'DS homebrew games', 'Strategy Games on DS', 'DS Homebrew Games'},
         ['Strategy']            = {'DS homebrew games', 'Strategy games on DS', 'DS homebrew games'},
         ['Trivia']              = {'DS homebrew games', 'Trivia Games on DS', 'DS Homebrew Games'},
         ['Trivia']              = {'DS homebrew games', 'Trivia games on DS', 'DS homebrew games'},
         -- Emulators
         -- Emulators
         ['Arcade']              = {'DS homebrew emulators', 'Arcade Emulators on DS', 'DS Homebrew Emulators'},
         ['Arcade']              = {'DS homebrew emulators', 'Arcade emulators on DS', 'DS homebrew emulators'},
         ['Computer']            = {'DS homebrew emulators', 'Computer Emulators on DS', 'DS Homebrew Emulators'},
         ['Computer']            = {'DS homebrew emulators', 'Computer emulators on DS', 'DS homebrew emulators'},
         ['Console']              = {'DS homebrew emulators', 'Console Emulators on DS', 'DS Homebrew Emulators'},
         ['Console']              = {'DS homebrew emulators', 'Console emulators on DS', 'DS homebrew emulators'},
         ['Handheld']            = {'DS homebrew emulators', 'Handheld Emulators on DS', 'DS Homebrew Emulators'},
         ['Handheld']            = {'DS homebrew emulators', 'Handheld emulators on DS', 'DS homebrew emulators'},
         ['Other Emulators']      = {'DS homebrew emulators', 'Other Emulators on DS', 'DS Homebrew Emulators'},
         ['Other Emulators']      = {'DS homebrew emulators', 'Other emulators on DS', 'DS homebrew emulators'},
-- Homebrew Loaders
-- Homebrew Loaders
         ['Homebrew Launchers']   = {'DS homebrew loaders', 'Homebrew Loaders on DS', 'DS Homebrew Applications'},
         ['HB Launchers']         = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
         ['Kernels']              = {'DS homebrew loaders', 'Homebrew Loaders on DS', 'DS Homebrew Applications'},
         ['Kernels']              = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
         ['Title Launchers']      = {'DS homebrew loaders', 'Homebrew Loaders on DS', 'DS Homebrew Applications'},
         ['Title Launchers']      = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
         -- PC (PC Utilities for DS)
         -- PC (PC Utilities for DS)
         ['Development Libraries'] = {'DS PC utilities', 'Development Utilities for DS', 'PC Utilities for DS'},
         ['Development']           = {'DS PC utilities', 'Development utilities for DS', 'PC utilities for DS'},
         ['Development Tools']     = {'DS PC utilities', 'Development Utilities for DS', 'PC Utilities for DS'},
         ['File Operation']         = {'DS PC utilities', 'File management utilities for DS', 'PC utilities for DS'},
         ['File Operation']         = {'DS PC utilities', 'File Management Utilities for DS', 'PC Utilities for DS'},
         ['ROM Patchers']           = {'DS PC utilities', 'ROM patchers', 'PC utilities for DS'},
         ['Save and Game Managers'] = {'DS PC utilities', 'Other PC Utilities for DS', 'PC Utilities for DS'},
         ['ROM Managers']           = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
         ['ROM Managers']           = {'DS PC utilities', 'Other PC Utilities for DS', 'PC Utilities for DS'},
         ['Save Management']       = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
         ['ROM Patchers']           = {'DS PC utilities', 'ROM Patchers', 'PC Utilities for DS'},
         ['Other PC Utilities']     = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
         ['PC Utilities']          = {'DS PC utilities', 'Other PC Utilities for DS', 'PC Utilities for DS'},
         ['PC Utilities']          = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
         ['DS Emulators']           = {'DS PC utilities', 'Other PC Utilities for DS', 'PC Utilities for DS'},
         ['Network']               = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
         -- Demos
         -- Demos
         ['Demos']                = {'DS homebrew demos', 'Demo Homebrews on DS', 'DS Homebrew Applications'},
         ['Demos']                = {'DS homebrew demos', 'Demo homebrews on DS', 'DS homebrew applications'},
         -- ROM Hack
         -- ROM Hack
         ['Game Hacks']          = {'all DS Rom Hacks', 'DS Game Hacks', 'DS Homebrew Rom Hacks'},
         ['Game Hacks']          = {'all DS Rom Hacks', 'DS game hacks', 'DS homebrew rom hacks'},
         ['Translations']        = {'all DS Rom Hacks', 'DS Game Translations', 'DS Homebrew Rom Hacks'},
         ['Translations']        = {'all DS Rom Hacks', 'DS game translations', 'DS homebrew rom hacks'},
         ['Hack Utilities']      = {'all DS Rom Hacks', 'DS Hack Utilities', 'DS Homebrew Rom Hacks'},
         ['Hack Utilities']      = {'all DS Rom Hacks', 'DS hack utilities', 'DS homebrew rom hacks'},
         ['Save Editors']        = {'all DS Rom Hacks', 'DS Hack Utilities', 'DS Homebrew Rom Hacks'},
         ['Save Editors']        = {'all DS Rom Hacks', 'DS hack utilities', 'DS homebrew rom hacks'},
     }
     }


Line 163: Line 163:
local function getSource( source )
local function getSource( source )
if empty( source ) then return end
if empty( source ) then return end
if source == 'included' then return 'Source included[[Category:DS Open Source Homebrew]]' end
if source == 'included' then return 'Source included[[Category:DS open source homebrew]]' end
   
   
return getLink( 'Source', source ) .. '[[Category:DS Open Source Homebrew]]'
return getLink( 'Source', source ) .. '[[Category:DS open source homebrew]]'
end
end



Latest revision as of 05:02, 24 August 2024

Documentation for this module may be created at Module:Infobox DS Homebrews/doc

local p = {}

local function div()
local div = mw.html.create( 'div' )
div
	:attr( 'id', 'Ads-Infobox' )
return tostring( div )
end

local function div2()
local div = mw.html.create( 'div' )
div
	:attr( 'id', 'largemobilebanner' )
return tostring( div )
end

local function div3()
local div = mw.html.create( 'div' )
div
	:attr( 'id', 'Ads-Infobox1' )
return tostring( div )
end

local function empty(param)
	return not param or param == ''	
end

local function formatUser( user )
	return '[[User:' .. user .. (user:find('|') and '' or ('|' .. user)) .. ']]'
end
 
local function userList( list )
	if empty(list) then return end
 
	if not list:find(',') then
		return formatUser(list)	
	end
 
	local ret = {}
	for user in mw.text.gsplit( list, '%s*,%s*' ) do
		ret[#ret+1] = formatUser(user)	
	end
	return table.concat( ret, ', ' )
end
 
local function getType(typeVal)
    if not typeVal then return end

    local categories = {
        -- Applications
        ['Math']                 = {'DS homebrew applications', 'Maths applications on DS', 'DS homebrew applications'},
        ['Media Players']        = {'DS homebrew applications', 'Media players on DS', 'DS homebrew applications'},
        ['Music Apps']           = {'DS homebrew applications', 'Music applications on DS', 'DS homebrew applications'},
        ['Operating Systems']    = {'DS homebrew applications', 'Operating systems on DS', 'DS homebrew applications'},
        ['Other Apps']           = {'DS homebrew applications', 'Other applications on DS', 'DS homebrew applications'},
        ['System Tools']         = {'DS homebrew applications', 'System tools on DS', 'DS homebrew applications'},
        ['File Browsers']        = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
        ['Utilities']            = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
        ['File Browsers']        = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
        ['Savegame Tools']       = {'DS homebrew applications', 'Utility applications on DS', 'DS homebrew applications'},
        -- Games
        ['Action']               = {'DS homebrew games', 'Action games on DS', 'DS homebrew games'},
        ['Adventure']            = {'DS homebrew games', 'Adventure games on DS', 'DS homebrew games'},
        ['Arcade Games']         = {'DS homebrew games', 'Arcade games on DS', 'DS homebrew games'},
        ['Board']                = {'DS homebrew games', 'Board games on DS', 'DS homebrew games'},		
        ['Card']                 = {'DS homebrew games', 'Card games on DS', 'DS homebrew games'},	
        ['Game Engine']          = {'DS homebrew games', 'Game engines on DS', 'DS homebrew games'},	
        ['Music']                = {'DS homebrew games', 'Music games on DS', 'DS homebrew games'},	
        ['Other Games']          = {'DS homebrew games', 'Other games on DS', 'DS homebrew games'},	
        ['Platform']             = {'DS homebrew games', 'Platform games on DS', 'DS homebrew games'},	
        ['Puzzle']               = {'DS homebrew games', 'Puzzle games on DS', 'DS homebrew games'},	
        ['Racing']               = {'DS homebrew games', 'Racing games on DS', 'DS homebrew games'},	
        ['Role Playing']         = {'DS homebrew games', 'Role playing games on DS', 'DS homebrew games'},	
        ['Shooter']              = {'DS homebrew games', 'Shooter games on DS', 'DS homebrew games'},	
        ['Simulation']           = {'DS homebrew games', 'Simulation games on DS', 'DS homebrew games'},	
        ['Strategy']             = {'DS homebrew games', 'Strategy games on DS', 'DS homebrew games'},	
        ['Trivia']               = {'DS homebrew games', 'Trivia games on DS', 'DS homebrew games'},	
        -- Emulators
        ['Arcade']               = {'DS homebrew emulators', 'Arcade emulators on DS', 'DS homebrew emulators'},
        ['Computer']             = {'DS homebrew emulators', 'Computer emulators on DS', 'DS homebrew emulators'},
        ['Console']              = {'DS homebrew emulators', 'Console emulators on DS', 'DS homebrew emulators'},
        ['Handheld']             = {'DS homebrew emulators', 'Handheld emulators on DS', 'DS homebrew emulators'},
        ['Other Emulators']      = {'DS homebrew emulators', 'Other emulators on DS', 'DS homebrew emulators'},
		-- Homebrew Loaders
        ['HB Launchers']         = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
        ['Kernels']              = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
        ['Title Launchers']      = {'DS homebrew loaders', 'Homebrew loaders on DS', 'DS homebrew applications'},
        -- PC (PC Utilities for DS)
        ['Development']            = {'DS PC utilities', 'Development utilities for DS', 'PC utilities for DS'},
        ['File Operation']         = {'DS PC utilities', 'File management utilities for DS', 'PC utilities for DS'},
        ['ROM Patchers']           = {'DS PC utilities', 'ROM patchers', 'PC utilities for DS'},
        ['ROM Managers']           = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
        ['Save Management']        = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
        ['Other PC Utilities']     = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
        ['PC Utilities']           = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
        ['Network']                = {'DS PC utilities', 'Other PC utilities for DS', 'PC utilities for DS'},
        -- Demos
        ['Demos']                = {'DS homebrew demos', 'Demo homebrews on DS', 'DS homebrew applications'},
        -- ROM Hack
        ['Game Hacks']           = {'all DS Rom Hacks', 'DS game hacks', 'DS homebrew rom hacks'},
        ['Translations']         = {'all DS Rom Hacks', 'DS game translations', 'DS homebrew rom hacks'},
        ['Hack Utilities']       = {'all DS Rom Hacks', 'DS hack utilities', 'DS homebrew rom hacks'},
        ['Save Editors']         = {'all DS Rom Hacks', 'DS hack utilities', 'DS homebrew rom hacks'},
    }

    local category = categories[typeVal]
    if category then
            return string.format('[[List of %s#%s|%s]] [[Category:%s]] [[Category:%s]]', category[1], typeVal, typeVal, category[2], category[3])
    else
        return typeVal .. '[[Category:Infobox homebrew using invalid type parameter]]'
    end
end
 
local function getLicense( license )
	if empty( license ) then return end
 
	local licenses = {
		['Apache']       = '[https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0]',
		['GNU GPL']      = '[https://www.gnu.org/licenses/gpl.html GNU GPL]',
		['GNU LGPL']     = '[https://www.gnu.org/licenses/lgpl.html GNU LGPL]',
		['BSD 2-Clause'] = '[http://opensource.org/licenses/BSD-2-Clause BSD 2-Clause]',
		['BSD 3-Clause'] = '[http://opensource.org/licenses/BSD-3-Clause BSD 3-Clause]',
		['Mixed'] 		 = 'Mixed',
		['MIT']          = '[http://opensource.org/licenses/mit-license.html MIT License]',
	}
 
	return licenses[license] or license
end
 
local function getFormats( a )
	local formats = { '3dsx', '3ds', 'cia', 'bin', 'dat', 'cxi' }
	local ret = {}
 
	for i=1,#formats do
		local f = formats[i]
		local tmp = a[f]
		if not empty(tmp) then
			local label = f == 'bin' and 'bin/elf' or f
			if tmp == 'yes' then
				ret[#ret+1] = label .. ' <span style="color:#00B000">✔</span>'
			elseif tmp == 'no' then
				ret[#ret+1] = label .. ' <span style="color:red">✘</span>'
			else
				ret[#ret+1] = label .. ' <span style="color:orange">?</span>'
			end
		end
	end
 
	if next(ret) == nil then return end -- We got nothing...
	return table.concat(ret, '<br />')
end
 
local function getLink( label, link, altlink )
	if empty( link ) then return altlink end
 
	if link:find( '://' ) then
		return '[' .. link .. ' ' .. label .. ']'	
	end
 
	return '[[' .. link .. '|' .. label .. ']]'
end
 
local function getSource( source )
	if empty( source ) then return end
	if source == 'included' then return 'Source included[[Category:DS open source homebrew]]' end
 
	return getLink( 'Source', source ) .. '[[Category:DS open source homebrew]]'
end

local function getDonation( donation )
	if empty( donation ) then return end
	if donation == 'included' then return 'Donation included[[Category:Support the author]]' end
 
	return getLink( 'Support Author', donation ) .. '[[Category:Support the author]]'
end

local function getDownloadMii( dm, dmversion, version )
	if not dm or dm ~= 'yes' then return end
 
	if empty(dmversion) or dmversion == version then
		return 'Downloadable via [[DownloadMii]] [[Category:3DS Homebrew in DownloadMii]]'
	else
		return "Version '''" .. dmversion .. "''' downloadable via [[DownloadMii]] [[Category:3DS Homebrew in DownloadMii]]"
	end
end
 
function p.main( frame )
	local a = frame:getParent().args
	local infobox = require( 'Module:Infobox' )
 
	if not empty( a.title ) then
		frame:callParserFunction( 'DISPLAYTITLE', a.title )	
	end
 
	local ibData = {
		title    = a.title,
		image    = a.image,
		imagesize    = a.imagesize or '48px',
		imagecaption = a.imagecaption,
		header2  = 'General',
		label3   = 'Author',
		data3    = a.author,
		label4   = 'Contributor',
		data4    = userList( a.contributor ),
		label5   = 'Ported by',
		data5    = userList( a.portedby ),
		label6   = 'Type',
		data6    = getType( a['type'] ),
		label7   = 'Version',
		data7    = a.version,
		label8   = 'License',
		data8    = getLicense( a.license ),
		label9   = 'Language',
		data9    = a.language,
		label10  = 'Format',
		data10   = getFormats( a ),
		label11   = 'Last Updated',
		data11    = a.lastupdated,
        header13 = div3(),
        header20 = div(),
        header1 = div2(),
		-- Links
		data15   = getLink( 'Download', a.download, a.downloadraw ),
		data16   = getLink( 'Website', a.website ),
		data17   = getSource( a.source ),
		data18   = getDonation( a.donation),
		data19   = getDownloadMii( a.dm, a.dmversion, a.version ),
		below    = a.below
	}
 
	if ibData.data15 or ibData.data16 or ibData.data17 or ibData.data18 or ibData.data19 then ibData.header14 = 'Links' end
 
	if a.cia == 'yes' then
		ibData.header111 = 'CIA information'
		ibData.label112  = 'Title ID'
		ibData.data112   = a.titleID or 'Unknown[[Category:3DS Homebrew missing CIA titleID]]'
		ibData.label113  = 'Unique ID'
		ibData.data113   = a.uniqueID or 'Unknown[[Category:3DS Homebrew missing CIA uniqueID]]'
	end
 
	return infobox.infobox( ibData )
end
 
return p

Advertising: