|
|
Line 90: |
Line 90: |
| } | | } |
|
| |
|
| -- Определяем цвета альбомов
| |
| local albumColors = { | | local albumColors = { |
| ["Twenty One Pilots"] = "#87B22A", | | ["Twenty One Pilots"] = "#87B22A", |
Line 101: |
Line 100: |
| } | | } |
|
| |
|
| -- Определяем ссылки для альбомов
| |
| local albumLinks = { | | local albumLinks = { |
| ["Twenty One Pilots"] = "Twenty One Pilots (album)", | | ["Twenty One Pilots"] = "Twenty One Pilots (album)", |
Line 111: |
Line 109: |
| ["Johnny Boy"] = "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, |
| } | | } |