Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Filename/opis
local Filename = {}
local getArgs = require('Dev:Arguments').getArgs
function Filename.ability(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Umiejętność.png',
'%s.%s.png',
args['champion'] or args[1],
args['ability'] or args[2]
)
end
function Filename.rune(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Runa.png',
'%s.runa.png',
args['rune'] or args[1]
)
end
function Filename.mastery(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Specjalizacja.png',
'%s.specjalizacja.s%d.png',
empty(string.gsub(args['mastery'] or args[1] or '', '%s*%b()$', '')),
tonumber(args['season'] or args[2])
)
end
function Filename.item(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Przedmiot.png',
'%s przedmiot.png',
args['item'] or args[1]
)
end
function Filename.spell(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Czar.png',
'%s.png',
args['spell'] or args[1]
)
end
function Filename.effect(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Efekt.png',
'%s.png',
args['effect'] or args[1]
)
end
function Filename.enchantment(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Przedmiot.png',
'%s - %s przedmiot.png',
args['item'] or args[1],
args['enchantment'] or args[2]
)
end
function Filename.character(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Postać.png',
'%sSquare.png',
args['character'] or args[1]
)
end
function Filename.banner(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'ChampionBanner.png',
'%sBanner.png',
args['character'] or args[1]
)
end
function Filename.skin(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Skórka.jpg',
'%s.%s.skórka.jpg',
args['champion'] or args[1],
args['skin'] or args[2] or 'Klasyczna'
)
end
function Filename.loading(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Portret.jpg',
'%s.%s.portret.jpg',
args['champion'] or args[1],
args['skin'] or args[2] or 'Klasyczna'
)
end
function Filename.group(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Grupa.png',
'%s.grupa.png',
args['group'] or args[1]
)
end
function Filename.position(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Pozycja.png',
'%s.pozycja.png',
args['position'] or args[1]
)
end
function Filename.oldrune(frame)
local args = getArgs(frame, {frameOnly = true})
return handleArgs(args,
'Runa.png',
'%s.png',
args['rune'] or args[1]
)
end
function Filename.encode(frame)
return mw.text.trim(encode(frame.args[1]))
end
---------------------------------------------------------------
function handleArgs(args, default, filename, ...)
if args['test'] then
return testString(args['test'], (args['prefix'] or '') .. filename .. (args['suffix'] or ''), args['return'])
end
local result = mw.text.trim(encode(formatnil(filename, ...) or default or ''))
if not args['raw'] then result = string.gsub(result or '', '[:\\|/\?<>\*"]', ''):gsub(' ', '_') end
result = (args['prefix'] or '') .. result .. (args['suffix'] or '')
if args['parse'] then result = mw.getCurrentFrame():preprocess(result) end
return result
end
function testString(text, filename, index)
pattern = '^' .. string.gsub(filename, '[%^%$%(%)%%%.%[%]%*%+%-%?]', '%%%1') .. '$'
pattern = string.gsub(pattern, '%%%%[0-9]*d', '(%%-?%%d*)')
pattern = string.gsub(pattern, '%%%%s', '(.-)')
local matches = {string.match(text, pattern)}
if #matches > 0 then
if index then return matches[tonumber(index)] end
return #matches
end
return nil
end
function encode(text)
if text == nil then return nil end
text = mw.ustring.gsub(text, ':', '')
return text
end
function formatnil(text, ...)
if select("#", ...) == 0 then return text end
for i=1, select("#", ...) do
if select(i, ...) == nil then return nil end
end
return mw.ustring.format(text, ...)
end
function empty(text)
if text == '' then return nil end
return text
end
return Filename