Немає опису редагування
Немає опису редагування
Рядок 3: Рядок 3:
function p.fetchRandomMembers(frame)
function p.fetchRandomMembers(frame)
     local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members
     local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members
    local category = mw.title.makeTitle(14, categoryName)  -- Namespace 14 is for categories
    local members = category:getCategoryMembers()
     local count = 4  -- Number of random members to fetch
     local count = 4  -- Number of random members to fetch
    local titles = mw.site.randomPagesInCategory(categoryName, count, 'all')  -- Get random pages from category
     local output = '<ul>\n'
     local output = '<ul>\n'
     for _, title in ipairs(titles) do
   
         output = output .. '<li><a href="/wiki/' .. mw.text.encode(title.fullText) .. '">' .. title.text .. '</a></li>\n'
    -- Shuffle the array of members randomly and select the top few
    local shuffled = {}
     for index, value in ipairs(members) do
         local pos = math.random(1, #shuffled+1)
        table.insert(shuffled, pos, value)
     end
     end
   
    for i = 1, math.min(count, #shuffled) do
        local title = shuffled[i].fullText
        output = output .. '<li><a href="/wiki/' .. mw.text.encode(title) .. '">' .. mw.text.decode(title) .. '</a></li>\n'
    end
   
     output = output .. '</ul>\n'
     output = output .. '</ul>\n'
     return output
     return output

Версія за 21:06, 22 квітня 2024

Документацію для цього модуля можна створити у Модуль:Players/документація

local p = {}

function p.fetchRandomMembers(frame)
    local categoryName = 'Учасники_спільноти_MCC'  -- The category from which to fetch members
    local category = mw.title.makeTitle(14, categoryName)  -- Namespace 14 is for categories
    local members = category:getCategoryMembers()
    local count = 4  -- Number of random members to fetch
    local output = '<ul>\n'
    
    -- Shuffle the array of members randomly and select the top few
    local shuffled = {}
    for index, value in ipairs(members) do
        local pos = math.random(1, #shuffled+1)
        table.insert(shuffled, pos, value)
    end
    
    for i = 1, math.min(count, #shuffled) do
        local title = shuffled[i].fullText
        output = output .. '<li><a href="/wiki/' .. mw.text.encode(title) .. '">' .. mw.text.decode(title) .. '</a></li>\n'
    end
    
    output = output .. '</ul>\n'
    return output
end

return p