Module:Setlist/AlbumSelector: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Created page with "local p = {} -- ВСПОМОГАТЕЛЬНАЯ ФУНКЦИЯ: Получение года из названия страницы function p.extractYear(title) -- ищет ".20XX" или ".19XX" в конце строки local year = mw.ustring.match(title, "%.([12]%d%d%d)$") return year and tonumber(year) end -- Определяет альбом по году для песен, входящих в Regional At Best и Vessel function p.detectAlbumByYear(ye...")
 
No edit summary
Line 1: Line 1:
local p = {}
local p = {}


-- ВСПОМОГАТЕЛЬНАЯ ФУНКЦИЯ: Получение года из названия страницы
-- Функция для определения альбома на основе года в заголовке страницы
function p.extractYear(title)
function p.getAlbumForSong(frame)
     -- ищет ".20XX" или ".19XX" в конце строки
     -- Получаем название текущей страницы
     local year = mw.ustring.match(title, "%.([12]%d%d%d)$")
     local pageTitle = mw.title.getCurrentTitle().text
     return year and tonumber(year)
      
end
    -- Определяем списки годов для Regional At Best и Vessel
 
    local regionalAtBestYears = { "2009", "2010", "2011", "2012" }
-- Определяет альбом по году для песен, входящих в Regional At Best и Vessel
     local vesselYears = { "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025" }
function p.detectAlbumByYear(year)
   
     if not year then return "Vessel" end -- По умолчанию Vessel, если год не определен
    -- Проверяем, заканчивается ли заголовок страницы на указанные годы
     if year <= 2012 then
     for _, year in ipairs(regionalAtBestYears) do
        return "Regional At Best"
        if pageTitle:match("%." .. year .. "$") then
    else
            return "Regional At Best"
         return "Vessel"
         end
     end
     end
end
   
 
    for _, year in ipairs(vesselYears) do
-- Выбирает альбом для песни на основе данных и года страницы
        if pageTitle:match("%." .. year .. "$") then
function p.selectAlbum(songTitle, albums, year)
            return "Vessel"
    if not albums then
        end
        return { "Non-Album" }
     end
     end
 
   
     -- Проверяем, входит ли песня одновременно в Regional At Best и Vessel
     -- Если год не найден, возвращаем Vessel по умолчанию
     if #albums == 2 and
     return "Vessel"
      ((albums[1] == "Regional At Best" and albums[2] == "Vessel") or
        (albums[1] == "Vessel" and albums[2] == "Regional At Best")) then
        local forcedAlbum = p.detectAlbumByYear(year)
        return { forcedAlbum }
    end
 
    -- Для всех остальных песен возвращаем альбомы из data.songs
    return albums
end
end


return p
return p

Navigation menu