Module:WikidataCheck
40x40px | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
40x40px | The following is the documentation for Template:WikidataCheck. |
Template:WikidataCheck compares a template parameter to a Wikidata property and adds pages using the template to one of three categories: not in, same as, or different from Wikidata. It is powered by the Lua module Module:WikidataCheck.
Contents
Usage
To add only articles to the categories:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix}}
To add pages in other namespaces to the categories:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix|namespaces=0,14}}
To prevent adding pages to a "same as" category:
{{WikidataCheck|property=P###|value={{{value|}}}|category=Category prefix|nocatsame=1}}
Parameters
- Required
|property=
is the P### of the property. The "P" must be uppercase.|value=
is the value to use from the template. This would be something like{{{id|}}}
or{{{id|{{{1|}}}}}}
|category=
is the prefix to use in front of the category names. The categories created are "[prefix] not in Wikidata", "[prefix] same as Wikidata", and "[prefix] different from Wikidata".- It is recommended you create these categories with
{{hiddencat}}
before applying this template.
- It is recommended you create these categories with
- Optional
|namespaces=
is a comma separated list of the numerical namespaces to apply the template in. The default is 0, which is just article space.|nocatsame=
if set to any value will prevent adding pages to a "same as" category. The "not in" and "different from" categories are still added, where applicable.
Example
For {{MusicBrainz artist}}
, which checks Script error: No such module "Wd". (P434), the following code would be added:
{{WikidataCheck|property=P434|value={{{mbid|{{{id|{{{1|}}}}}}}}}|category=MusicBrainz artist}}
Articles using that template with an ID would be placed in one of the following categories:
- Category:MusicBrainz artist not in Wikidata
- Category:MusicBrainz artist same as Wikidata
- Category:MusicBrainz artist different from Wikidata
See also
- {{Tracks Wikidata}} for use in template documentation
- {{Wikidata tracking category}} for use in hidden tracking categories
local p = {} function p.wikidatacheck(frame) local pframe = frame:getParent() local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template local property = config.property local value = config.value or "" local catbase = config.category local namespaces = config.namespaces local nocatsame = config.nocatsame or "" local ok = false -- one-way flag to check if we're in a good namespace local ns = mw.title.getCurrentTitle().namespace for v in mw.text.gsplit( namespaces, ",", true) do if tonumber(v) == ns then ok = true end end if not ok then -- not in one of the approved namespaces return "" end local entity = "" if not entity then -- no Wikidata item return "[[Category:" .. catbase .. " not in Wikidata]]" end if value == "" then return nil -- Using Wikidata end local claims = entity.claims or {} local hasProp = claims[property] if not hasProp then -- no claim of that property return "[[Category:" .. catbase .. " not in Wikidata]]" -- bad. Bot needs to add the property end for i, v in ipairs(hasProp) do -- Now we try to iterate over all possible values? propValue = (v.mainsnak.datavalue or {}).value if propValue == value then if nocatsame == "" then return "[[Category:" .. catbase .. " same as Wikidata]]" -- yay! else return nil -- if nocatsame, the "same as" category is not added end end end return "[[Category:" .. catbase .. " different from Wikidata]]" -- needs human review :( end return p