Modulo:Cita premio giochi

Modulo Lua per implementare i template:


local p = {}

local first_spiel_des_jahres = 1979
local last_spiel_des_jahres = 2018

local function dump(t, ...)
	local args = {...}
	for _, s in ipairs(args) do
		table.insert(t, s)
	end
end

local origins_award_links = {
	['1974'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1974OriginsAwards/tabid/3212/Default.aspx', 'https://web.archive.org/web/20141007012406/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1974OriginsAwards/tabid/3212/Default.aspx', '7 ottobre 2014'},
	['1975'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1975OriginsAwards/tabid/3213/Default.aspx', 'https://web.archive.org/web/20141006235152/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1975OriginsAwards/tabid/3213/Default.aspx', '6 ottobre 2014'},
	['1976'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1976OriginsAwards/tabid/3214/Default.aspx', 'https://web.archive.org/web/20141006181230/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1976OriginsAwards/tabid/3214/Default.aspx', '6 ottobre 2014'},
	['1977'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1977OriginsAwards/tabid/3215/Default.aspx', 'https://web.archive.org/web/20141006193134/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1977OriginsAwards/tabid/3215/Default.aspx', '6 ottobre 2014'},
	['1978'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1978OriginsAwards/tabid/3216/Default.aspx', 'https://web.archive.org/web/20141006235620/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1978OriginsAwards/tabid/3216/Default.aspx', '6 ottobre 2014'},
	['1979'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1979OriginsAwards/tabid/3217/Default.aspx', 'https://web.archive.org/web/20141007010019/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1970s/The1979OriginsAwards/tabid/3217/Default.aspx', '7 ottobre 2014'},
	['1980'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1980OriginsAwards/tabid/3223/Default.aspx', 'https://web.archive.org/web/20141007022016/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1980OriginsAwards/tabid/3223/Default.aspx', '7 ottobre 2014'},
	['1981'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1981OriginsAwards/tabid/3224/Default.aspx', 'https://web.archive.org/web/20141006214155/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1981OriginsAwards/tabid/3224/Default.aspx', '6 ottobre 2014'},
	['1982'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1982OriginsAwards/tabid/3225/Default.aspx', 'https://web.archive.org/web/20141006163659/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1982OriginsAwards/tabid/3225/Default.aspx', '6 ottobre 2014'},
	['1983'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1983OriginsAwards/tabid/3226/Default.aspx', 'https://web.archive.org/web/20141006234233/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1983OriginsAwards/tabid/3226/Default.aspx', '6 ottobre 2014'},
	['1984'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1984OriginsAwards/tabid/3227/Default.aspx', 'https://web.archive.org/web/20141007022304/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1984OriginsAwards/tabid/3227/Default.aspx', '7 ottobre 2014'},
	['1985'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1985OriginsAwards/tabid/3228/Default.aspx', 'https://web.archive.org/web/20141006171124/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1985OriginsAwards/tabid/3228/Default.aspx', '6 ottobre 2014'},
	['1986'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1986OriginsAwards/tabid/3229/Default.aspx', 'https://web.archive.org/web/20141006205458/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1986OriginsAwards/tabid/3229/Default.aspx', '6 ottobre 2014'},
	['1987'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1987OriginsAwards/tabid/3230/Default.aspx', 'https://web.archive.org/web/20141006211739/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1987OriginsAwards/tabid/3230/Default.aspx', '6 ottobre 2014'},
	['1988'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1988OriginsAwards/tabid/3231/Default.aspx', 'https://web.archive.org/web/20141006195939/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1988OriginsAwards/tabid/3231/Default.aspx', '6 ottobre 2014'},
	['1989'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1989OriginsAwards/tabid/3232/Default.aspx', 'https://web.archive.org/web/20141007024457/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1980s/The1989OriginsAwards/tabid/3232/Default.aspx', '7 ottobre 2014'},
	['1990'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1990OriginsAwards/tabid/3234/Default.aspx', 'https://web.archive.org/web/20141007005603/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1990OriginsAwards/tabid/3234/Default.aspx', '7 ottobre 2014'},
	['1991'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1991OriginsAwards/tabid/3235/Default.aspx', 'https://web.archive.org/web/20141007000102/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1991OriginsAwards/tabid/3235/Default.aspx', '7 ottobre 2014'},
	['1992'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1992OriginsAwards/tabid/3236/Default.aspx', 'https://web.archive.org/web/20141006073549/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1992OriginsAwards/tabid/3236/Default.aspx', '6 ottobre 2014'},
	['1993'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1993OriginsAwards/tabid/3237/Default.aspx', 'https://web.archive.org/web/20141006220316/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1993OriginsAwards/tabid/3237/Default.aspx', '6 ottobre 2014'},
	['1994'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1994OriginsAwards/tabid/3238/Default.aspx', 'https://web.archive.org/web/20141006235253/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1994OriginsAwards/tabid/3238/Default.aspx', '6 ottobre 2014'},
	['1995'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1995OriginsAwards/tabid/3239/Default.aspx', 'https://web.archive.org/web/20141007012401/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1995OriginsAwards/tabid/3239/Default.aspx', '7 ottobre 2014'},
	['1996'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1996OriginsAwards/tabid/3240/Default.aspx', 'https://web.archive.org/web/20141006122453/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1996OriginsAwards/tabid/3240/Default.aspx', '6 ottobre 2014'},
	['1997'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1997OriginsAwards/tabid/3241/Default.aspx', 'https://web.archive.org/web/20141006233456/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1997OriginsAwards/tabid/3241/Default.aspx', '6 ottobre 2014'},
	['1998'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1998OriginsAwards/tabid/3242/Default.aspx', 'https://web.archive.org/web/20141006195337/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1998OriginsAwards/tabid/3242/Default.aspx', '6 ottobre 2014'},
	['1999'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1999OriginsAwards/tabid/3243/Default.aspx', 'https://web.archive.org/web/20141006174818/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe1990s/The1999OriginsAwards/tabid/3243/Default.aspx', '6 ottobre 2014'},
	['2000'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2000OriginsAwards/tabid/3245/Default.aspx', 'https://web.archive.org/web/20141007005721/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2000OriginsAwards/tabid/3245/Default.aspx', '7 ottobre 2014'},
	['2001'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2001OriginsAwards/tabid/3246/Default.aspx', 'https://web.archive.org/web/20141006210217/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2001OriginsAwards/tabid/3246/Default.aspx', '6 ottobre 2014'},
	['2002'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2002OriginsAwards/tabid/3247/Default.aspx', 'https://web.archive.org/web/20141006172147/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2002OriginsAwards/tabid/3247/Default.aspx', '6 ottobre 2014'},
	['2003'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2003OriginsAwards/tabid/3248/Default.aspx', 'https://web.archive.org/web/20141007023331/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2003OriginsAwards/tabid/3248/Default.aspx', '7 ottobre 2014'},
	['2004'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2004OriginsAwards/tabid/3249/Default.aspx', 'https://web.archive.org/web/20141006112722/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2004OriginsAwards/tabid/3249/Default.aspx', '6 ottobre 2014'},
	['2005'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2005OriginsAwards/tabid/3250/Default.aspx', 'https://web.archive.org/web/20141006113835/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2005OriginsAwards/tabid/3250/Default.aspx', '6 ottobre 2014'},
	['2006'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2006OriginsAwards/tabid/3251/Default.aspx', 'https://web.archive.org/web/20141007021156/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2006OriginsAwards/tabid/3251/Default.aspx', '7 ottobre 2014'},
	['2007'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2007OriginsAwards/tabid/3252/Default.aspx', 'https://web.archive.org/web/20141006215646/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2007OriginsAwards/tabid/3252/Default.aspx', '6 ottobre 2014'},
	['2008'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2008OriginsAwards/tabid/3203/Default.aspx', 'https://web.archive.org/web/20141006192212/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2008OriginsAwards/tabid/3203/Default.aspx', '6 ottobre 2014'},
	['2009'] = { 'http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2009OriginsAwards/tabid/3196/Default.aspx', 'https://web.archive.org/web/20141006224519/http://www.gama.org/OriginsAwards/OriginsAwardsWinnersThe2000s/The2009OriginsAwards/tabid/3196/Default.aspx', '6 ottobre 2014'},
	['2010'] = { 'http://www.gama.org/OriginsAwards/37thOriginsAwards/tabid/3193/Default.aspx', 'https://web.archive.org/web/20141007012650/http://www.gama.org/OriginsAwards/37thOriginsAwards/tabid/3193/Default.aspx', '7 ottobre 2014'},
	['2011'] = { 'http://www.gama.org/OriginsAwards/38thOriginsAwards/tabid/3207/Default.aspx', 'https://web.archive.org/web/20141007032931/http://www.gama.org/OriginsAwards/38thOriginsAwards/tabid/3207/Default.aspx', '7 ottobre 2014'},
	['2012'] = { 'http://www.gama.org/OriginsAwards/39thOriginsAwards/tabid/3265/Default.aspx', 'https://web.archive.org/web/20141006224021/http://www.gama.org/OriginsAwards/39thOriginsAwards/tabid/3265/Default.aspx', '6 ottobre 2014'},
	['2013'] = { 'http://icv2.com/articles/comics/view/28860/2014-origins-winners-announced', 'https://web.archive.org/web/20160304112240/http://icv2.com/articles/comics/view/28860/2014-origins-winners-announced', '4 marzo 2016'},
	['2014'] = { 'http://www.originsawards.net/177-2/', 'https://web.archive.org/web/20160221132820/http://www.originsawards.net/177-2/', '21 febbraio 2016'},
	['2015'] = { 'http://www.originsawards.net/previous-origins-award-winners/', 'https://web.archive.org/web/20170809035748/http://www.originsawards.net/previous-origins-award-winners/', '9 agosto 2017'},
	['2016'] = { 'http://www.originsawards.net/previous-origins-award-winners/', 'https://web.archive.org/web/20170809035748/http://www.originsawards.net/previous-origins-award-winners/', '9 agosto 2017'},
	['2017'] = { 'http://www.originsawards.net/previous-origins-award-winners/'},
	['hall'] = { 'http://www.gama.org/OriginsAwards/HallofFame/tabid/3205/Default.aspx', 'https://web.archive.org/web/20141006235950/http://www.gama.org/OriginsAwards/HallofFame/tabid/3205/Default.aspx', '6 ottobre 2014'}
}

local ENnies = {
	 ['2001'] = 'http://www.ennie-awards.com/blog/about-us/2001-noms-and-winners/',
	 ['2002'] = 'http://www.ennie-awards.com/blog/about-us/2002-noms-and-winners/',
	 ['2003'] = 'http://www.ennie-awards.com/blog/about-us/2003-noms-and-winners/',
	 ['2004'] = 'http://www.ennie-awards.com/blog/about-us/2004-noms-and-winners/',
	 ['2005'] = 'http://www.ennie-awards.com/blog/about-us/2005-noms-and-winners/',
	 ['2006'] = 'http://www.ennie-awards.com/blog/about-us/2006-noms-and-winners/',
	 ['2007'] = 'http://www.ennie-awards.com/blog/about-us/2007-noms-and-winners/',
	 ['2008'] = 'http://www.ennie-awards.com/blog/about-us/2008-noms-and-winners/',
	 ['2009'] = 'http://www.ennie-awards.com/blog/about-us/2009-noms-and-winners/',
	 ['2010'] = 'http://www.ennie-awards.com/blog/about-us/2010-winners/',
	 ['2011'] = 'http://www.ennie-awards.com/blog/about-us/2011-nominees-and-winners/',
	 ['2012'] = 'http://www.ennie-awards.com/blog/about-us/2012-noms-and-winners/',
	 ['2013'] = 'http://www.ennie-awards.com/blog/about-us/2013-noms-and-winners-2/',
	 ['2014'] = 'http://www.ennie-awards.com/blog/about-us/2014-ennie-awards-nominees/',
	 ['2015'] = 'http://www.ennie-awards.com/blog/about-us/2015-ennie-award-winners/',
	 ['2016'] = 'http://www.ennie-awards.com/blog/about-us/2016-ennie-award-winners/',
	 ['2017'] = 'http://www.ennie-awards.com/blog/about-us/2017-noms-and-winners/'
}

function p.cita_origins_award(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	local result = ''
	local year = args[1]
	if year and origins_award_links[year] then
		local title
		if year == 'hall' then
			title = 'Hall of Fame Inductees'
		else
			title = 'The ' .. year .. ' Origins Awards - Presented at Origins ' ..  year+1
		end
		local citazione = require( "Modulo:Citazione" );
		frame.args = {
					CitationClass = 'testo',
					url = origins_award_links[year][1],
					urlarchivio = origins_award_links[year][2] or nil,
					dataarchivio = origins_award_links[year][3] or nil,
					titolo = title,
					accesso = args['accesso'],
					cid = args['cid'],
					editore = '[[Game Manufacturers Association]]',
					lingua = 'en'
		}
		result = citazione.citation(frame)
	else
		result = '<strong class="error">Inserire un anno valido (1974-2017) o "hall"</strong>'
	end
	return result
end

local function get_spiel_link(year)
	local year_num = tonumber(year or '')
	if year_num and year_num>=first_spiel_des_jahres and year_num<=last_spiel_des_jahres then
		return 'https://www.spiel-des-jahres.com/de/preistraegerarchiv/' .. tostring(year_num)
	end
end

function p.cita_spiel_des_jahres(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	local result = ''
	local year = args[1]
	if year then
		url_to_link = get_spiel_link(year)
	end
	if url_to_link then 
		local title= 'Preisträgerarchiv ' ..  year
		local citazione = require( "Modulo:Citazione" );
		frame.args = {
					CitationClass = 'testo',
					url =  url_to_link,
					titolo = title,
					accesso = args['accesso'],
					cid = args['cid'],
					editore ='[[Spiel des Jahres]]',
					lingua = 'de, en'
		}
		result = citazione.citation(frame)
	else
		result = '<strong class="error">Inserire un anno valido (' .. 
				tostring(first_spiel_des_jahres) .. '-' .. 
				tostring(last_spiel_des_jahres) ..')</strong>'
	end
	return result
end


function p.cita_ENnies(frame)
	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	local result = ''
	local year = args[1]
	if year and ENnies[year] then
		local title= year .. ' ENnie Awards Winners'
		local url_to_link = ENnies[year]
		local citazione = require( "Modulo:Citazione" );
		frame.args = {
					CitationClass = 'testo',
					url =  url_to_link,
					titolo = title,
					accesso = args['accesso'],
					cid = args['cid'],
					editore =  '[[Gen Con]] EN World RPG Awards',
					lingua = 'en'
		}
		result = citazione.citation(frame)
	else
		result = '<strong class="error">Inserire un anno valido (2001-2017)</strong>'
	end
	return result
end

function p.award_list(frame)

	local getArgs = require('Module:Arguments').getArgs
	local args = getArgs(frame)
	local t = {}
	local spiel_des_jahres = {}
	-- genero la tabella per lo spiel des Jahres
	for i=first_spiel_des_jahres, last_spiel_des_jahres do
		spiel_des_jahres[i] = 'https://www.spiel-des-jahres.com/de/preistraegerarchiv/' .. tostring(i)
	end
	local sources = {
		origins = origins_award_links,
		spiel = spiel_des_jahres,
		ennie = ENnies
	}
	local source_table = sources[args[1]]
	local is_archived = args[1] == 'origins'
	local result = ''
	if source_table then
		local labels = {}
		for label, _ in pairs(source_table) do table.insert(labels, label) end
		table.sort(labels)
		for i, label in ipairs(labels) do
			if is_archived then
				dump(t, '* [', source_table[label][2], ' ', label, ']\n')
			else
				dump(t, '* [', source_table[label], ' ', label, ']\n' )
			end
		end
		result = table.concat(t)
	end
	return result
end

return p