Модуль:Wikidata.p1082
Курӑнакан калӑплав
Для документации этого модуля может быть создана страница Модуль:Wikidata.p1082/doc
local p = {}
-- дата без источника
function p.formatDate( context, options, statement )
local snak = ''
--Date
if ( statement.qualifiers and statement.qualifiers.P585 ) then
-- context.formatSnak( options, statement.qualifiers.P585[1] ) - викифицирует дату что не желательно
snak = snak .. mw.wikibase.renderSnak( statement.qualifiers.P585[1] )
end
return snak
end
-- дата с источником
function p.formatDateRefClaim( context, options, statement )
local snak = p.formatDate( context, options, statement )
--References
if ( options.references ) then
snak = snak .. context.formatRefs( options, statement );
end
return snak
end
-- голые данные без точности
function p.formatSnakDeafult( context, options, snak )
if (snak and snak.datavalue and snak.datavalue.value and snak.datavalue.type == 'quantity') then
local amount = string.gsub(snak.datavalue.value['amount'], '^%+', '')
return tonumber( amount )
end
context.formatSnak( options, snak ) -- попытка финта ушами
return context.formatValueDefault( context, options, snak.datavalue.value)
end
-- данные без источника, даты и оформления
function p.formatQuantityDeafult( context, options, statement )
local snak = p.formatSnakDeafult(context, options, statement.mainsnak )
return snak
end
-- данные без источника и даты
function p.formatQuantityWithoutRefClaim( context, options, statement )
local lang = mw.language.getContentLanguage()
local snak = lang:formatNum( p.formatSnakDeafult( context, options, statement.mainsnak ) )
return snak
end
local oldresult=nil
function p.trent(datavalue)
local trent=''
if (datavalue and datavalue.value and datavalue.type == 'quantity') then
local amount = string.gsub(datavalue.value['amount'], '^%+', '')
local result = tonumber( amount )
if(oldresult) then
if (result < oldresult) then trent = '<span style="color: red; font-weight:bold; font-size: larger;">↘</span>'
elseif (result > oldresult) then trent = '<span style="color: #0c0; font-weight:bold; font-size: larger;">↗</span>'
else trent = '<span style="color:#0AF;">→</span>' end
end
oldresult=result
end
return trent
end
-- данные без источника и даты, но с трендом
function p.formatTQuantityWithoutRefClaim( context, options, statement )
return p.trent(statement.mainsnak.datavalue) .. p.formatQuantityWithoutRefClaim( context, options, statement )
end
-- данные c источниками без даты, но с трендом
function p.formatTQuantityRefClaim( context, options, statement )
return p.formatTQuantityWithoutRefClaim( context, options, statement ) .. context.formatRefs( options, statement );
end
-- стартовая функция для formatDateRefClaim
function p.firstDateRefClaim( context, options, statement )
context.oldformatStatement = context.formatStatement
context.oldformatStatementDefault = context.formatStatementDefault
context.formatStatement = function (options, statement ) return p.formatDateRefClaim(context,options, statement) end
context.formatStatementDefault = p.formatTQuantityWithoutRefClaim
return context.formatStatement( options, statement )
end
-- стартовая функция для formatDate
function p.firstDateClaim( context, options, statement )
context.oldformatStatement = context.formatStatement
context.oldformatStatementDefault = context.formatStatementDefault
context.formatStatement = function (options, statement ) return p.formatDate(context,options, statement) end
context.formatStatementDefault = p.formatQuantityDeafult
return context.formatStatement( options, statement )
end
-- стартовая функция для formatTQuantityWithoutRefClaim
function p.firstTQuantityWithoutRefClaim( context, options, statement )
context.oldformatStatement = context.formatStatement
context.oldformatStatementDefault = context.formatStatementDefault
context.formatStatement = function (options, statement ) return p.formatTQuantityWithoutRefClaim(context,options, statement) end
context.formatStatementDefault = p.formatDate
return context.formatStatement( options, statement )
end
-- стартовая функция для formatTQuantityRefClaim
function p.firstTQuantitRefClaim( context, options, statement )
context.oldformatStatement = context.formatStatement
context.oldformatStatementDefault = context.formatStatementDefault
context.formatStatement = function (options, statement ) return p.formatTQuantityRefClaim(context,options, statement) end
context.formatStatementDefault = p.formatDate
return context.formatStatement( options, statement )
end
return p