-- Moduł łączy pozycje podane z parametrów przez opcjonalny
-- separator. Ostatni separator może być podany niezależnie,
-- umożliwiając listy w postaci "foo, bar, baz i qux".
-- Można podać także początkowy parametr.
local p = {}
p['_połącz']=function(values,args)
return mw.text.listToText(values, args.separator, args['łącznik'])
end
p._popraw=function(values,args)
local str=require('Moduł:String')
local strFrame={}
local raw=''
--pattern pusty
if not values[2] then
return ''
end
--local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
strFrame.args={s=values[1], pattern=values[2], start=1, match=1,
plain=false, nomatch='' }
raw=str.match(strFrame)
--brak dopasowania
if raw == nil then
return ''
end
--local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } );
strFrame.args={source=raw, pattern=' ', replace='',
count=nil, plain=true }
raw=str.replace(strFrame)
strFrame.args={source=raw, pattern=',', replace='.',
count=nil, plain=true}
return str.replace(strFrame)
end
p['_inflacja']=function(values,args)
local kraj=values[1]
if not kraj then
return '<span style="font-size:100%" class="error">Moduł:brudnopis|inflacja: nie podano kodu kraju.</span>'
end
local dane=mw.loadData('Moduł:Brudnopis/Wikipedysta:89.25.210.104/brudnopis/dane/'..kraj)
if (#mw.text.trim(dane.raw)<1) then
return '<span style="font-size:100%" class="error">Moduł:brudnopis|inflacja: brak danych dla kraju '..kraj..'</span>'
end
--US
--https://www.minneapolisfed.org/community/financial-and-economic-education/cpi-calculator-information/consumer-price-index-1800
--tabela: Year | Annual Average | Annual Percent Change(rate of inflation)
--UK
--https://www.measuringworth.com/datasets/ukearncpi/
--tabela: Year | Retail Price Index
--DE (HICP)
--https://www.destatis.de/EN/FactsFigures/NationalEconomyEnvironment/Prices/ConsumerPriceIndices/Tables_/HarmonizedConsumerPrices.html?cms_gtp=151292_slot%253D2
--tabela: Year | Total index
--usuń zbędne elementy
local rUsun={US='%s\n[-]?%d*[.]?%d*%%\n?%s?'}
local tmpStr=''
if rUsun[kraj] then
tmpStr=string.gsub(dane.raw, rUsun[kraj], '')
--mw.log(mw.dumpObject(tmpStr))
tmpStr=string.gsub(tmpStr, '%s\n', '')
else
tmpStr=dane.raw
end
--mw.log(mw.dumpObject(tmpStr))
--podmiana elementów
local rZamien={UK={co='NA', naco=1}, DE={co='%s%s+', naco=' '}}
if rZamien[kraj] then
tmpStr=string.gsub(tmpStr, rZamien[kraj].co, rZamien[kraj].naco)
--mw.log(mw.dumpObject(tmpStr))
end
--kolejność
if kraj == 'DE' then
local tab=mw.text.split( tmpStr, '\n')
table.sort(tab)
tmpStr=table.concat(tab,'\n')
mw.log(mw.dumpObject(tmpStr))
end
--przeformatowanie na switch z komentarzem o aktualizacji {{s|Inflacja/rok}}
local switchStr='{{#switch:{{{1}}}<br/>'
..string.gsub(tmpStr, '(%d*[.]?%d*)[\n%s](%d*[.]?%d*)\n?', '| %1 = %2<br/>') --(%d*[.]?%d*)\n(%d*[.]?%d*)\n?
switchStr=string.gsub(switchStr, '(= %d*[.]?%d*)<br/>$', '| #default %1')
..'<br/>}}'..mw.getCurrentFrame():preprocess('<nowiki><!--</nowiki>')
..' *** Po dodaniu lat pamiętaj o aktualizacji {{s|Inflacja/rok}}! ***<br/>-->'
--mw.log(mw.dumpObject(switchStr))
return switchStr
end
local function makeFunction(name)
return function (frame)
local args = require('Module:Brudnopis/Wikipedysta:89.25.210.104/Arguments')
.getArgs(frame, {frameOnly = true})
local values=require('Module:TableTools').compressSparseArray(args)
return p[name](values,args)
end
end
p['połącz'] = makeFunction('_połącz')
p.popraw = makeFunction('_popraw')
p.inflacja = makeFunction('_inflacja')
return p