FANDOM


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.pathicon(frame)
    local args = getArgs(frame, {frameOnly = true})
    return handleArgs(args,
        'Runa.png',
        '%s_Ikona.png',
        args['path'] or args[1]
    )
end
function Filename.pathsplash(frame)
    local args = getArgs(frame, {frameOnly = true})
    return handleArgs(args,
        'Postać.jpg',
        '%s_Tło.jpg',
        args['path'] 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.ptitem(frame)
    local args = getArgs(frame, {frameOnly = true})
    return handleArgs(args,
        'Przedmiot PT.png',
        '%s przedmiot PT.png',
        args['ptitem'] 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.charactertf(frame)
    local args = getArgs(frame, {frameOnly = true})
    return handleArgs(args,
        'Postać TF.png',
        '%s postać TF.png',
        args['charactertf'] 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.originalcentered(frame)
    local args = getArgs(frame, {frameOnly = true})
    return handleArgs(args,
        'Champion OriginalCentered.jpg',
        '%s OriginalCentered.jpg',
        args['originalcentered'] 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
Treści społeczności są dostępne na podstawie licencji CC-BY-SA , o ile nie zaznaczono inaczej.