Module:Filename

local Filename = {} local lib = require('Module:Feature') function Filename.ability(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s.png', args['ability'] or args[1]) or 'Placeholder.svg'))) end

function Filename.rune(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s rune.png', args['rune'] or args[1]) or 'Placeholder.svg'))) end

function Filename.runeold(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s %s %d.png', args['stat'] or args[1], args['rune'] or args[2], tonumber(args['tier'] or args[3])) or 'Placeholder.svg'))) end

function Filename.item(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s (%s) item.png', args['item'] or args[1], args['enchantment']))) or handleArgs(args, mw.text.trim(encode(formatnil('%s item.png', args['item'] or args[1]) or 'Placeholder.svg')))) end

function Filename.spell(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s.png', args['spell'] or args[1]) or 'Placeholder.svg'))) end

function Filename.skin(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s %sSkin.jpg', args['champion'] or args[1], args['skin'] or args[2] or 'Original') or 'Champion SkinSkin.jpg'))) end

function Filename.chroma(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s %s (%s).png', args['champion'] or args[1], args['skin'] or args[2] or 'Original', args['chroma'] or args[3]) or 'Placeholder.svg'))) end

function Filename.loading(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s %sLoading.jpg', args['champion'] or args[1], args['skin'] or args[2] or 'Original') or 'Champion SkinLoading.jpg'))) end

function Filename.mastery(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s mastery %d.png', args['mastery'] or args[1], tonumber(args['season'] or args[2])) or 'Placeholder.svg'))) end

function Filename.champion(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%sSquare.png', args['champion'] or args[1]) or 'ChampionSquare.png'))) end

function Filename.monster(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%sSquare.png', args['monster'] or args[1]) or 'ChampionSquare.png'))) end

function Filename.enchantment(frame) local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end return handleArgs(args, mw.text.trim(encode(formatnil('%s (%s) item.png', args['item'] or args[1], args['enchantment'] or args[2]) or 'Placeholder.svg'))) end

function Filename.encode(frame) return mw.text.trim(encode(frame.args[1])) end

function handleArgs(args, filename) local result = filename if args['prefix'] then filename = args['prefix'] .. filename end if args['suffix'] then filename = filename .. args['suffix'] end if args['parse'] then filename = mw.getCurrentFrame:preprocess(filename) end if args['else'] then end return result 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 return Filename