Module:SDcat: Difference between revisions
Jump to navigation
Jump to search
r>Excelsis Created page with "--SDcat Module to check whether local short description matches that on Gratisdata -- local p = {} ---------------------------------------------------------------------..." |
Cocopuff2018 (talk | contribs) m 1 revision imported: r |
(No difference)
|
Latest revision as of 22:29, 13 January 2025
Documentation for this module may be created at Module:SDcat/doc
--[[
SDcat
Module to check whether local short description matches that on Gratisdata
--]]
local p = {}
-------------------------------------------------------------------------------
--[[
setCat has the qid of a Gratisdata 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 Gratisdata entity.
It returns one of the following tracking categories, as appropriate:
* Category:Short description matches Gratisdata (case-insensitive)
* Category:Short description is different from Gratisdata
* Category:Short description with empty Gratisdata 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, 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