-- <pre>
local Filename = {}
local lib = require('Module:Feature')
function Filename.ability(frame)
local args = lib.frameArguments(frame)
if (args['ability'] or args[2]) == "Basic Attack" then return "Basic Attack.png"
else
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s %s.%s', args['champion'] or args[1], args['ability'] or args[2], args['variant'] or args[3], args['extension'] or 'png')
or
formatnil('%s %s.%s', args['champion'] or args[1], args['ability'] or args[2], args['extension'] or 'png')
or
'Placeholder.svg')))
end
end
function Filename.WRability(frame)
local args = lib.frameArguments(frame)
if (args['ability'] or args[2]) == "Basic Attack" then return "Basic Attack.png"
else
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s %s WR.%s', args['champion'] or args[1], args['ability'] or args[2], args['variant'] or args[3], args['extension'] or 'png')
or
formatnil('%s %s WR.%s', args['champion'] or args[1], args['ability'] or args[2], args['extension'] or 'png')
or
'Placeholder.svg')))
end
end
function Filename.buff(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s buff %s.png', args['buff'] or args[1], args['variant'] or args[2])
or
formatnil('%s buff.png', args['buff'] or args[1])
or
'Placeholder.svg')))
end
--placeholder for WR
function Filename.WRbuff(frame)
return Filename.buff(frame)
end
function Filename.championcircle(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sCircle %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sCircle.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'ChampionSquare.png')))
end
function Filename.WRchampioncircle(frame)
--return Filename.championcircle(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sCircle WR %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sCircle WR.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'ChampionSquare.png')))
end
function Filename.championsquare(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sSquare %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sSquare.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'ChampionSquare.png')))
end
function Filename.WRchampionsquare(frame)
--return Filename.championsquare(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sSquare WR %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sSquare WR.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'ChampionSquare.png')))
end
function Filename.TFTchampionsquare(frame)
--return Filename.championsquare(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sTFTSquare %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sTFTSquare.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'ChampionSquare.png')))
end
function Filename.chroma(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s (%s) %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['chroma'] or args[3], args['variant'] or args[4])
or
formatnil('%s %s (%s).png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['chroma'] or args[3])
or
'Placeholder.svg')))
end
--placeholder for WR
function Filename.WRchroma(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s (%s) %s WR.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['chroma'] or args[3], args['variant'] or args[4])
or
formatnil('%s %s (%s) WR.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['chroma'] or args[3])
or
'Placeholder.svg')))
end
function Filename.item(frame)
local args = lib.frameArguments(frame)
if (args['enchantment']) then
result = handleArgs(args, mw.text.trim(encode(
formatnil('%s (%s) item %s.png', args['item'] or args[1], args['enchantment'] or args[2], args['variant'] or args[3])
or
formatnil('%s (%s) item.png', args['item'] or args[1], args['enchantment'] or args[2])
or
'Placeholder.svg')))
else
result = handleArgs(args, mw.text.trim(encode(
formatnil('%s item %s.png', args['item'] or args[1], args['variant'] or args[2])
or
formatnil('%s item.png', args['item'] or args[1])
or
'Placeholder.svg')))
end
return result
end
function Filename.writem(frame)
return Filename.WRitem(frame)
end
function Filename.WRitem(frame)
local args = lib.frameArguments(frame)
if (args['enchantment']) then
result = handleArgs(args, mw.text.trim(encode(
formatnil('%s (%s) WR item %s.png', args['item'] or args[1], args['enchantment'] or args[2], args['variant'] or args[3])
or
formatnil('%s (%s) WR item.png', args['item'] or args[1], args['enchantment'] or args[2])
or
'Placeholder.svg')))
else
result = handleArgs(args, mw.text.trim(encode(
formatnil('%s WR item %s.png', args['item'] or args[1], args['variant'] or args[2])
or
formatnil('%s WR item.png', args['item'] or args[1])
or
'Placeholder.svg')))
end
return result
end
function Filename.TFTitem(frame)
local args = lib.frameArguments(frame)
result = handleArgs(args, mw.text.trim(encode(
formatnil('%s TFT item %s.png', args['item'] or args[1], args['variant'] or args[2])
or
formatnil('%s TFT item.png', args['item'] or args[1])
or
'Placeholder.svg')))
return result
end
function Filename.loading(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sLoading %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sLoading.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinLoading.jpg')))
end
function Filename.WRloading(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sLoading WR %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sLoading WR.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinLoading.jpg')))
end
function Filename.render(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s Render %s.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %s Render.png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion Render.png')))
end
function Filename.mastery(frame)
local args = lib.frameArguments(frame)
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.monster(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%sSquare %s.png', args['monster'] or args[1], args['variant'] or args[2])
or
formatnil('%sSquare.png', args['monster'] or args[1])
or
'Placeholder.svg')))
end
function Filename.profileicon(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s profileicon %s.png', args['profileicon'] or args[1], args['variant'] or args[2])
or
formatnil('%s profileicon.png', args['profileicon'] or args[1])
or
'Placeholder.svg')))
end
function Filename.profileiconV1(frame)
local args = lib.frameArguments(frame)
local id = args['profileicon'] or args[1]
local index = mw.loadJsonData('Module:Profile-Icons/V1/index.json');
local mime2ext = mw.loadJsonData('Module:Filename/mime2ext.json');
local mime = index[id];
if (mime == nil) then return nil end
local ext = mime2ext[mime[1]]
if (ext == nil) then return nil end
return "Profile-Icons-V1-"..id.."."..ext;
end
function Filename.rune(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s rune %s.png', args['rune'] or args[1], args['variant'] or args[2])
or
formatnil('%s rune.png', args['rune'] or args[1])
or
'Placeholder.svg')))
end
function Filename.WRrune(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s (Wild Rift) rune %s.png', args['rune'] or args[1], args['variant'] or args[2])
or
formatnil('%s (Wild Rift) rune.png', args['rune'] or args[1])
or
'Placeholder.svg')))
end
function Filename.runeold(frame)
local args = lib.frameArguments(frame)
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.skin(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sSkin %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sSkin.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinSkin.jpg')))
end
function Filename.WRskin(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sSkin WR %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sSkin WR.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinSkin.jpg')))
end
function Filename.wrskin(frame)
return Filename.WRskin(frame)
end
function Filename.LORskin(frame)
local args = lib.frameArguments(frame)
if (args['skin'] == 'Original' or args[2] == 'Original') then -- original card name doesn't use suffix
return handleArgs(args, mw.text.trim(encode(
formatnil('%s-full.png', args['cardcode'] or args[1])
or
'Champion SkinSkin.jpg')))
else
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s-full.png', args['cardcode'] or args[1], string.gsub(args['skin'] or args[2], ' ', ''))
or
'Champion SkinSkin.jpg')))
end
end
function Filename.lorskin(frame)
return Filename.LORskin(frame)
end
function Filename.LORcircle(frame)
local args = lib.frameArguments(frame)
if (args['skin'] == 'Original' or args[2] == 'Original') then -- original card name doesn't use suffix
return handleArgs(args, mw.text.trim(encode(
formatnil('%s-circle.png', args['cardcode'] or args[1])
or
'ChampionSquare.png')))
else
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s-circle.png', args['cardcode'] or args[1], string.gsub(args['skin'] or args[2], ' ', ''))
or
'ChampionSquare.png')))
end
end
function Filename.lorcircle(frame)
return Filename.LORcircle(frame)
end
function Filename.skintile(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sTile %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sTile.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinSkin.jpg')))
end
function Filename.skincentered(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sCentered %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
or
formatnil('%s %sCentered.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
or
'Champion SkinSkin.jpg')))
end
function Filename.spell(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %s.png', args['spell'] or args[1], args['variant'] or args[2])
or
formatnil('%s.png', args['spell'] or args[1])
or
'Placeholder.svg')))
end
function Filename.ward(frame)
local args = lib.frameArguments(frame)
return handleArgs(args, mw.text.trim(encode(formatnil('%s Ward.png', args['ward'] or args[1]) or 'Placeholder.svg')))
end
-- Helper functions
function Filename.encode(frame)
return mw.text.trim(encode(frame.args[1]))
end
function encode(text)
if text == nil then return nil end
text = mw.ustring.gsub(text, ':', '-')
text = mw.ustring.gsub(text, '/', '')
return text
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
return result
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
-- </pre>
-- [[Category:Lua]]