Модуль:List: відмінності між версіями
| Admin (обговорення | внесок)  (Створена сторінка: local p = {}  function p.FetchData(frame)     local categoryName = "Учасники_спільноти_MCC"  -- category name as per your URL     local titles = mw.site.stats.getPagesInCategory(categoryName, "pages")      -- Start the wikitable     local output = '{| class="wikitable"\n'     output = output .. '! Nickname !! Prize Pool !! Date Added !! Recruiter\n'      -- Process each page in the category     for _, pageTitle in ipairs(titles) do...) | Admin (обговорення | внесок)  Немає опису редагування | ||
| Рядок 2: | Рядок 2: | ||
| function p.FetchData(frame) | function p.FetchData(frame) | ||
|      local categoryName = "Учасники_спільноти_MCC"  |     -- This function fetches pages from a category and extracts information from the 'MCC Player' template. | ||
|      local  |      local categoryName = "Учасники_спільноти_MCC" -- Set the correct category name | ||
|      local continue = nil | |||
|     local pages = {} | |||
|     -- Fetching pages from the category | |||
|     repeat | |||
|         local query = mw.title.makeTitle(14, categoryName):categoryMembers{continue = continue} | |||
|         for _, page in ipairs(query) do | |||
|             table.insert(pages, page.title) | |||
|         end | |||
|         continue = query.continue | |||
|     until not continue | |||
|      -- Start the wikitable |      -- Start the wikitable | ||
| Рядок 9: | Рядок 20: | ||
|      output = output .. '! Nickname !! Prize Pool !! Date Added !! Recruiter\n' |      output = output .. '! Nickname !! Prize Pool !! Date Added !! Recruiter\n' | ||
|      -- Process each page  |      -- Process each page | ||
|      for _, pageTitle in ipairs( |      for _, pageTitle in ipairs(pages) do | ||
|          local  |          local page = mw.title.new(pageTitle) | ||
|         local content = page:getContent() | |||
|         -- Extract data using patterns (very basic pattern matching, customize as needed) | |||
|         local nickname = content:match("| nickname = ([^\n]+)") | |||
|         local prizePool = content:match("| prize_pool = ([^\n]+)") | |||
|         local dateAdded = content:match("| date_added = ([^\n]+)") | |||
|         local recruiterLink = content:match("| recruiter = %[%[([^|%]]+)") | |||
|         local recruiter = recruiterLink and mw.title.new(recruiterLink):getPrefixedText() or 'N/A' | |||
|          -- Append to the table |          -- Append to the table | ||
|          output = output .. '|-\n' |          output = output .. '|-\n' | ||
|          output = output .. string.format('| %s || %s || %s || %s\n', nickname or 'N/A', prizePool or 'N/A', dateAdded or 'N/A', recruiter  |          output = output .. string.format('| %s || %s || %s || %s\n', nickname or 'N/A', prizePool or 'N/A', dateAdded or 'N/A', recruiter) | ||
|      end |      end | ||
|      -- Close the wikitable |      -- Close the wikitable | ||
|      output = output .. '|}' |      output = output .. '|}' | ||
|      return output |      return output | ||
| end | end | ||
| return p | return p | ||
Версія за 22:26, 22 квітня 2024
Документацію для цього модуля можна створити у Модуль:List/документація
local p = {}
function p.FetchData(frame)
    -- This function fetches pages from a category and extracts information from the 'MCC Player' template.
    local categoryName = "Учасники_спільноти_MCC" -- Set the correct category name
    local continue = nil
    local pages = {}
    -- Fetching pages from the category
    repeat
        local query = mw.title.makeTitle(14, categoryName):categoryMembers{continue = continue}
        for _, page in ipairs(query) do
            table.insert(pages, page.title)
        end
        continue = query.continue
    until not continue
    -- Start the wikitable
    local output = '{| class="wikitable"\n'
    output = output .. '! Nickname !! Prize Pool !! Date Added !! Recruiter\n'
    -- Process each page
    for _, pageTitle in ipairs(pages) do
        local page = mw.title.new(pageTitle)
        local content = page:getContent()
        
        -- Extract data using patterns (very basic pattern matching, customize as needed)
        local nickname = content:match("| nickname = ([^\n]+)")
        local prizePool = content:match("| prize_pool = ([^\n]+)")
        local dateAdded = content:match("| date_added = ([^\n]+)")
        local recruiterLink = content:match("| recruiter = %[%[([^|%]]+)")
        local recruiter = recruiterLink and mw.title.new(recruiterLink):getPrefixedText() or 'N/A'
        
        -- Append to the table
        output = output .. '|-\n'
        output = output .. string.format('| %s || %s || %s || %s\n', nickname or 'N/A', prizePool or 'N/A', dateAdded or 'N/A', recruiter)
    end
    -- Close the wikitable
    output = output .. '|}'
    return output
end
return p