FANDOM


--Please see [[Template:Episode]] for documentation. Do not use #invoke directly.
--Template must pass calculated #titleparts call as named param "tp".
local p = {}
local convert = require('Module:Nameconvert').call
 
function p.main(frame)
    return p.call(frame:getParent().args, frame.args.tp)
end
 
function p.call(args, tp)
    if not tp then
        return '<span class="error">missing title part</span>'
    end
    local prefix = args.pre or ''
    local suffix = args.suf or ''
    local linkText = args[3] or mw.ustring.gsub(prefix .. suffix, '/', '')
    local offset = 0
    if args[2] == 'prev' then
        offset = -1
    elseif args[2] == 'next' then
        offset = 1
    end
    --Prevent accidentally mixing episodes and non-episodes
    if mw.text.trim(args.ismisc or '') == '' and convert({tp, checkmisc='x'}) == '1' then
        return '<span class="error">missing ismisc</span>'
    end
    local overall = convert({tp, r='oa', PonyLife=args.PonyLife})
    if overall == '0' then
        return 'N/A'
    end
    local title = convert({overall + offset, PonyLife=args.PonyLife, getmisc=args.ismisc})
    if title == 'N/A' or title == 'TBA' or mw.ustring.find(title, 'class="error"', 1, true) then
        return title
    end
    if linkText == 'TITLE' then
        linkText = title
    end
    if mw.text.trim(args.ismisc or '') ~= '' and (not args[3] or args[3] == 'TITLE') then
        if linkText == '' then linkText = title end
        linkText, found = mw.ustring.gsub(linkText, '/Animated shorts', ' animated shorts')
        if found > 0 then
            linkText = mw.ustring.gsub(linkText, 'My Little Pony Equestria Girls: ', '')
        end
    end
    local link = prefix .. title .. suffix
    if linkText == '' or linkText == link then
        return '[' .. '[' .. link .. ']]'
    else
        return '[' .. '[' .. link .. '|' .. linkText .. ']]'
    end
end
 
return p
Community content is available under CC-BY-SA unless otherwise noted.