Modulu:Wikidata: berrikuspenen arteko aldeak
Ezabatutako edukia Gehitutako edukia
fix negative years |
update from ca.wiki: alternative values of property, new format musical-notation |
||
1. lerroa:
-- version
local p = {}
89. lerroa:
loadI18n()
local function case(
if
return
end
return cases[localcase](
end
263. lerroa:
local function printDatatypeMath(data)
return mw.getCurrentFrame():callParserFunction('#tag:math', data)
local function printDatatypeMusicalNot(data)
end
271 ⟶ 275 lerroa:
return expandBraces(mw.ustring.gsub(parameters.formatting, '$1', data), parameters.formatting)
elseif parameters.case then
return case(
else
return data
346 ⟶ 350 lerroa:
if string.sub(parameters.formatting or '', 1, 4) == "unit" or parameters.convert then
-- example "unit": "http://www.wikidata.org/entity/Q174728"
local
if string.sub(
if parameters.convert and parameters.convert ~= unit_id then
-- convert units
local conv_temp = { -- formulae for temperatures ºC, ºF, ªK: [from] = {[to] = 'formula'}
['Q25267'] = {['Q42289'] = '$1*1.8+32', ['Q11597'] = '$1+273.15'},
local conversion = mw.wikibase.getAllStatements(unitID, 'P2442') -- conversion to standard unit▼
['Q42289'] = {['Q25267'] = '($1-32)/1.8', ['Q11597'] = '($1+459.67)*5/9'},
table.insert(conversion, mw.wikibase.getBestStatements(unitID, 'P2370')[1]) -- conversion to SI unit▼
['Q11597'] = {['Q25267'] = '$1-273.15', ['Q42289'] = '($1-273.15)*1.8000+32.00'}
local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(conv_temp[unit_id][parameters.convert], "$1", amount))
▲ end
unit_id = parameters.convert
if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue▼
▲ local
▲ table.insert(
▲ if conv_unit == parameters.convert then
▲ if conv.mainsnak.snaktype == 'value' then -- no somevalue nor novalue
▲ local amount_f = mw.getCurrentFrame():callParserFunction('#expr', mw.ustring.gsub(factor, "$1", amount))
if
▲ amount = roundPrecision(amount, tonumber(amount_f))
end▼
▲ else
▲ if conv_unit == "http://www.wikidata.org/entity/" .. parameters.convert then
▲ factor = tonumber(conv.mainsnak.datavalue.value.amount)
break
end
385 ⟶ 382 lerroa:
local unit_symbol = ''
if parameters.lang[1] == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
unit_symbol = require(wiki.module_title .. "/Units").getUnit(amount, '',
end
if unit_symbol == '' then
unit_symbol = unitSymbol(
end
if unit_symbol then
396 ⟶ 393 lerroa:
if suffix == '' then
-- get unit name
local unit_label, lang = getLabelByLangs(
if lang == wiki.langcode and pcall(require, wiki.module_title .. "/Units") then
suffix = " " .. require(wiki.module_title .. "/Units").getUnit(amount, unit_label,
else
suffix = " " .. (unit_label or
end
end
428 ⟶ 425 lerroa:
calendar_add = " <sup>(" .. mw.message.new('Wikibase-time-calendar-' .. calendar_model[calendar_id]):inLanguage(parameters.lang[1]):plain() .. ")</sup>"
end
end▼
local function d(f, t)▼
local ts = t or timestamp▼
local form = type(f) == "function" and f(ts) or f -- function in i18n.datetime[precision]▼
if string.sub(ts, 1, 1) == '-' then ts = '+' .. string.sub(ts, 2) end -- formatDate() only supports years from 0▼
return mw.language.new(parameters.lang[1]):formatDate(form, ts)▼
end
435 ⟶ 439 lerroa:
end
return t
▲ end
▲ local function d(f, t)
▲ local ts = t or timestamp
▲ local form = type(f) == "function" and f(ts) or f -- function in i18n.datetime[precision]
▲ if string.sub(ts, 1, 1) == '-' then ts = '+' .. string.sub(ts, 2) end
▲ return mw.language.new(parameters.lang[1]):formatDate(form, ts)
end
508 ⟶ 505 lerroa:
local parameter = parameters.formatting
local labelcase = label or sitelink
if parameters.
labelcase = feminineForm(entityId, lang) or labelcase
▲ end
end
local ret1, ret2
611 ⟶ 607 lerroa:
if snak.datatype == 'math' then
return printDatatypeMath(snak.datavalue.value)
elseif snak.datatype == 'musical-notation' then
return printDatatypeMusicalNot(snak.datavalue.value)
elseif snak.datatype == "url" then
return printDatavalueUrl(snak.datavalue.value, parameters)
777 ⟶ 775 lerroa:
function p.getSiteLink(frame)
require(wiki.module_title .. '/debug').track('getSiteLink')
local id = frame.args[1]
if id == if id == nil then
return
return mw.wikibase.getSitelink(id, frame.args[2])
end
799 ⟶ 803 lerroa:
end
local function tableParameters(args, parameters, column
local column_params = mw.clone(parameters)
column_params.formatting = args["colformat"..column]; if column_params.formatting == "" then column_params.formatting = nil end
column_params.convert = args["convert" .. column]
if args["case" .. column] then
▲ end
end
return column_params
859 ⟶ 858 lerroa:
local showerrors = args["showerrors"]
local default = args["default"]
if default then showerrors = nil end▼
local editicon = not (args.editicon == "false" or args.editicon == "no")
local parameters = {["id"] = id, ["property"] = property, ["formatting"] = formatting, ["convert"] = convert,
["list"] = list, ["case"] = case, ["editicon"] = editicon,
["separator"] = separator, ["conjunction"] = conjunction, ["qseparator"] = separator, ["qconjunction"] = conjunction}
899. lerroa:
blacklist, blacklisted = setWhiteOrBlackList("blacklist", #qualifierId, args)
end
▲ if default then showerrors = nil end
-- fetch property
local claims
for p in string.gmatch(property, 'P%d+') do
claims = findClaims(id, p)
if claims and claims[1] then
break
end
if not claims or not claims[1] then
if showerrors then return printError("property-not-found") else return default end
923 ⟶ 928 lerroa:
end
end
local gender_requested = false
if parameters.case == "gender" or idgender then
937 ⟶ 941 lerroa:
if gender_requested then
if feminineGender(idgender or id) then
▲ if parameters.case == "gender" or idgender then
▲ end
end
end
983 ⟶ 984 lerroa:
end
if parameters.formatting == "table" then
local params = tableParameters(args, parameters, "0"
value, sortkey, error = getValueOfClaim(claim, nil, params)
if value then
999 ⟶ 1.000 lerroa:
for i, qual in ipairs(qualifierId) do
local j = tostring(i)
params = tableParameters(args, parameters, j
local valueq, sortkeyq, valueraw
if qual == property then -- hack for getting the property with another formatting, i.e. colformat1=raw
1.243 ⟶ 1.244 lerroa:
if label then
label = case(
end
|