Modul:SDcat: Unterschied zwischen den Versionen
K (RexxS moved page Module:Sandbox/RexxS/SDcat to Module:SDcat without leaving a redirect: ready for main module space) |
K (11 Versionen von wpen:Module:SDcat importiert) |
||
| (7 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
| Zeile 13: | Zeile 13: | ||
It returns a category if there is an associated Wikidata entity. | It returns a category if there is an associated Wikidata entity. | ||
It returns one of the following tracking categories, as appropriate: | It returns one of the following tracking categories, as appropriate: | ||
* Category:Short description matches Wikidata ( | * Category:Short description matches Wikidata (case-insensitive) | ||
* Category:Short description is different from Wikidata | * Category:Short description is different from Wikidata | ||
* Category:Short description with empty Wikidata description | * Category:Short description with empty Wikidata description | ||
| Zeile 20: | Zeile 20: | ||
-- function exported for use in other modules | -- function exported for use in other modules | ||
-- (Wikidata entity-ID | -- (local short description, Wikidata entity-ID, link prefix) | ||
p._setCat = function(itemID | p._setCat = function(sdesc, itemID, lp) | ||
if not mw.wikibase then return nil end | |||
if itemID == "" then itemID = nil end | |||
-- Wikidata description field | -- Wikidata description field | ||
local wdesc = (mw.wikibase.getDescription(itemID) or ""):lower() | local wdesc = (mw.wikibase.getDescription(itemID) or ""):lower() | ||
| Zeile 35: | Zeile 37: | ||
-- function exported for call from #invoke | -- function exported for call from #invoke | ||
p.setCat = function(frame) | 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() | |||
-- Wikidata entity-ID | -- Wikidata entity-ID | ||
local itemID = mw.text.trim( | local itemID = mw.text.trim(args.qid or "") | ||
-- link prefix, strip quotes | -- link prefix, strip quotes | ||
local lp = mw.text.trim( | local lp = mw.text.trim(args.lp or ""):gsub('"', '') | ||
return p._setCat(itemID | return p._setCat(sdesc, itemID, lp) | ||
end | end | ||
return p | return p | ||
Aktuelle Version vom 17. Februar 2023, 01:42 Uhr
Die Dokumentation für dieses Modul kann unter Modul:SDcat/doc erstellt werden
--[[
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 not mw.wikibase then return nil end
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)
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()
-- Wikidata 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