Modul:Partier se

Från Järnvägsdata

Dokumentationen för denna modul kan skapas på Modul:Partier se/dok

local p = {}
function lansvis( t )
    local lok = { ['01'] = 'Modul:Partier se/01',
                  ['03'] = 'Modul:Partier se/03',
                  ['04'] = 'Modul:Partier se/04',
                  ['05'] = 'Modul:Partier se/05',
                  ['06'] = 'Modul:Partier se/06',
                  ['07'] = 'Modul:Partier se/07',
                  ['08'] = 'Modul:Partier se/08',
                  ['09'] = 'Modul:Partier se/09',
                  ['10'] = 'Modul:Partier se/10',
                  ['12'] = 'Modul:Partier se/12',
                  ['13'] = 'Modul:Partier se/13',
                  ['14'] = 'Modul:Partier se/14',
                  ['17'] = 'Modul:Partier se/17',
                  ['18'] = 'Modul:Partier se/18',
                  ['19'] = 'Modul:Partier se/19',
                  ['20'] = 'Modul:Partier se/20',
                  ['21'] = 'Modul:Partier se/21',
                  ['22'] = 'Modul:Partier se/22',
                  ['23'] = 'Modul:Partier se/23',
                  ['24'] = 'Modul:Partier se/24',
                  ['25'] = 'Modul:Partier se/25'
    }
    return lok[t]
end
 
function p.partisnack(frame)
    local args = frame.args
    local white = 'white'
    local black = 'black'
 
    local color = {
    	
	['al'] =	{ ['a'] = 'AL',   ['n'] = 'Arbetarlistan',             ['l'] = 'Arbetarlistan',             ['f'] = '#cc0000' , ['t'] = white },
	['apk'] =	{ ['a'] = 'APK',  ['n'] = 'Arbetarpartiet kommunisterna', ['l'] = 'Sveriges kommunistiska parti (1995)', ['f'] = '#640000' , ['t'] = white },
 
	['bl'] =	{ ['a'] = 'BL' ,  ['n'] = 'Borgerlig lista',           ['l'] = 'Samlingslista',             ['f'] = '#b9d3ee' , ['t'] = black },
 
	['c'] = 	{ ['a'] = 'C',    ['n'] = 'Centerpartiet',             ['l'] = 'Centerpartiet',             ['f'] = '#009933',  ['t'] = black },
 
	['fgls'] =	{ ['a'] = 'FGLS', ['n'] = 'Fri grupp för lägre skatt', ['l'] = 'Fri grupp för lägre skatt', ['f'] = 'orange',   ['t'] = black },
	['fi'] =	{ ['a'] = 'FI',   ['n'] = 'Feministiskt initiativ',    ['l'] = 'Feministiskt initiativ',    ['f'] = '#D9308E',  ['t'] = white }, 
	['fk'] =	{ ['a'] = 'FRK',  ['n'] = 'Frihetliga kommunalfolket', ['l'] = 'Frihetliga kommunalfolket', ['f'] = '#660000',  ['t'] =white },
	['fp'] =	{ ['a'] = 'FP',   ['n'] = 'Folkpartiet liberalerna',   ['l'] = 'Folkpartiet',               ['f'] = '#6BB7EC',  ['t'] = black},
	['fr'] =	{ ['a'] = 'FR',   ['n'] = 'Frisinnade folkpartiet',    ['l'] = 'Frisinnade folkpartiet',    ['f'] = '#64b2ff',  ['t'] = black},
	['frp'] =	{ ['a'] = 'FRP',  ['n'] = 'Framstegspartiet',          ['l'] = 'Framstegspartiet (Sverige)', ['f'] = '#818200', ['t'] = white},
 
	['k'] = 	{ ['a'] = 'SKP',  ['n'] = 'Sveriges kommunistiska parti', ['l'] = 'Sveriges kommunistiska parti (1995)', ['f'] = '#500000', ['t']= white },
	['kp'] =	{ ['a'] = 'KP',   ['n'] = 'Kommunistiska Partiet',     ['l'] = 'Kommunistiska Partiet',     ['f'] = '#660000', ['t'] = white },
	['kd'] =	{ ['a'] = 'KD',   ['n'] = 'Kristdemokraterna',         ['l'] = 'Kristdemokraterna (Sverige)', ['f'] = '#231977', ['t'] = white },
	['krvp'] =	{ ['a'] ='KrVP',['n'] = 'Kristna Värdepartiet',      ['l'] = 'Kristna Värdepartiet',      ['f'] = '#660876', ['t'] = white },
	['kv'] =	{ ['a'] = 'KV',   ['n'] = 'Kommunens Väl',             ['l'] = 'Kommunens Väl',             ['f'] = '#ffa500', ['t'] = black },
 
	['jl'] =	{ ['a'] = 'JL', ['n'] = 'Junilistan', ['l'] = 'Junilistan', ['f'] = '#ffa500', ['t'] = white},
	
 	['l'] =	    { ['a'] = 'L',    ['n'] = 'Liberalerna',                ['l'] = 'Liberalerna',               ['f'] = '#6BB7EC',  ['t'] = black},
	['lpo'] =	{ ['a'] = 'LPo', ['n'] = 'Landsbygdspartiet oberoende', ['l'] = 'Landsbygdspartiet oberoende', ['f'] = '#4CB04C', ['t'] = white },
	['ls'] =	{ ['a'] = 'LS',   ['n'] = 'Liberal samling',           ['l'] = 'Liberal samling',           ['f'] = '#9fccec', ['t'] = black },
	['lp'] =	{ ['a'] = 'LP',   ['n'] = 'Liberala partiet',           ['l'] = 'Sveriges liberala parti',  ['f'] = '#33C7FF', ['t'] = black },
 
	['m'] = 	{ ['a'] = 'M',    ['n'] = 'Moderata samlingspartiet',  ['l'] = 'Moderaterna',               ['f'] = '#1B49DD', ['t'] = white },
	['mf'] =	{ ['a'] = 'MF',   ['n'] = 'Medborgarförbundet',        ['l'] = 'Medborgarförbundet',        ['f'] = '#320080', ['t'] = white },
	['med'] =	{ ['a'] = 'MED',   ['n'] = 'Medborgerlig samling',        ['l'] = 'Medborgerlig samling (2010-talet)',        ['f'] = '#506d28', ['t'] = white },
	['mp'] =	{ ['a'] = 'MP',   ['n'] = 'Miljöpartiet de gröna',     ['l'] = 'Miljöpartiet',              ['f'] = '#83CF39', ['t'] = black },
 
	['nd'] =	{ ['a'] = 'ND',   ['n'] = 'Nationaldemokraterna',      ['l'] = 'Nationaldemokraterna',      ['f'] = '#FF9900', ['t'] = black },
	['nsap'] =	{ ['a'] = 'NSAP', ['n'] = 'Nationalsocialistiska Arbetarepartiet', ['l'] = 'Nationalsocialistiska Arbetarepartiet', ['f'] = '#8b4513', ['t'] = white },
	['nsb'] =	{ ['a'] = 'NSB',  ['n'] = 'Nationalsocialistiska Blocket', ['l'] = 'Nationalsocialistiska blocket', ['f'] = '#8b4513', ['t'] = white },
	['nyd'] =	{ ['a'] = 'NYD',  ['n'] = 'Ny demokrati',               ['l'] = 'Ny demokrati (Sverige)',             ['f'] = 'yellow', ['t'] = black },
 
	['pp'] =	{ ['a'] = 'PP',   ['n'] = 'Piratpartiet',              ['l'] = 'Piratpartiet (Sverige)', ['f'] = '#572B85', ['t'] = white },
 
	['rs'] =	{ ['a'] = 'RS',   ['n'] = 'Rättvisepartiet Socialisterna', ['l'] = 'Rättvisepartiet Socialisterna', ['f']= '#990000', ['t'] = white },
 
	['s'] = 	{ ['a'] = 'S',    ['n'] = 'Sveriges socialdemokratiska arbetareparti', ['l'] = 'Socialdemokraterna (Sverige)', ['f'] = '#EE2020', ['t'] = black },
	['sd'] =	{ ['a'] = 'SD',   ['n'] = 'Sverigedemokraterna',       ['l'] = 'Sverigedemokraterna', ['f'] = '#DDDD00', ['t'] = black },
	['skp'] =	{ ['a'] = 'SKP',  ['n'] = 'Sveriges kommunistiska parti', ['l'] = 'Sveriges kommunistiska parti (1967)', ['f'] = '#500000', ['t'] = white },
	['sl'] =	{ ['a'] = 'SL',   ['n'] = 'Samlingslista',             ['l'] = 'Samlingslista',       ['f'] = 'lightgrey', ['t'] = black },
	['snf'] =	{ ['a'] = 'SNF',  ['n'] = 'Sveriges Nationella Förbund', ['l'] = 'Sveriges nationella förbund', ['f'] = '#996908', ['t'] = white},
	['soc.p'] = { ['a'] = 'SOC',  ['n'] = 'Socialistiska partiet',     ['l'] = 'Socialistiska Partiet (Sverige)', ['f'] = '#660000', ['t'] = white},
	['sp'] =	{ ['a'] = 'SP',   ['n'] = 'Socialistiska partiet',     ['l'] = 'Socialistiska partiet (1929)', ['f'] = '#660000', ['t'] = white },
	['soc'] =	{ ['a'] = 'SP',   ['n'] = 'Socialistiska partiet',     ['l'] = 'Socialistiska partiet (1929)', ['f'] = '#660000', ['t'] = white },
	['spi'] =	{ ['a'] = 'SPI',  ['n'] = 'SPI Välfärden', ['l'] = 'SPI Välfärden', ['f'] = '#FFFF99', ['t'] = black },
	['snsp'] =	{ ['a'] = 'SNSP', ['n'] = 'Svenska nationalsocialistiska partiet', ['l'] = 'Svenska nationalsocialistiska partiet', ['f'] = '#8b4513', ['t'] = white },
	['svp'] =	{ ['a'] = 'SVP',  ['n'] = 'Svenskarnas parti', ['l'] = 'Svenskarnas parti', ['f'] = '#8b4513', ['t'] = white },
 
	['v'] = 	{ ['a'] = 'V',    ['n'] = 'Vänsterpartiet',    ['l'] = 'Vänsterpartiet', ['f'] = '#AF0000', ['t'] = white },
 
	['övrigt'] = { ['a'] = 'ÖVR',  ['n'] = 'Övriga partier',    ['l'] = 'Lista över politiska partier i Sverige', ['f'] = 'gray', ['t'] = white },
	['övr'] =	{ ['a'] = 'ÖVR',  ['n'] = 'Övriga partier',    ['l'] = 'Lista över politiska partier i Sverige', ['f'] = 'gray', ['t'] = white },
	['övrig'] = { ['a'] = 'ÖVR',  ['n'] = 'Övriga partier',    ['l'] = 'Lista över politiska partier i Sverige', ['f'] = 'gray', ['t'] = white },
	['ö'] = 	{ ['a'] = 'ÖVR',  ['n'] = 'Övriga partier',    ['l'] = 'Lista över politiska partier i Sverige', ['f'] = 'gray', ['t'] = white },
	['övriga'] = { ['a'] = 'ÖVR',  ['n'] = 'Övriga partier',    ['l'] = 'Lista över politiska partier i Sverige', ['f'] = 'gray', ['t'] = white }
    }
 
    local parti = mw.text.trim(args[1])
    if parti == 'demonstration' then 
    	return color
    end
	if color[parti] then
		return color[parti]
	else
		if string.len(parti) > 2 then
            local modulnamn = lansvis(string.sub(parti, 1, 2))
            if modulnamn == nil then
                return 'INGET SÅDANT LÄN ' .. parti .. '[[Kategori:Fel härstammande från Modul:Partier se]]'
            end
            local modden = require( modulnamn )
 
            local resultat = modden.partisnack(frame)
 
            if resultat == nil then
                return 'error5[[Kategori:Fel härstammande från Modul:Partier se]]'
            end
 
            return resultat
        end
        return 'INGET SÅDANT PARTI[[Kategori:Fel härstammande från Modul:Partier se]]'
    end
	return 'INGET SÅDANT PARTI[[Kategori:Fel härstammande från Modul:Partier se]]'
end

function hamta(text)
	if text == "Partier se" or text == "Partier se/dok" then
		return "Modul:Partier se"
	elseif string.sub(text, 1, 11) == "Partier se/" then
		return "Modul:" .. string.sub(text, 1, 13)
	end
end
		
function p.demo(frame)
	local a = hamta(mw.title.getCurrentTitle().text)
	local color = nil
	local kort = 'demonstration'
	frame.args = { kort }
	
	if a == "Modul:Partier se" then
		color = p.partisnack(frame)
	else
		local c1 = require(a).partisnack
		color = c1(frame)
	end
	local r = ''
	r = mw.text.tag('th', {}, 'Parameter 1') 
	r = r .. mw.text.tag('th', {}, 'Partibeteckning<br>(Parameter 2 = a)') 
	r = r .. mw.text.tag('th', {}, 'Partinamn<br>(Parameter 2 = n)')
	r = r .. mw.text.tag('th', {}, 'Länk<br>(Parameter 2 = l)')
	r = r .. mw.text.tag('th', {}, 'Bakgrundsfärg<br>(Parameter 2 = f)')
	r = r .. mw.text.tag('th', {}, 'Textfärg<br>(Parameter 2 = t)')
	r = r .. mw.text.tag('th', {}, 'Typisk användning')
	r = mw.text.tag('tr', {}, r)
	
    local a = {}
    for i, n in pairs(color) do table.insert(a, i) end
    table.sort(a)
    for i0,j0 in ipairs(a) do 
      for i,j in pairs(color) do
        if i == j0 then 
        c = mw.text.tag('td', {}, i)
		c = c .. mw.text.tag('td', {}, j['a'])
		c = c .. mw.text.tag('td', {}, j['n'])
		c = c .. mw.text.tag('td', {}, '[[' .. j['l'] .. ']]')
		c = c .. mw.text.tag('td', {}, j['f'])
		c = c .. mw.text.tag('td', {}, j['t'])
		local c2 = mw.text.tag('div', {style="background:" .. j['f'] .. "; color:".. j['t'] .. "; text-align:center;"}, j['a'])
		c = c .. mw.text.tag('td', {}, c2)
		r = r .. mw.text.tag('tr', {}, c)
    	end 
      end
    end
	return mw.text.tag('table', {class="wikitable sortable"}, r)
end	
	
function p.genvag(frame)
	local args = frame:getParent().args
	if args[1] and args[2] then
		local kort = args[1]
        frame.args = { kort }
		local c = p.partisnack(frame)
		if type(c) == 'table' then
			return c[args[2]]
		else
			return c
		end
	end
end
	
return p