Jump to content

Module:SDcat: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
move the catching of empty ID to subroutine
change order of parameters passed to subroutine - optional parameters last
Line 20: Line 20:


-- function exported for use in other modules
-- function exported for use in other modules
-- (Wikidata entity-ID, local short description, link prefix)
-- (local short description, Wikidata entity-ID, link prefix)
p._setCat = function(itemID, sdesc, lp)
p._setCat = function(sdesc, itemID, lp)
if itemID == "" then itemID = nil end
if itemID == "" then itemID = nil end
-- Wikidata description field
-- Wikidata description field
Line 42: Line 42:
-- link prefix, strip quotes
-- link prefix, strip quotes
local lp = mw.text.trim(frame.args.lp or ""):gsub('"', '')
local lp = mw.text.trim(frame.args.lp or ""):gsub('"', '')
return p._setCat(itemID, sdesc, lp)
return p._setCat(sdesc, itemID, lp)
end
end



Revision as of 22:34, 3 August 2020

--[[
SDcat
Module to check whether local short description matches that on Wikidata
--]]

local p = {}

-------------------------------------------------------------------------------
--[[
setCat has the qid of a Wikidata entity passed as |qid=
(it defaults to the associated qid of the current article if omitted)
and the local short description passed as |sd=
It returns a category if there is an associated Wikidata entity.
It returns one of the following tracking categories, as appropriate:
* Category:Short description matches Wikidata (case-insensitive)
* Category:Short description is different from Wikidata
* Category:Short description with empty Wikidata description
For testing purposes, a link prefix |lp= may be set to ":" to make the categories visible.
--]]

-- function exported for use in other modules
-- (local short description, Wikidata entity-ID, link prefix)
p._setCat = function(sdesc, itemID, lp)
	if itemID == "" then itemID = nil end
	-- Wikidata description field
	local wdesc = (mw.wikibase.getDescription(itemID) or ""):lower()
	if wdesc == "" then
		return "[[" .. lp .. "Category:Short description with empty Wikidata description]]"
	elseif wdesc == sdesc then
		return "[[" .. lp .. "Category:Short description matches Wikidata]]"
	else
		return "[[" .. lp .. "Category:Short description is different from Wikidata]]"
	end
end

-- function exported for call from #invoke
p.setCat = function(frame)
	-- Wikidata entity-ID
	local itemID = mw.text.trim(frame.args.qid or "")
	-- local short description
	local sdesc = mw.text.trim(frame.args.sd or ""):lower()
	-- link prefix, strip quotes
	local lp = mw.text.trim(frame.args.lp or ""):gsub('"', '')
	return p._setCat(sdesc, itemID, lp)
end

return p