Modul:WikidataCheck: Perbedaan antara revisi
Tampilan
Konten dihapus Konten ditambahkan
Hidayatsrf (bicara | kontrib) k Melindungi "Modul:WikidataCheck": --4000+ transklusi; ([Sunting=Hanya untuk pengguna terdaftar otomatis] (selamanya) [Pindahkan=Hanya untuk pengguna terdaftar otomatis] (selamanya)) |
Hidayatsrf (bicara | kontrib) update |
||
Baris 2: | Baris 2: | ||
function p.wikidatacheck(frame) |
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 qid = config.qid or "" |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if not ok then -- not in one of the approved namespaces |
|||
⚫ | |||
⚫ | |||
end |
|||
⚫ | |||
⚫ | |||
if not ok then -- not in one of the approved namespaces |
|||
⚫ | |||
⚫ | |||
end |
|||
local entity |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
entity = mw.wikibase.getEntityObject(qid) |
|||
end |
|||
local propValue = hasProp[1].mainsnak.datavalue.value -- This should eventually iterate over all possible values? |
|||
if not entity then -- no Wikidata item |
|||
⚫ | |||
return "[[Kategori:" .. catbase .. " tidak ada di Wikidata]]" |
|||
⚫ | |||
⚫ | |||
if value == "" then |
|||
⚫ | |||
return nil -- Using Wikidata |
|||
⚫ | |||
end |
|||
return "[[Kategori:" .. catbase .. " berbeda dengan Wikidata]]" -- needs human review :( |
|||
local claims = entity.claims or {} |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
|||
for i, v in ipairs(hasProp) do -- Now we try to iterate over all possible values? |
|||
propValue = (v.mainsnak.datavalue or {}).value |
|||
⚫ | |||
if nocatsame == "" then |
|||
⚫ | |||
else |
|||
return nil -- if nocatsame, the "same as" category is not added |
|||
end |
|||
end |
|||
end |
|||
⚫ | |||
end |
end |
||
Revisi terkini sejak 30 Juli 2021 01.58
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 qid = config.qid 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 qid == "" then
entity = mw.wikibase.getEntityObject()
else
entity = mw.wikibase.getEntityObject(qid)
end
if not entity then -- no Wikidata item
return "[[Kategori:" .. catbase .. " tidak ada di 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 "[[Kategori:" .. catbase .. " tidak ada di 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 "[[Kategori:" .. catbase .. " sama seperti Wikidata]]" -- yay!
else
return nil -- if nocatsame, the "same as" category is not added
end
end
end
return "[[Kategori:" .. catbase .. " berbeda dengan Wikidata]]" -- needs human review :(
end
return p