Module:SDcat

-- SDcat Module to check whether local short description matches that on Gratisdata --

local p = {}

--- --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 Gratisdata entity. It returns one of the following tracking categories, as appropriate: For testing purposes, a link prefix |lp= may be set to ":" to make the categories visible. --
 * Category:Short description matches Gratisdata (case-insensitive)
 * Category:Short description is different from Gratisdata
 * Category:Short description with empty Gratisdata description

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

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

return p