Module:Setlist/AlbumSelector: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
-- Module:Setlist/AlbumSelector | |||
local p = {} | local p = {} | ||
-- | -- Годы, при которых песня будет считаться из "Regional At Best" | ||
function p. | local rabYears = { | ||
["2009"] = true, ["2010"] = true, ["2011"] = true, ["2012"] = true | |||
local | } | ||
-- Годы, при которых песня будет считаться из "Vessel" | |||
local vesselYears = { | |||
["2013"] = true, ["2014"] = true, ["2015"] = true, ["2016"] = true, | |||
["2017"] = true, ["2018"] = true, ["2019"] = true, ["2020"] = true, | |||
["2021"] = true, ["2022"] = true, ["2023"] = true, ["2024"] = true, ["2025"] = true | |||
} | |||
-- Перечень песен, которые одновременно находятся в RAB и Vessel | |||
local conflictSongs = { | |||
["Guns For Hands"] = true, | |||
["Holding On To You"] = true, | |||
["Ode To Sleep"] = true, | |||
["Car Radio"] = true, | |||
["Trees"] = true | |||
} | |||
-- Главная функция | |||
function p.resolveAlbumList(songTitle) | |||
local page = mw.title.getCurrentTitle().text | |||
local year = string.match(page, '%.(%d%d%d%d)$') | |||
if not year then | |||
return nil -- год не указан — вернем nil, и основной модуль использует полные данные | |||
end | |||
local data = mw.loadData('Module:Setlist/Songs') | |||
local | local original = data.songs[songTitle] | ||
local | |||
if not original then | |||
return nil | |||
end | end | ||
-- | -- Фильтрация для конфликтных песен | ||
if conflictSongs[songTitle] then | |||
if year | if rabYears[year] then | ||
return "Vessel" | return {"Regional At Best"} | ||
elseif vesselYears[year] then | |||
return {"Vessel"} | |||
else | |||
return original | |||
end | end | ||
end | end | ||
return original | |||
return | |||
end | end | ||
return p | return p |
Revision as of 19:18, 11 July 2025
Documentation for this module may be created at Module:Setlist/AlbumSelector/doc
-- Module:Setlist/AlbumSelector local p = {} -- Годы, при которых песня будет считаться из "Regional At Best" local rabYears = { ["2009"] = true, ["2010"] = true, ["2011"] = true, ["2012"] = true } -- Годы, при которых песня будет считаться из "Vessel" local vesselYears = { ["2013"] = true, ["2014"] = true, ["2015"] = true, ["2016"] = true, ["2017"] = true, ["2018"] = true, ["2019"] = true, ["2020"] = true, ["2021"] = true, ["2022"] = true, ["2023"] = true, ["2024"] = true, ["2025"] = true } -- Перечень песен, которые одновременно находятся в RAB и Vessel local conflictSongs = { ["Guns For Hands"] = true, ["Holding On To You"] = true, ["Ode To Sleep"] = true, ["Car Radio"] = true, ["Trees"] = true } -- Главная функция function p.resolveAlbumList(songTitle) local page = mw.title.getCurrentTitle().text local year = string.match(page, '%.(%d%d%d%d)$') if not year then return nil -- год не указан — вернем nil, и основной модуль использует полные данные end local data = mw.loadData('Module:Setlist/Songs') local original = data.songs[songTitle] if not original then return nil end -- Фильтрация для конфликтных песен if conflictSongs[songTitle] then if rabYears[year] then return {"Regional At Best"} elseif vesselYears[year] then return {"Vessel"} else return original end end return original end return p