8,957
edits
No edit summary |
No edit summary Tag: Reverted |
||
Line 88: | Line 88: | ||
["Paladin Strait"] = {"Clancy"}, | ["Paladin Strait"] = {"Clancy"}, | ||
["Time To Say Goodbye"] = {"Johnny Boy"} | ["Time To Say Goodbye"] = {"Johnny Boy"} | ||
} | } | ||
-- Определяем цвета альбомов | -- Определяем цвета альбомов | ||
local albumColors = { | local albumColors = { | ||
Line 100: | Line 100: | ||
["Johnny Boy"] = "#CECECE", | ["Johnny Boy"] = "#CECECE", | ||
} | } | ||
-- Определяем ссылки для альбомов | -- Определяем ссылки для альбомов | ||
local albumLinks = { | local albumLinks = { | ||
["Twenty One Pilots"] = "Twenty One Pilots (album)", | ["Twenty One Pilots"] = "Twenty One Pilots (album)", | ||
["Regional | ["Regional At Best"] = "Regional At Best", | ||
["Vessel"] = "Vessel (album)", | ["Vessel"] = "Vessel (album)", | ||
["Blurryface"] = "Blurryface (album)", | ["Blurryface"] = "Blurryface (album)", | ||
["Trench"] = "Trench (album)", | ["Trench"] = "Trench (album)", | ||
["Scaled | ["Scaled And Icy"] = "Scaled And Icy", | ||
["Johnny Boy | ["Johnny Boy"] = "Johnny Boy", | ||
} | } | ||
-- Вспомогательная функция для проверки наличия элемента в таблице | |||
local function tableContains(table, element) | |||
for _, value in ipairs(table) do | |||
if value == element then | |||
return true | |||
end | |||
end | |||
return false | |||
end | |||
-- Функция для фильтрации песен на основе года в названии страницы | |||
local function filterSongsByPageName(songs, pageName) | |||
local filteredSongs = {} | |||
-- Проверяем, заканчивается ли название страницы на .2009, .2010, .2011 или .2012 | |||
local isPre2013 = pageName:match("%.20(09|10|11|12)$") | |||
for song, albums in pairs(songs) do | |||
local filteredAlbums = {} | |||
for _, album in ipairs(albums) do | |||
if isPre2013 then | |||
-- До 2013 года: песни из Vessel и Regional At Best показываем только в Regional At Best | |||
if album == "Vessel" and tableContains(albums, "Regional At Best") then | |||
-- Пропускаем Vessel, если песня есть в Regional At Best | |||
elseif album == "Regional At Best" then | |||
table.insert(filteredAlbums, album) | |||
else | |||
table.insert(filteredAlbums, album) | |||
end | |||
else | |||
-- После 2012 года: песни из Regional At Best и Vessel показываем только в Vessel | |||
if album == "Regional At Best" and tableContains(albums, "Vessel") then | |||
-- Пропускаем Regional At Best, если песня есть в Vessel | |||
elseif album == "Vessel" then | |||
table.insert(filteredAlbums, album) | |||
else | |||
table.insert(filteredAlbums, album) | |||
end | |||
end | |||
end | |||
filteredSongs[song] = filteredAlbums | |||
end | |||
return filteredSongs | |||
end | |||
-- Основная функция для возврата данных | |||
local function getData(frame) | |||
-- Получаем название текущей страницы | |||
local pageName = frame:getParent():getTitle() | |||
local filteredSongs = filterSongsByPageName(songs, pageName) | |||
return { | |||
songs = filteredSongs, | |||
albumColors = albumColors, | |||
albumLinks = albumLinks, | |||
} | |||
end | |||
return { | return { | ||
getData = getData, | |||
songs = songs, | songs = songs, | ||
albumColors = albumColors, | albumColors = albumColors, | ||
albumLinks = albumLinks, | albumLinks = albumLinks, | ||
} | } |