Difference between revisions of "Module:Aired episodes"
Jump to navigation
Jump to search
blackwiki>Alex 21 (Create) |
blackwiki>Alex 21 (Fixes) |
||
| Line 4: | Line 4: | ||
end | end | ||
| − | function lessThanTenEpisodes(value) | + | function lessThanTenEpisodes(frame, value) |
| − | return (value < 10 and frame:expandTemplate{title='Number to word',args={value}} or value) | + | return (tonumber(value) < 10 and frame:expandTemplate{title='Number to word',args={value}} or value) |
end | end | ||
| + | |||
| + | local p = {} | ||
function p.main(frame) | function p.main(frame) | ||
| Line 25: | Line 27: | ||
airedEpisodes = airedEpisodes .. 'As of' .. args.date .. ',' | airedEpisodes = airedEpisodes .. 'As of' .. args.date .. ',' | ||
else | else | ||
| − | airedEpisodes = airedEpisodes .. frame:expandTemplate{title='As of',args={args[1], args[2], args[3], post=',', df=(args.uk and '' or 'US')}} | + | airedEpisodes = airedEpisodes .. frame:expandTemplate{title='As of',args={args[1], args[2], args[3], post=',', df=(args.uk and '' or 'US')}} |
end | end | ||
end | end | ||
| − | airedEpisodes = airedEpisodes .. ' ' .. lessThanTenEpisodes(numberEpisodes) .. ' episode' .. oneEpisode(numberEpisodes, '', 's') .. " of ''" .. showName .. "''" | + | airedEpisodes = airedEpisodes .. ' ' .. lessThanTenEpisodes(frame, numberEpisodes) .. ' episode' .. oneEpisode(numberEpisodes, '', 's') .. " of ''" .. showName .. "''" |
if not isAllFinished then | if not isAllFinished then | ||
| Line 35: | Line 37: | ||
end | end | ||
| − | airedEpisodes = airedEpisodes .. ' ' .. (args.released and ((isAllFinished and 'were' or 'been') .. 'released') or 'aired') | + | airedEpisodes = airedEpisodes .. ' ' .. (args.released and ((isAllFinished and 'were' or 'been') .. ' released') or 'aired') |
if args.specials then | if args.specials then | ||
| − | airedEpisodes = airedEpisodes .. ', including' .. lessThanTenEpisodes(args.specials) .. 'special' .. oneEpisode(args.specials, '', 's') | + | airedEpisodes = airedEpisodes .. ', including ' .. lessThanTenEpisodes(frame, args.specials) .. ' special' .. oneEpisode(args.specials, '', 's') |
end | end | ||
| Line 44: | Line 46: | ||
if isAllFinished then | if isAllFinished then | ||
if args.seasons then | if args.seasons then | ||
| − | airedEpisodes = airedEpisodes .. ' over ' .. lessThanTenEpisodes(args.seasons) .. ' ' .. (args.uk and 'series' or ('season' .. oneEpisode(args.seasons, '', 's'))) | + | airedEpisodes = airedEpisodes .. ' over ' .. lessThanTenEpisodes(frame, args.seasons) .. ' ' .. (args.uk and 'series' or ('season' .. oneEpisode(args.seasons, '', 's'))) |
end | end | ||
if args[1] then | if args[1] then | ||
| − | airedEpisodes = airedEpisodes .. ', between ' .. frame:expandTemplate{title='Date',args={args[1]..'-'..args[2]..'-'..args[3], (args.uk and 'DMY' or 'MDY')}} .. (args.uk and '' or ',') .. ' and ' .. frame:expandTemplate{title='Date',args={args[4]..'-'..args[ | + | airedEpisodes = airedEpisodes .. ', between ' .. frame:expandTemplate{title='Date',args={args[1]..'-'..args[2]..'-'..args[3], (args.uk and 'DMY' or 'MDY')}} .. (args.uk and '' or ',') .. ' and ' .. frame:expandTemplate{title='Date',args={args[4]..'-'..args[5]..'-'..args[6], (args.uk and 'DMY' or 'MDY')}} |
end | end | ||
else | else | ||
| − | airedEpisodes = airedEpisodes .. ', concluding the ' .. ((args.finished == floor(args.finished)) and '' or 'first half of the') .. frame:expandTemplate{title='Ordinal to word',args={floor(args.finished)}} .. (args.uk and 'series' or 'season') | + | airedEpisodes = airedEpisodes .. ', concluding the ' .. ((tonumber(args.finished) == math.floor(tonumber(args.finished))) and '' or 'first half of the ') .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.finished))}} .. ' ' .. (args.uk and 'series' or 'season') |
end | end | ||
| − | + | elseif args.airing then | |
| − | airedEpisodes = airedEpisodes .. ', currently in its ' .. frame:expandTemplate{title='Ordinal to word',args={floor(args.airing)}} .. (args.uk and 'series' or 'season') | + | airedEpisodes = airedEpisodes .. ', currently in its ' .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.airing))}} .. ' ' .. (args.uk and 'series' or 'season') |
end | end | ||
| Line 69: | Line 71: | ||
return airedEpisodes | return airedEpisodes | ||
end | end | ||
| + | |||
| + | return p | ||
Revision as of 04:11, 16 September 2020
| 30px | This module depends on the following other modules: |
Usage
Creates a standard aired episodes statement with
{{#invoke:Aired episodes|main}}
With the parameters defined in the documentation of the template.
function oneEpisode(value, one_return, more_return)
return (value == 1 and one_return or more_return)
end
function lessThanTenEpisodes(frame, value)
return (tonumber(value) < 10 and frame:expandTemplate{title='Number to word',args={value}} or value)
end
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Aired episodes'
})
args = args or {}
local airedEpisodes = ''
local numberEpisodes = args.num or frame:expandTemplate{title='Template parameter value',args={args.showpage or args.title, 'Infobox television', 1, 'num_episodes', 1}}
local showName = (args.showpage and frame:expandTemplate{title='PAGENAMEBASE',args={args.showpage}} or args.title):gsub("''", '')
local isAllFinished = (args.finished == 'all')
if isAllFinished then
airedEpisodes = airedEpisodes .. 'During the course of the ' .. (args.uk and 'programme' or 'series') .. ','
else
if args.date then
airedEpisodes = airedEpisodes .. 'As of' .. args.date .. ','
else
airedEpisodes = airedEpisodes .. frame:expandTemplate{title='As of',args={args[1], args[2], args[3], post=',', df=(args.uk and '' or 'US')}}
end
end
airedEpisodes = airedEpisodes .. ' ' .. lessThanTenEpisodes(frame, numberEpisodes) .. ' episode' .. oneEpisode(numberEpisodes, '', 's') .. " of ''" .. showName .. "''"
if not isAllFinished then
airedEpisodes = airedEpisodes .. ' ' .. oneEpisode(numberEpisodes, 'has', 'have')
end
airedEpisodes = airedEpisodes .. ' ' .. (args.released and ((isAllFinished and 'were' or 'been') .. ' released') or 'aired')
if args.specials then
airedEpisodes = airedEpisodes .. ', including ' .. lessThanTenEpisodes(frame, args.specials) .. ' special' .. oneEpisode(args.specials, '', 's')
end
if args.finished then
if isAllFinished then
if args.seasons then
airedEpisodes = airedEpisodes .. ' over ' .. lessThanTenEpisodes(frame, args.seasons) .. ' ' .. (args.uk and 'series' or ('season' .. oneEpisode(args.seasons, '', 's')))
end
if args[1] then
airedEpisodes = airedEpisodes .. ', between ' .. frame:expandTemplate{title='Date',args={args[1]..'-'..args[2]..'-'..args[3], (args.uk and 'DMY' or 'MDY')}} .. (args.uk and '' or ',') .. ' and ' .. frame:expandTemplate{title='Date',args={args[4]..'-'..args[5]..'-'..args[6], (args.uk and 'DMY' or 'MDY')}}
end
else
airedEpisodes = airedEpisodes .. ', concluding the ' .. ((tonumber(args.finished) == math.floor(tonumber(args.finished))) and '' or 'first half of the ') .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.finished))}} .. ' ' .. (args.uk and 'series' or 'season')
end
elseif args.airing then
airedEpisodes = airedEpisodes .. ', currently in its ' .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.airing))}} .. ' ' .. (args.uk and 'series' or 'season')
end
airedEpisodes = airedEpisodes .. '.'
if args.showpage == args.title then
airedEpisodes = airedEpisodes .. '[[Category:Template:Aired episodes using equal showpage and title parameters]]'
end
if args.showpage and args.title then
airedEpisodes = airedEpisodes .. '[[Category:Template:Aired episodes using both showpage and title parameters]]'
end
return airedEpisodes
end
return p