Module:CategoryReporter: Difference between revisions

additional function to use with ExternalData
remove the non-working externalData functionality
 
Line 184: Line 184:
end
end


-- Function to get category info and combine with the External Data extension
function p.categoryWithExternalData(frame)
    local categoryName = frame.args[1] or frame:getParent().args[1]
    if not categoryName then
        return "Error: Category name must be provided"
    end
   
    -- Remove "Category:" prefix if present
    categoryName = categoryName:gsub("^Category:", "")
   
    -- Get category pages via API
    local api = mw.Api.new()
    local data = api:get({
        action = 'query',
        list = 'categorymembers',
        cmtitle = 'Category:' .. categoryName,
        cmtype = 'page',
        cmlimit = 500
    })
   
    local result = ""
    if data and data.query and data.query.categorymembers then
        result = result .. "== Category '" .. categoryName .. "' with External Data ==\n"
        result = result .. "{| class=\"wikitable sortable\"\n"
        result = result .. "! Page Title !! Last Modified !! External Reference\n"
       
        for _, page in ipairs(data.query.categorymembers) do
            -- For each page, we'll use its title to generate an external data reference
            -- This part would be customized based on the actual external data source
            local pageTitle = page.title
           
            -- This is where we would add ExternalData functionality
            -- The actual implementation depends on what external data you want to integrate
            result = result .. "|-\n"
            result = result .. "| [[" .. pageTitle .. "]] || {{#external_value:lastmodified|page=" .. pageTitle .. "}} || {{#external_value:reference|page=" .. pageTitle .. "}}\n"
        end
       
        result = result .. "|}\n"
    else
        result = "No pages found in category '" .. categoryName .. "'"
    end
   
    return result
end


return p
return p