Module:Métiers et genre

 Documentation[créer] [purger]
local p={}

local redirect = require("Module:Redirect")
local qid = require("Module:Numéro Q")
local wd = require("Module:Wikidata")

--[[ Fonction compagnion pour "Modèle:Article_principal/Métiers et genre"
    La requête est considérée comme "chère" selon le nombre d’article catégorisé ou le nombre de sous-catégorie
	
	Souvent les grosses catégories comme "Catégorie:Footballeur" sont vides, mais en contrepartie ont plein de sous-catégories
--]]

function p.may_be_expensive(frame)
	local category = frame.args[1]
	
	local max_articles = frame.args["seuil_articles"] or 2000
	local max_subcats = frame.args["seuil_subcats"] or 10
	
	local number_of_articles = tonumber(
		frame:preprocess(
			"{{PAGESINCATEGORY:" .. category .. "|pages}}"))
	if number_of_articles > max_articles then
		return "cher"
	else
		local number_of_subcats = tonumber(frame:preprocess("{{PAGESINCATEGORY:" .. category .. "|subcats}}"))
		if number_of_subcats > max_subcats then
			return "cher"
		end
	end
	return ""
end

-- Deviner l’identifiant du metier, depuis l’argument ou depuis Wikidata si le métier est une redirection
function p.metier_qid(frame)
	if redirect.luaIsRedirect(frame.args[1]) then
		return wd.getIds(nil, {property="P301"})[1]
	else
		return qid._numero(frame.args[1])
	end
end


return p