Module:Official website: Difference between revisions

Content added Content deleted
m (1 revision imported)
en>Centrist16
(Created page with "local makeUrl = require('Module:URL')._url local p = {} -- Wrapper for pcall which returns nil on failure. local function quickPcall(func) local success, result = pcall(fun...")
Line 30: Line 30:
local function isEnglish(prop)
local function isEnglish(prop)
local ret = quickPcall(function ()
local ret = quickPcall(function ()
for i, lang in ipairs(prop.qualifiers.P2439) do
for i, lang in ipairs(prop.qualifiers.P407) do
if lang.datavalue.value['numeric-id'] == 1860 then
if lang.datavalue.value['numeric-id'] == 1860 then
return true
return true
Line 71: Line 71:
return e1
return e1
end
end
return ws1._index < ws2._index
return ws1._index < ws2._index
end)
end)
local url = quickPcall(function ()
local url = quickPcall(function ()
Line 87: Line 87:
-- Render the URL link, plus other visible output.
-- Render the URL link, plus other visible output.
local function renderUrl(options)
local function renderUrl(options)
if not options.url then
if not options.url and not options.wikidataurl then
local entity = mw.wikibase.getEntityObject() or {}
return '<strong class="error">' ..
local qid = entity.id
local result = '<strong class="error">' ..
'No URL found. Please specify a URL here or add one to Wikidata.' ..
'No URL found. Please specify a URL here or add one to Wikidata.' ..
'</strong>'
'</strong>'
if qid then
result = result.. ' [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/' .. qid .. '#P856|Edit this at Wikidata]]'
end
return result
end
end
local ret = {}
local ret = {}
ret[#ret + 1] = string.format(
ret[#ret + 1] = string.format(
'<span class="official-website">%s</span>',
'<span class="official-website">%s</span>',
makeUrl(options.url, options.display)
makeUrl(options.url or options.wikidataurl, options.display)
)
)
if options.wikidataurl and not options.url then
local entity = mw.wikibase.getEntityObject() or {}
local qid = entity.id
if qid then
ret[#ret + 1] = '[[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/' .. qid .. '#P856|Edit this at Wikidata]]'
end
end
if options.format == 'flash' then
if options.format == 'flash' then
ret[#ret + 1] = mw.getCurrentFrame():expandTemplate{
ret[#ret + 1] = mw.getCurrentFrame():expandTemplate{
title = 'Link note',
title = 'Color',
args = {note = 'Requires [[Adobe Flash Player]]'}
args = {'#505050', '(Requires [[Adobe Flash Player]])'}
}
}
end
end
Line 117: Line 130:
if not url and not wikidataurl then
if not url and not wikidataurl then
category = 'Official website missing URL'
category = 'Official website missing URL'
elseif not url and wikidataurl then
elseif not url and wikidataurl then
return ''
return ''
elseif url and wikidataurl then
elseif url and wikidataurl then
Line 130: Line 143:


function p._main(args)
function p._main(args)
local url = args[1] or args.URL or args.url
local wikidataurl = fetchWikidataUrl()
local wikidataurl = fetchWikidataUrl()
local url = args[1] or args.URL or args.url or wikidataurl
local formattedUrl = renderUrl{
local formattedUrl = renderUrl{
url = url,
url = url,
wikidataurl = wikidataurl,
display = args[2] or args.name or 'Official website',
display = args[2] or args.name or 'Official website',
mobile = args.mobile,
format = args.format,
format = args.format
mobile = args.mobile
}
}
return formattedUrl .. renderTrackingCategory(url, wikidataurl)
return formattedUrl .. renderTrackingCategory(url, wikidataurl)