Module:Cite certification/URL/sandbox
Appearance
| This is the module sandbox page for Module:Cite certification/URL. |
-- For each country, you can pass args (arguments from the original template),
-- certyear (the certyear in numerical format, or null if missing or invalid),
-- and source (the source, if different from that passed to the original template)
--
-- To return an error message, return the error string inside a table, e.g.
-- {'ERROR'}
-- Otherwise, any returned string is assumed to be a valid URL.
local yesno = require('Module:Yesno')
local function isblank(v) return (v or '') == '' end
local function notblank(v) return (v or '') ~= '' end
local regions = {
argentina = function(args)
if notblank(args.title) or notblank(args.artist) then
return 'http://www.capif.org.ar/Default.asp?PerDesde_MM=0&PerDesde_AA=0&PerHasta_MM=0&PerHasta_AA=0&interprete=' ..
mw.uri.encode(args.artist or '') ..
'&album=' .. mw.uri.encode(args.title or '') ..
'&LanDesde_MM=0&LanDesde_AA=0&LanHasta_MM=0&LanHasta_AA=0&Galardon=O&Tipo=' ..
({
album = '1',
video = '2',
})[mw.ustring.lower(args.type or '')] or '0' ..
'&ACCION2=+Buscar+&ACCION=Buscar&CO=5&CODOP=ESOP'
end
return 'http://www.capif.org.ar/Default.asp?CodOp=ESOP&CO=5'
end,
australia = function(args, certyear, source)
local type = mw.ustring.lower(args.type or '')
if source == 'yearchart' then
local year = certyear
if year and year < 1993 and year > 1989 then
year = year + 1
end
local chart = ({
single = 'singles-chart',
album = 'albums-chart',
video = 'music-dvd-chart',
})[type]
if not chart then return
{'MISSING OR INVALID type WAS PROVIDED FOR AUSTRALIA CERTIFICATION.'}
end
return 'https://www.aria.com.au/charts/' .. year .. '/' .. chart
end
if notblank(args.id) then
return 'https://www.aria.com.au/charts/' ..
(yesno(args.domestic) and 'australian-artist-' or '') ..
(type == 'single' and 'singles' or 'albums') ..
'-chart/' .. args.id
end
return ({
[1990] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADMNJGMy_si25BoL1PeKWT_a/1990%20Accreds.pdf',
[1991] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACjuKIBKG0f_IBblLVewtKva/1991%20Accreds.pdf',
[1992] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAimRgSEwbskg43Gp0c7l0ka/1992%20Accreds.pdf',
[1993] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AABq2J0lwnuqqey4FLDBqKoba/1993%20Accreds.pdf',
[1994] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADfk_xu0JtPN9xmTCuF2mCra/1994%20Accreds.pdf',
[1995] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACqiVS2PUOBjbCba4ok1S91a/1995%20Accreds.pdf',
[1996] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADoT30FMJfQmJxmToYDpcO-a/1996%20Accreds.pdf',
[1997] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADZbLSei--9mqfOiTFRIASMa/1997%20Accreds.pdf',
[1998] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAD6BUynvHbdGxT3lvCkFhC2a/1998%20Accreds.pdf',
[1999] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAATLmfMH7Iov9d0mORy7iY0a/1999%20Accreds.pdf',
[2000] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAABeYGTvZErtZotNbXOr2Tza/2000%20Accreds.pdf',
[2001] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADhw4ljwWQtLQiu3AKHh2fEa/2001%20Accreds.pdf',
[2002] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAB_dhE5TMeNlf3JjRPhKwfla/2002%20Accreds.pdf',
[2003] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAPr-mldzIAc3tSaFZxk5fha/2003%20Accreds.pdf',
[2004] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AADOuO49m4ktOxAMI8EhwyLQa/2004%20Accreds.pdf',
[2005] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AABxMKk3Lrf-VUHrS4_CfKrba/2005%20Accreds.pdf',
[2006] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AABM36ml6jQbQXLUFgPhev7ia/2006%20Accreds.pdf',
[2007] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACv2IzaxApS2wDjUm2Sv59Va/2007%20Accreds.pdf',
[2008] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACIy6L0vRyXEayNcbS-HgDKa/2008%20Accreds.pdf',
[2009] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAkIHUsZxjA2_mq5yRhmM7aa/2009%20Accreds.pdf',
[2010] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAC3Qs7otXiVLTXdz456Af2Xa/2010%20Accreds.pdf',
[2011] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAJJrqHEx_H2AkwuL1RJvc4a/2011%20Accreds.pdf',
[2012] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACBYBePZLRMLmM96QFIFbFta/2012%20Accreds.pdf',
[2013] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAB7SWdLlf4IXOeTFbi1j7-ia/2013%20Accreds.pdf',
[2014] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AABqwZW0sRsAMdTNAZlDRcmWa/2014%20Accreds.pdf',
[2015] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAB9XoKS5eunPKk6wwRzaGnpa/2015%20Accreds.pdf',
[2016] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAdVk17fViUnXNKd5SZXapJa/2016%20Accreds.pdf',
[2017] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAB2qTo9d_gGzbMZHhDTvHJ4a/2017%20Accreds.pdf',
[2018] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AABFFGIVR9Plblvmp9DSoiEia/2018%20Accreds.pdf',
[2019] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AACJzS4-BgOGT6m-zQ3-bvDba/2019%20Accreds.pdf',
[2020] = 'https://www.dropbox.com/sh/k9o2q7p7o4awhqx/AAAg37tFuJyo-YI2WkNFWDQ9a/2020%20Accreds.pdf',
[2021] = 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AGqF5SqiFMWNbqRDg5QpO8U/2021%20Accreds.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf',
[2022] = 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AJgnk65H2gn9pbZqnwzHEtk/2022%20Accreds.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf',
[2023] = 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AExzyTkHniRw2CkE2G9HX6Y/2023%20Accreds.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf',
})[certyear]
or (certyear == 2024 and (type == 'single'
and 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AMdhOf4iGEmYJ6OQbGyumAE/2024%20Accreditations%20-%20Singles.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'
or 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AD_UPzzW8XZbu2kvJAmyGUA/2024%20Accreditations%20-%20Albums.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'))
or (certyear == 2025 and (type == 'single'
and 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AC20e6S31r09Z79I9T85o9o/2025%20Single%20Accreditations.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'
or 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/ANd1-yerJr4k8Jls_6CmF8I/2025%20Album%20Accreditations.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'))
or (certyear == 2026 and (type == 'single'
and 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/AJlIqh9lkdMaVDvy9rsaUAk/Apr%20Single%20Accreds%202026.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'
or 'https://www.dropbox.com/scl/fo/orr9fphn3kyhykimwm11l/ACpiqNQcY1-ymRhg1eRZTXo/Apr%20Album%20Accreds%202026.pdf?rlkey=b5et6u9n5p7f3gkxgmqhivbyf'))
or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR AUSTRALIA CERTIFICATION.'})
end,
austria = function(args)
local type = mw.ustring.lower(args.type or '')
return 'https://ifpi.at/auszeichnungen/?fwp_per_page=100&'
.. (notblank(args.artist) and ('fwp_interpret=' .. mw.uri.encode(args.artist) .. '&') or '')
.. (notblank(args.title) and ('fwp_titel=' .. mw.uri.encode(args.title) .. '&') or '')
.. ({
album = 'fwp_format=album&',
single = 'fwp_format=single&',
video = 'fwp_format=dvd&',
})[type] or ''
end,
belgium = function(args, certyear)
if certyear then
return 'https://www.ultratop.be/nl/goud-platina/' .. certyear .. '/'
.. (mw.ustring.lower(args.type or '') == 'album' and 'albums' or 'singles')
end
return 'https://www.ultratop.be/nl/certifications.asp'
end,
brazil = function(args)
if notblank(args.artist) then
local type = mw.ustring.lower(args.type or '')
return 'https://pro-musicabr.org.br/home/certificados/?busca_artista='
.. mw.uri.encode(args.artist)
.. '&busca_tipo_produto='
.. ({
album = 'ÁLBUM',
single = 'SINGLE',
video = 'DVD',
})[type] or ''
end
return 'https://pro-musicabr.org.br/home/certificados/'
end,
canada = function(args, certyear)
local type = mw.ustring.lower(args.type or '')
if notblank(args.artist) or notblank(args.title) then
local url = 'https://musiccanada.com/gold-platinum/?_gp_search='
.. mw.uri.encode((args.title or '') .. ' ' .. (args.artist or ''))
if type == 'single' and yesno(args.digital) then
url = url .. '&_gp_format=digital-download'
elseif type == 'ringtone' then
url = url .. '&_gp_format=ringtone'
end
return url
end
if certyear then
if certyear < 2001 then
if tonumber(args.certmonth) then
return string.format(
'http://www.cria.ca/gold/%02d%02d_g.php',
tonumber(args.certmonth),
certyear - 2000
)
end
end
return 'https://musiccanada.com/gold-platinum/'
end
end,
['central america'] = function()
return 'https://cfc-musica.com/certificaciones-1'
end,
denmark = function(args, certyear, source)
if source == 'chart' then
if isblank(args.id) then return
{'MISSING OR INVALID id WAS PROVIDED FOR DENMARK CERTIFICATION.'}
end
local type = ({
album = 'a40',
compilation = 'c40',
video = 'v40',
single = certyear and certyear < 2007 and 's20' or 't40',
})[mw.ustring.lower(args.type or '')]
return 'https://www.hitlisten.nu/default.asp?w=' .. args.id
.. '&y=' .. certyear .. '&list=' .. (type or '')
end
if notblank(args.id) then
return 'http://ifpi.dk/node/' .. args.id
end
return 'http://www.ifpi.dk/certificeringer-0'
end,
europe = function(_, certyear)
return ({
[2014] = 'https://web.archive.org/web/20160113192750/http://ifpi.org/platinum_awards.php',
[2013] = 'https://web.archive.org/web/20141010153939/http://www.ifpi.org/platinum_awards.php',
[2012] = 'https://web.archive.org/web/20131102124403/http://www.ifpi.org/content/section_news/plat2012.html',
[2011] = 'https://web.archive.org/web/20131014110104/http://ifpi.org/content/section_news/plat2011.html',
[2010] = 'https://web.archive.org/web/20131102114825/http://ifpi.org/content/section_news/plat2010.html',
[2009] = 'https://web.archive.org/web/20131019044551/http://www.ifpi.org/content/section_news/plat2009.html',
[2008] = 'https://web.archive.org/web/20131128043857/http://ifpi.org/content/section_news/plat2008.html',
[2007] = 'https://web.archive.org/web/20131127154333/http://ifpi.org/content/section_news/plat2007.html',
[2006] = 'https://web.archive.org/web/20131016052153/http://www.ifpi.org/content/section_news/plat2006.html',
[2005] = 'https://web.archive.org/web/20131224220023/http://www.ifpi.org/content/section_news/plat2005.html',
[2004] = 'https://web.archive.org/web/20131019023820/http://www.ifpi.org/content/section_news/plat2004.html',
[2003] = 'https://web.archive.org/web/20131103083215/http://www.ifpi.org/content/section_news/plat2003.html',
[2002] = 'https://web.archive.org/web/20131224193414/http://www.ifpi.org/content/section_news/plat2002.html',
[2001] = 'https://web.archive.org/web/20131127151231/http://ifpi.org/content/section_news/plat2001.html',
[2000] = 'https://web.archive.org/web/20131127154733/http://ifpi.org/content/section_news/plat2000.html',
[1999] = 'https://web.archive.org/web/20131127154154/http://ifpi.org/content/section_news/plat1999.html',
[1998] = 'https://web.archive.org/web/20131117195048/http://ifpi.org/content/section_news/plat1998.html',
[1997] = 'https://web.archive.org/web/20131127160311/http://ifpi.org/content/section_news/plat1997.html',
[1996] = 'https://web.archive.org/web/20131224215935/http://www.ifpi.org/content/section_news/plat1996.html',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR EUROPE CERTIFICATION.'})
end,
finland = function(args)
local url = 'https://www.ifpi.fi/tutkimukset-ja-tilastot/kulta-ja-platinalevyt/?'
if not yesno(args.domestic) then
url = url .. 'ulkomaiset=1&'
end
if notblank(args.artist) then
url = url .. 'q=' .. mw.uri.encode(args.artist)
end
return url
end,
france = function(args, certyear, source)
local type = mw.ustring.lower(args.type or '')
if source == 'infodisc' then
return type == 'album'
and 'https://www.infodisc.fr/Album_Certifications.php'
or 'https://www.infodisc.fr/Chanson_Certifications.php'
elseif source == 'archive' then
if certyear == 2012 then
return 'http://proxy.siteo.com.s3.amazonaws.com/www.snepmusique.com/file/disques-dor-2012ok.pdf'
elseif certyear == 2013 then
return ({
album = 'https://www.snepmusique.com/wp-content/uploads/2014/02/Certifications_Albums_2013.pdf',
single = 'https://www.snepmusique.com/wp-content/uploads/2014/02/Certifications_Single_2013.pdf',
video = 'https://www.snepmusique.com/wp-content/uploads/2014/02/Certifications_Vid%C3%A9o_2013.pdf',
})[type] or {'MISSING OR INVALID type WAS PROVIDED FOR FRANCE CERTIFICATION.'}
end
local award = mw.ustring.lower(args.award or '')
local number = tonumber(args.number)
local typeId = ({
album = ({
silver = 28,
gold = number == 2 and 11 or 8,
platinum = ({
[2] = 13,
[3] = 14,
})[number] or 12,
diamond = 15,
})[award],
single = ({
silver = 6,
gold = 7,
platinum = 9,
diamond = 10,
})[award],
video = ({
gold = 16,
platinum = ({
[2] = 18,
[3] = 19,
})[number] or 17,
diamond = 20,
})[award],
compilation = ({
silver = 29,
gold = number == 2 and 23 or 22,
platinum = ({
[2] = 25,
[3] = 26,
})[number] or 24,
diamond = 27,
})[award],
})[type]
if not typeId then
return {'MISSING OR INVALID type WAS PROVIDED FOR FRANCE CERTIFICATION.'}
end
return 'https://www.snepmusique.com/fr/pag-259165-CERTIFICATIONS.html?year='
.. (certyear or '')
.. '&type=' .. typeId
else
return 'http://snepmusique.com/les-certifications/?categorie='
.. ({
album = 'Albums',
compilation = 'Albums',
single = 'Tout',
video = 'Vidéos',
})[type] or 'Tout'
.. '&interprete=' .. mw.uri.encode(args.artist or '')
.. '&titre=' .. mw.uri.encode(args.title or '')
end
end,
gcc = function(_, certyear)
return ({
[2009] = 'https://web.archive.org/web/20131010193203/http://www.ifpi.org/content/section_news/mid_east_2009.html',
[2010] = 'https://web.archive.org/web/20131021203829/http://www.ifpi.org/content/section_news/mid_east_2010.html',
[2011] = 'https://web.archive.org/web/20140111183325/http://www.ifpi.org/content/section_news/mid_east_2011.html',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR GCC CERTIFICATION.'})
end,
germany = function(args)
if notblank(args.artist) or notblank(args.title) then
local type = mw.ustring.lower(args.type or '')
return 'https://www.musikindustrie.de/wie-musik-zur-karriere-werden-kann/markt-bestseller/gold-/platin-und-diamond-auszeichnung/datenbank/?action=suche'
.. '&strTitel=' .. mw.uri.encode(args.title or '')
.. '&strInterpret=' .. mw.uri.encode(args.artist or '')
.. '&strTtArt=' .. ({
album = '2',
single = '1',
video = '56',
})[type] or 'alle'
.. '&strAwards=' .. (yesno(args.best) and 'checked' or 'unchecked')
end
return 'https://www.musikindustrie.de/wie-musik-zur-karriere-werden-kann/markt-bestseller/gold-/platin-und-diamond-auszeichnung/datenbank'
end,
greece = function(args, certyear)
if isblank(args.id) then
return {'MISSING id FOR GREECE CERTIFICATION.'}
end
local url = 'https://web.archive.org/web/' .. args.id .. '/'
if certyear and certyear >= 2021 then
return url .. (yesno(args.domestic)
and 'https://www.ifpi.gr/digital_el.html'
or 'https://www.ifpi.gr/digital_iel.html')
end
local typeId = ({
album = (certyear and certyear < 2010)
and (yesno(args.domestic) and '5' or '1')
or '1',
single = '3',
video = '6',
})[mw.ustring.lower(args.type or '')]
if not typeId then
return {'MISSING OR INVALID type WAS PROVIDED FOR GREECE CERTIFICATION.'}
end
return url .. 'https://www.ifpi.gr/chart0' .. typeId .. '.htm'
end,
['hong kong'] = function(_, certyear)
return ({
[2008] = 'https://web.archive.org/web/20120318015308/http://www.ifpihk.org/www_1/go30e.php',
[2007] = 'https://web.archive.org/web/20120318013701/http://www.ifpihk.org/www_1/go28e.php',
[2002] = 'https://web.archive.org/web/20120318013656/http://www.ifpihk.org/www_1/go27e.php',
[2001] = 'https://web.archive.org/web/20120318013651/http://www.ifpihk.org/www_1/go26e.php',
[2000] = 'https://web.archive.org/web/20120318015411/http://www.ifpihk.org/www_1/go25e.php',
[1999] = 'https://web.archive.org/web/20120318015406/http://www.ifpihk.org/www_1/go24e.php',
[1998] = 'https://web.archive.org/web/20120318013427/http://www.ifpihk.org/www_1/go2e.php',
[1997] = 'https://web.archive.org/web/20120318015314/http://www.ifpihk.org/www_1/go3e.php',
[1996] = 'https://web.archive.org/web/20120318013432/http://www.ifpihk.org/www_1/go4e.php',
[1995] = 'https://web.archive.org/web/20120318015416/http://www.ifpihk.org/www_1/go5e.php',
[1993] = 'https://web.archive.org/web/20120318013706/http://www.ifpihk.org/www_1/go6e.php',
[1990] = 'https://web.archive.org/web/20120318013711/http://www.ifpihk.org/www_1/go7e.php',
[1989] = 'https://web.archive.org/web/20120318013453/http://www.ifpihk.org/www_1/go8e.php',
[1988] = 'https://web.archive.org/web/20120318015320/http://www.ifpihk.org/www_1/go9e.php',
[1985] = 'https://web.archive.org/web/20120318013844/http://www.ifpihk.org/www_1/go10e.php',
[1984] = 'https://web.archive.org/web/20120318015345/http://www.ifpihk.org/www_1/go11e.php',
[1983] = 'https://web.archive.org/web/20120318013412/http://www.ifpihk.org/www_1/go12e.php',
[1982] = 'https://web.archive.org/web/20120318015304/http://www.ifpihk.org/www_1/go13e.php',
[1981] = 'https://web.archive.org/web/20120316222050/http://www.ifpihk.org/www_1/go14e.php',
[1980] = 'https://web.archive.org/web/20120318015350/http://www.ifpihk.org/www_1/go15e.php',
[1979] = 'https://web.archive.org/web/20120318013417/http://www.ifpihk.org/www_1/go16e.php',
[1978] = 'https://web.archive.org/web/20120318015404/http://www.ifpihk.org/www_1/go17e.php',
[1977] = 'https://web.archive.org/web/20120318013422/http://www.ifpihk.org/www_1/go18e.php',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR HONG KONG CERTIFICATION.'})
end,
hungary = function(_, certyear)
return 'https://slagerlistak.hu/arany-es-platinalemezek/adatbazis/' .. (certyear or '')
end,
ireland = function(args, certyear)
local page = 'index'
if certyear then
local award = mw.ustring.lower(args.award or '')
local type
if award == 'gold' then
type = 'gold'
elseif tonumber(args.number) then
type = 'multi_platinum'
else
type = 'platinum'
end
page = type .. (certyear == 2005 and '' or string.format('%02d', certyear - 2000))
end
return 'http://www.irishcharts.ie/awards/' .. page .. '.htm'
end,
italy = function(args)
if notblank(args.id) then
return 'https://www.fimi.it/top-of-the-music/targhette/richiedi-targhetta/?id=' .. args.id
elseif notblank(args.title) then
return 'https://www.fimi.it/top-of-the-music/music/?title=' .. mw.uri.encode(args.title)
elseif notblank(args.artist) then
return 'https://www.fimi.it/top-of-the-music/artist/?title=' .. mw.uri.encode(args.artist)
end
return 'https://www.fimi.it/top-of-the-music/certificazioni/'
end,
japan = function(args)
local type = mw.ustring.lower(args.type or '')
if yesno(args.digital) then
return 'https://www.riaj.or.jp/f/data/cert/hs.html'
elseif yesno(args.streaming) then
return 'https://www.riaj.or.jp/f/data/cert/st.html'
elseif type == 'ringtone' then
return 'https://www.riaj.or.jp/f/data/cert/hs.html'
end
return 'https://www.riaj.or.jp/f/data/cert/gd.html'
end,
mexico = function()
return 'https://amprofon.com.mx/es/pages/certificaciones.php'
end,
netherlands = function()
return 'https://www.goudplatina.nl/database'
end,
['new zealand'] = function(args, _, source)
if isblank(args.type) then
return {'MISSING type FOR NEW ZEALAND CERTIFICATION.'}
end
local type = mw.ustring.lower(args.type)
local typeParam
if source == 'archive' then
typeParam = ({
single = 'id=77&Itemid=61',
album = 'id=79&Itemid=62',
video = 'id=75&Itemid=65',
})[type]
if not typeParam then
return {'MISSING OR INVALID type WAS PROVIDED FOR NEW ZEALAND CERTIFICATION.'}
end
return 'http://www.radioscope.net.nz/index.php?option=com_content&task=view&' .. typeParam
elseif source == 'newchart' then
if isblank(args.id) then
return {'MISSING id FOR NEW ZEALAND CERTIFICATION.'}
end
typeParam = ({
album = yesno(args.domestic) and 'aotearoa-albums' or 'albums',
single = yesno(args.domestic) and 'aotearoa-singles' or 'singles',
})[type]
if not typeParam then
return {'MISSING OR INVALID type WAS PROVIDED FOR NEW ZEALAND CERTIFICATION.'}
end
return 'https://aotearoamusiccharts.co.nz/archive/' .. typeParam .. '/' .. args.id
elseif source == 'radioscope' then
typeParam = ({
album = 'album',
single = 'single',
})[type]
if not typeParam then
return {'MISSING OR INVALID type WAS PROVIDED FOR NEW ZEALAND CERTIFICATION.'}
end
return 'https://www.radioscope.co.nz/2024/00/00/' .. typeParam .. '-cert-search/'
else -- 'oldchart' or blank source
if isblank(args.id) then
return {'MISSING id FOR NEW ZEALAND CERTIFICATION.'}
end
typeParam = ({
album = yesno(args.domestic) and 'nzalbums' or 'albums',
compilation = 'compilations',
single = yesno(args.domestic) and 'nzsingles' or 'singles',
})[type]
if not typeParam then
return {'MISSING OR INVALID type WAS PROVIDED FOR NEW ZEALAND CERTIFICATION.'}
end
return 'https://nztop40.co.nz/chart/' .. typeParam .. '?chart=' .. args.id
end
end,
nigeria = function()
return 'https://www.turntablecharts.com/certification'
end,
norway = function(args, certyear)
if certyear and certyear < 2011 then
return 'https://web.archive.org/web/20121105012246/http://www.ifpi.no/sok/lst_trofeer_sok.asp?type=artist'
end
return 'https://ifpi.no/trofe/trofeoversikt/'
.. (notblank(args.artist) and ('?searchterm=' .. mw.uri.encode(args.artist)) or '')
end,
philippines = function()
return 'https://www.pari.com.ph/awardsgoldplatinum.html'
end,
poland = function(args, certyear)
if (certyear or 2023) <= 2022 then
local award = mw.ustring.lower(args.award or '')
local type = mw.ustring.lower(args.type or '')
return 'http://bestsellery.zpav.pl/wyroznienia/'
.. ({
gold = 'zlote',
platinum = 'platynowe',
diamond = 'diamentowe',
})[award] or 'zlote'
.. 'plyty/'
.. (type == 'video' and 'dvd' or 'cd')
.. '/archiwum.php?year=' .. certyear
end
return 'https://www.olis.pl/charts/oficjalna-lista-wyroznien'
end,
portugal = function(args, certyear, source)
if certyear and certyear >= 2018 then
if notblank(args.id) then
return 'https://www.audiogest.pt/uploads/files/' .. args.id
end
return 'https://www.audiogest.pt/tops-vendas'
end
if source == 'archive' then
return 'http://www.afp.org.pt/estatisticas.php'
end
return 'http://www.artistas-espectaculos.com/topafp/pt/'
.. (notblank(args.id) and (args.id .. '.htm') or '')
end,
russia = function(args, certyear)
local award = mw.ustring.lower(args.award or '')
if award == 'million' then
return 'https://web.archive.org/web/20110724033119/http://www.2m-online.ru/gold_n_platinum'
end
return ({
[2003] = 'https://web.archive.org/web/20090124001144/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5069',
[2004] = 'https://web.archive.org/web/20090124001134/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5073',
[2005] = 'https://web.archive.org/web/20090124001149/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5075',
[2006] = 'https://web.archive.org/web/20090607023006/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5076',
[2007] = 'https://web.archive.org/web/20090809124202/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5077',
[2008] = 'https://web.archive.org/web/20090216165239/http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5078',
[2009] = 'https://webcitation.org/5kkNUOygo?url=http://2m-online.ru/gold_n_platinum/detail.php?COUNTRY=5216',
[2010] = 'https://web.archive.org/web/20110207025213/https://lenta.ru/articles/2011/02/05/chart/',
[2011] = 'https://web.archive.org/web/20120310114015/https://lenta.ru/articles/2012/03/09/chart/',
[2012] = 'https://web.archive.org/web/20130115073750/https://lenta.ru/articles/2012/12/28/chart/',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR RUSSIA CERTIFICATION.'})
end,
singapore = function()
return 'https://www.rias.org.sg/rias-accreditations/'
end,
['south africa'] = function(args)
return 'https://www.risa.org.za/website/certification/certifications/?artist='
.. mw.uri.encode(args.artist or '')
.. '&title=' .. mw.uri.encode(args.title or '')
end,
['south korea'] = function(args)
local serviceGbn = (yesno(args.streaming) and 'S1040' or ({
album = 'ALBUM',
single = 'S1020',
})[mw.ustring.lower(args.type or '')])
if not serviceGbn then
return {'MISSING OR INVALID type WAS PROVIDED FOR SOUTH KOREA CERTIFICATION.'}
end
return 'https://circlechart.kr/page_cert/chart.circle?serviceGbn=' .. serviceGbn
end,
spain = function(args)
local type = mw.ustring.lower(args.type or '')
if notblank(args.id) then
return 'https://www.elportaldemusica.es/' .. type .. '/' .. args.id
elseif notblank(args.certweek) then
return 'https://www.promusicae.es/listas-semanales/'
elseif notblank(args.artist) or notblank(args.title) then
return 'https://www.elportaldemusica.es/awards/index?'
.. (notblank(args.artist) and 'AwardsSearch%5Bartist%5D=' .. mw.uri.encode(args.artist) or '')
.. (notblank(args.title) and '&AwardsSearch%5Btitle%5D=' .. mw.uri.encode(args.title) or '')
.. (notblank(args.type) and '&AwardsSearch%5Bgroup%5D=' .. ({
single = 'CANCIONES',
album = 'ALBUMES',
video = 'DVD',
})[type] or '')
end
return 'https://www.promusicae.es/listas-semanales/'
end,
sweden = function(args, certyear, source)
if source == 'artist' then
return 'https://www.sverigetopplistan.se/search?query=' .. mw.uri.encode(args.artist or '')
elseif source == 'chart' then
if not certyear then
return {'MISSING OR INVALID certyear WAS PROVIDED FOR SWEDEN CERTIFICATION.'}
elseif isblank(args.certweek) then
return {'MISSING certweek FOR SWEDEN CERTIFICATION.'}
end
local typeId = ({
single = '41',
album = '54',
})[mw.ustring.lower(args.type or '')]
if not typeId then
return {'MISSING OR INVALID type WAS PROVIDED FOR SWEDEN CERTIFICATION.'}
end
return 'https://www.sverigetopplistan.se/chart/' .. typeId .. '?dspy=' .. certyear .. '&dspp=' .. args.certweek
elseif source == 'grammotex' then
return notblank(args.id) and ('http://sys2.grammotex.se/netdata/grp006.mbr/artdata?sart=' .. args.id)
or {'MISSING id FOR SWEDEN CERTIFICATION.'}
end
return ({
[1999] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-19991.pdf',
[2000] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20002.pdf',
[2001] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20013.pdf',
[2002] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20021.pdf',
[2003] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20033.pdf',
[2004] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20042.pdf',
[2005] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20051.pdf',
[2006] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20061.pdf',
[2007] = 'http://www.ifpi.se/wp/wp-content/uploads/ar-20071.pdf',
[2008] = 'http://www.ifpi.se/wp/wp-content/uploads/guld-platina-20082.pdf',
[2009] = 'http://www.ifpi.se/wp/wp-content/uploads/Guld-Platina-2009.pdf',
[2010] = 'http://www.ifpi.se/wp/wp-content/uploads/%C3%85r-2010.pdf',
[2011] = 'http://www.ifpi.se/wp-content/uploads/Guld-Platina-Cert-2011-Artistordning.pdf',
})[certyear] or (certyear and 'http://www.ifpi.se/wp/wp-content/uploads/guld-platina-1987-1998.pdf'
or {'MISSING certyear FOR SWEDEN CERTIFICATION.'})
end,
switzerland = function(args, certyear)
if notblank(args.title) then
return 'http://www.swisscharts.com/search_certifications.asp?search=' .. mw.uri.encode(args.title, 'WIKI')
elseif notblank(args.artist) then
return 'http://www.swisscharts.com/search_certifications.asp?search=' .. mw.uri.encode(args.artist, 'WIKI')
end
return 'http://www.swisscharts.com/edelmetall/' .. (certyear or '')
end,
taiwan = function()
return 'http://www.rit.org.tw/index.php/our-business/2-6platimun-award/2-6-4certifications-awarded'
end,
turkey = function(_, certyear)
return ({
[2004] = 'http://mu-yap.org/getdata.asp?PID=192',
[2005] = 'http://www.mu-yap.org/news.asp?NID=114',
[2006] = 'http://www.mu-yap.org/news.asp?NID=158',
[2007] = 'http://www.mu-yap.org/news.asp?NID=248',
[2008] = 'http://www.mu-yap.org/getdata.asp?PID=269',
[2009] = 'http://www.mu-yap.org/news.asp?NID=279',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR TURKEY CERTIFICATION.'})
end,
['united kingdom'] = function()
return 'https://www.bpi.co.uk/page/certified-awards'
end,
['united states'] = function(args)
local type = mw.ustring.lower(args.type or '')
return 'https://www.riaa.com/gold-platinum/?tab_active=default-award'
.. '&ar=' .. mw.uri.encode(args.artist or '')
.. '&ti=' .. mw.uri.encode(args.title or '')
.. '&format=' .. (({
album = 'Album',
single = 'Single',
video = 'Video+Longform',
videosingle = 'Video+Single',
ep = 'short+form+album',
})[type] or '')
.. '&type='
.. (yesno(args.Spanish) and 'LA' or '')
.. (type == 'ringtone' and 'MT' or '')
.. '#search_section'
end,
uruguay = function(_, certyear)
return ({
[1999] = 'https://web.archive.org/web/20041201000000/http://www.cudisco.org/premios.htm',
[2000] = 'https://web.archive.org/web/20041201000000/http://www.cudisco.org/premios.htm',
[2001] = 'https://web.archive.org/web/20041201000000/http://www.cudisco.org/premios.htm',
[2002] = 'https://web.archive.org/web/20041201000000/http://www.cudisco.org/premios.htm',
[2005] = 'https://web.archive.org/web/20070626220456/http://www.cudisco.org/premios05.htm',
[2006] = 'https://web.archive.org/web/20070630121819/http://www.cudisco.org/premios.htm',
[2007] = 'https://web.archive.org/web/20080510152342/http://www.cudisco.org/home.htm',
[2008] = 'https://web.archive.org/web/20090309001551/http://www.cudisco.org/home.htm',
[2009] = 'https://web.archive.org/web/20100329105701/http://www.cudisco.org/home.htm',
[2010] = 'https://web.archive.org/web/20110725212429/http://www.cudisco.org/',
[2011] = 'https://web.archive.org/web/20120213115344/http://www.cudisco.org/',
[2012] = 'https://web.archive.org/web/20130825055729/http://www.cudisco.org/',
[2013] = 'https://web.archive.org/web/20140222141339/http://www.cudisco.org/',
[2014] = 'https://web.archive.org/web/20150801100914/http://cudisco.org/',
[2015] = 'https://web.archive.org/web/20160504175625/http://www.cudisco.org/',
[2016] = 'https://web.archive.org/web/20170326075028/http://www.cudisco.org/',
[2017] = 'https://web.archive.org/web/20180321140110/http://www.cudisco.org/',
[2018] = 'https://web.archive.org/web/20190327101606/https://www.cudisco.org/',
})[certyear] or ({(certyear and 'NO URL DATA FOR THE certyear ' or 'MISSING OR INVALID certyear WAS ')
.. 'PROVIDED FOR URUGUAY CERTIFICATION.'})
end,
}
return function (args, urlSource)
local certyear = tonumber(args.certyear)
local source = notblank(args.source) and args.source or urlSource
local region = regions[mw.ustring.lower(args.region or '')]
if not region then return 'Unknown region' end
return region(args, certyear, source)
end