Module:Musician Infobox: Difference between revisions

From NOISZ Wiki
No edit summary
mNo edit summary
 
(10 intermediate revisions by the same user not shown)
Line 2: Line 2:
local p = {}
local p = {}
function p.main(frame)  
function p.main(frame)  
local infobox_name = ""
local args = frame:getParent().args
local args = frame:getParent().args
if args.name then
if args.name then  
  local infobox = capiunto.create( {
infobox_name = args.name  
  title = string.gsub(args.name,"Category:Songs featuring","")
      } )
else
else
      local infobox = capiunto.create( {
infobox_name = string.gsub(tostring(mw.title.getCurrentTitle()),"Category:Songs featuring","")
  title = string.gsub(tostring(mw.title.getCurrentTitle()),"Category:Songs featuring","")
      } )
end
end
    local infobox = capiunto.create( {
title = infobox_name
    } )
if args.image1 then
if args.image1 then
infobox:addImage('[[File:' .. args.image1 .. '|200px]]', args.caption )
infobox:addImage('[[File:' .. args.image1 .. '|200px]]', args.caption )
Line 20: Line 21:
{ 'Carrd', args.carrd },
{ 'Carrd', args.carrd },
{ 'Linktree', args.linktree },
{ 'Linktree', args.linktree },
{ 'Lit.link', args.litlink },
{ 'Pronouns', args.pronouns },
{ 'Pronouns', args.pronouns },
{ 'about.me', args.aboutme },
{ 'Active from', args.active_from }
{ 'Active from', args.active_from }
}
}
Line 47: Line 50:
{ 'Misskey', args.misskey },
{ 'Misskey', args.misskey },
{ 'Newgrounds', args.newgrounds },
{ 'Newgrounds', args.newgrounds },
{ 'about.me', args.aboutme },
{ 'Blogspot', args.blogspot },
{ 'Blogspot', args.blogspot },
{ 'Artstation', args.artstation },
{ 'Artstation', args.artstation },
{ 'Pixiv', args.pixiv },
{ 'Other', args.other }
{ 'Other', args.other }
}
}
Line 56: Line 59:
{ 'Booth', args.booth },
{ 'Booth', args.booth },
{ 'Fanbox', args.fanbox },
{ 'Fanbox', args.fanbox },
{ 'Pixiv', args.pixiv },
{ 'skeb', args.skeb },
{ 'skeb', args.skeb },
{ 'Vgen', args.vgen },
{ 'Vgen', args.vgen },
{ 'Ko-Fi', args.ko-fi },
{ 'Ko-Fi', args.kofi },
{ 'Patron', args.patron }
{ 'Patreon', args.patreon }
}
}
if args.website or args.pronouns or args.active_from then
if args.website or args.pronouns or args.active_from or args.litlink or args.carrd or args.linktree or args.aboutme then
for _, row in ipairs(attributes) do
for _, row in ipairs(attributes) do
local label, value = row[1], row[2]
local label, value = row[1], row[2]
Line 79: Line 81:
end
end
end
end
if args.twiter or args.bluesky or args.instagram or args.facebook or args.threads or args.twitch or args.tiktok or args.mastodon or args.tumblr or args.ameblo or args.newgrounds or args.aboutme or args.blogspot or args.other then
if args.twitter or args.bluesky or args.instagram or args.facebook or args.threads or args.twitch or args.tiktok or args.mastodon or args.tumblr or args.ameblo or args.newgrounds or args.aboutme or args.blogspot or args.other or args.misskey or args.pixiv then
infobox:addHeader( 'Socials' )
infobox:addHeader( 'Socials' )
for _, row in ipairs(socials) do
for _, row in ipairs(socials) do
Line 88: Line 90:
end
end
end
end
if args.booth or args.fanbox or args.pixiv then
if args.booth or args.fanbox or args.vgen or args.kofi or args.skeb or args.patreon then
infobox:addHeader( 'Stores' )
infobox:addHeader( 'Stores/Support' )
for _, row in ipairs(stores) do
for _, row in ipairs(stores) do
local label, value = row[1], row[2]
local label, value = row[1], row[2]

Latest revision as of 17:15, 25 December 2025

This module is intended to create infoboxes on the musician pages on each of their categories, using Capiunto's infobox capabilities.


local capiunto = require 'capiunto'
local p = {}
function p.main(frame) 
	local infobox_name = ""
	local args = frame:getParent().args
	if args.name then 
		infobox_name = args.name 
	else
		infobox_name = string.gsub(tostring(mw.title.getCurrentTitle()),"Category:Songs featuring","")
	end
    local infobox = capiunto.create( {
	title = infobox_name
		
    } )
	if args.image1 then
		infobox:addImage('[[File:' .. args.image1 .. '|200px]]', args.caption )
	end
	local attributes = 
	{
		{ 'Website', args. website },
		{ 'Carrd', args.carrd },
		{ 'Linktree', args.linktree },
		{ 'Lit.link', args.litlink },
		{ 'Pronouns', args.pronouns },
		{ 'about.me', args.aboutme },
		{ 'Active from', args.active_from }
	}
	local music = 
	{
		{ 'Spotify', args.spotify },
		{ 'YouTube', args.youtube },
		{ 'Bandcamp', args.bandcamp },
		{ 'Soundcloud', args.soundcloud },
		{ 'Apple Music', args.apple_music },
		{ 'iTunes', args.itunes },
		{ 'Niconico', args.niconico }
	}
	local socials = 
	{
		{ 'Twitter', args.twitter},
		{ 'Bluesky', args.bluesky },
		{ 'Instagram', args.instagram },
		{ 'Facebook', args.facebook },
		{ 'Threads', args.threads },
		{ 'Twitch', args.twitch },
		{ 'TikTok', args.tiktok },
		{ 'Mastodon', args.mastodon },
		{ 'Tumblr', args.tumblr },
		{ 'Ameblo', args.ameblo },
		{ 'Misskey', args.misskey },
		{ 'Newgrounds', args.newgrounds },
		{ 'Blogspot', args.blogspot },
		{ 'Artstation', args.artstation },
		{ 'Pixiv', args.pixiv },
		{ 'Other', args.other }
	}
	local stores = 
	{
		{ 'Booth', args.booth },
		{ 'Fanbox', args.fanbox },
		{ 'skeb', args.skeb },
		{ 'Vgen', args.vgen },
		{ 'Ko-Fi', args.kofi },
		{ 'Patreon', args.patreon }
	}
	if args.website or args.pronouns or args.active_from or args.litlink or args.carrd or args.linktree or args.aboutme then
		for _, row in ipairs(attributes) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	if args.spotify or args.bandcamp or args.youtube or args.itunes or args.apple_music or args.niconico or args.soundcloud then
		infobox:addHeader( 'Music' )
		for _, row in ipairs(music) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	if args.twitter or args.bluesky or args.instagram or args.facebook or args.threads or args.twitch or args.tiktok or args.mastodon or args.tumblr or args.ameblo or args.newgrounds or args.aboutme or args.blogspot or args.other or args.misskey or args.pixiv then
		infobox:addHeader( 'Socials' )
		for _, row in ipairs(socials) do
			local label, value = row[1], row[2]
			if value  and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	if args.booth or args.fanbox or args.vgen or args.kofi or args.skeb or args.patreon then
		infobox:addHeader( 'Stores/Support' )
		for _, row in ipairs(stores) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	
    return infobox
end

return p