Module:Aired episodes
| This module depends on the following other modules: |
| This Lua module is used on many pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
Usage
{{#invoke:Aired episodes|main}}
Tracking categories
local spellnum = require('Module:Spellnum per MOS').spellnum
function oneEpisode(value, one_return, more_return)
return (tonumber(value) == 1 and one_return or more_return)
end
function parseNumber(value)
return tonumber(string.gsub(value, '^([%d]*).*', '%1'), 10)
end
function ordinalNumber(frame, value)
return frame:expandTemplate{title='Ordinal to word',args={tonumber(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}}
numberEpisodes = parseNumber(numberEpisodes:gsub(",", ''))
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 or args.df) and '' or 'US')}}
end
end
airedEpisodes = airedEpisodes .. ' ' .. spellnum{numberEpisodes, zero = 'no', forcenum = 'yes'} .. ' 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 ' .. spellnum{args.specials} .. ' special' .. oneEpisode(args.specials, '', 's')
end
if args.finished then
if isAllFinished then
if args.seasons then
airedEpisodes = airedEpisodes .. ' over ' .. spellnum{args.seasons} .. ' ' .. (args.uk and 'series' or ((args.part and 'part' or 'season') .. oneEpisode(args.seasons, '', 's')))
end
if args[1] then
if args[4] then
airedEpisodes = airedEpisodes .. ', between ' .. frame:expandTemplate{title='Date',args={args[1]..'-'..(args[2] or '')..'-'..(args[3] or ''), ((args.uk or args.df) and 'DMY' or 'MDY')}} .. ((args.uk or args.df) and '' or ',') .. ' and ' .. frame:expandTemplate{title='Date',args={(args[4] or '')..'-'..(args[5] or '')..'-'..(args[6] or ''), ((args.uk or args.df) and 'DMY' or 'MDY')}}
else
airedEpisodes = airedEpisodes .. ', concluding on ' .. frame:expandTemplate{title='Date',args={args[1]..'-'..(args[2] or '')..'-'..(args[3] or ''), ((args.uk or args.df) and 'DMY' or 'MDY')}}
end
end
else
local concludedPart = (args.finished_half and 'first half of the ' or (args.finished_part and ordinalNumber(frame, args.finished_part) .. ' part of the ' or ''))
airedEpisodes = airedEpisodes .. ', concluding the ' .. concludedPart .. ordinalNumber(frame, args.finished) .. ' ' .. (args.part and 'part' or args.uk and 'series' or 'season')
end
elseif args.airing then
airedEpisodes = airedEpisodes .. ', currently in its ' .. ordinalNumber(frame, args.airing) .. ' ' .. (args.part and 'part' or args.uk and 'series' or 'season')
end
airedEpisodes = airedEpisodes .. '.'
local title = mw.title.getCurrentTitle()
if title.namespace == 0 then
if args.showpage == args.title then
airedEpisodes = airedEpisodes .. '[[Category:Aired episodes using equal showpage and title parameters]]'
end
if args.showpage and args.title then
airedEpisodes = airedEpisodes .. '[[Category:Aired episodes using both showpage and title parameters]]'
end
end
return airedEpisodes
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.