Jump to content

Module:Page assessment raw

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dan Leonard (talk | contribs) at 18:12, 10 July 2025 (This module is explicitly designed to not need dependencies). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

-- Dependencies
require('strict')

-- Packapge to export
local p = {}

-- Namespace for utlity functions
local util = {}

--[[
Entry point for invoking the module.

@param {string} frame.args.page subject page name
@param {string} frame.args.project WikiProject with class assessment
@return {string} The class rating as text, or empty string if none found
]]--
function p.get_class(frame)
	return util.class(frame.args.page, frame.args.project)
end

--[[
Gets the class rating for a page

@param {string} namePage subject page name
@param {string} nameProject WikiProject with class assessment
@returns {string} The class rating as text, or empty string if none found
]]--
function util.class(namePage, nameProject)
	local subjectAssessment = nil
	
	local subjectPage = mw.title.new(namePage)                   -- create new object for given page title
	for _, entry in ipairs(subjectPage.pageAssessments) do       -- iterate over all assessments
		if entry["name"] == nameProject then                     -- if assessment is for given WikiProject
			subjectAssessment = entry                            -- save assessment of given WikiProject
		end
	end
	
    if subjectAssessment ~= nil then                             -- if there are assessments in pageAssessments
        return subjectAssessment["class"]                        -- return class parameter from pageAssessments
    end
	
	return ""
end



-- Export util, for testing purposes
p.test = util
return p