Module:WikidataIB: Difference between revisions

Content added Content deleted
m (1 revision imported from wikipedia:Module:WikidataIB)
(Per edit request)
Line 1: Line 1:
-- Version: 2021-02-06
-- Version: 2023-07-10
-- Module to implement use of a blacklist and whitelist for infobox fields
-- Module to implement use of a blacklist and whitelist for infobox fields
-- Can take a named parameter |qid which is the Wikidata ID for the article
-- Can take a named parameter |qid which is the Wikidata ID for the article
Line 11: Line 11:
-- whitelist is passed in named parameter |fetchwikidata (or |fwd)
-- whitelist is passed in named parameter |fetchwikidata (or |fwd)


require("strict")
local p = {}
local p = {}


Line 18: Line 19:
-- Module:ISOdate
-- Module:ISOdate
-- Module:DateI18n
-- Module:DateI18n
-- Module:No globals
-- Module:I18n/complex date
-- Module:I18n/complex date
-- Module:Ordinal
-- Module:Ordinal
Line 160: Line 160:
langobj = mw.language.new( langcode )
langobj = mw.language.new( langcode )
else
else
langcode = mw.getCurrentFrame():preprocess( '{{int:lang}}' )
langcode = mw.getCurrentFrame():callParserFunction('int', {'lang'})
if mw.language.isKnownLanguageTag(langcode) then
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new( langcode )
langobj = mw.language.new( langcode )
Line 586: Line 586:
local postfix = (args.postfix or ""):gsub('"', '')
local postfix = (args.postfix or ""):gsub('"', '')
local dtxt = args.dtxt
local dtxt = args.dtxt
local shortname = args.shortname
local shortname = args.shortname or args.sn
local lang = args.lang or "en" -- fallback to default if missing
local lang = args.lang or "en" -- fallback to default if missing
local uselbl = args.uselabel or args.uselbl
local uselbl = args.uselabel or args.uselbl
Line 3,067: Line 3,067:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
p.siteID = function(frame)
p.siteID = function(frame)
local txtlang = frame:preprocess( "{{int:lang}}" ) or ""
local txtlang = frame:callParserFunction('int', {'lang'}) or ""
-- This deals with specific exceptions: be-tarask -> be-x-old
-- This deals with specific exceptions: be-tarask -> be-x-old
if txtlang == "be-tarask" then
if txtlang == "be-tarask" then
Line 3,091: Line 3,091:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
p.projID = function(frame)
p.projID = function(frame)
local txtlang = frame:preprocess( "{{int:lang}}" ) or ""
local txtlang = frame:callParserFunction('int', {'lang'}) or ""
-- This deals with specific exceptions: be-tarask -> be-x-old
-- This deals with specific exceptions: be-tarask -> be-x-old
if txtlang == "be-tarask" then
if txtlang == "be-tarask" then
Line 3,250: Line 3,250:
local url = frame.args.url or ""
local url = frame.args.url or ""
if url:upper() == "NONE" then return nil end
if url:upper() == "NONE" then return nil end
local urls = {}

local quals = {}
local qid = frame.args.qid or ""
local qid = frame.args.qid or ""
if url and url ~= "" then
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
urls[1] = url
if not qid then return nil end
else
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end


local urls = {}
local quals = {}
if url == "" then
local prop856 = mw.wikibase.getBestStatements(qid, "P856")
local prop856 = mw.wikibase.getBestStatements(qid, "P856")
for k, v in pairs(prop856) do
for k, v in pairs(prop856) do
Line 3,271: Line 3,272:
end -- test for website having a value
end -- test for website having a value
end -- loop through website(s)
end -- loop through website(s)
else
urls[1] = url
end
end
if #urls == 0 then return nil end
if #urls == 0 then return nil end