local spellnum = require('Module:Spellnum per MOS').spellnum
local numConv = require('Module:Numeral converter').convert
function oneEpisode(value, one_return, more_return)
return (tonumber(value) == 1 and one_return or more_return)
end
function parseNumber(value)
return tonumber(mw.ustring.gsub(numConv(value, 'en'), '^([%d]*).*', '%1'), 10)
end
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = {
'الگو:Aired episodes',
'الگو:قسمتهای پخششده',
'الگو:قسمتهای پخششده/تمرین'
}
})
args = args or {}
if args['انتشار'] then args.released = args['انتشار'] end
if args['بریتانیا'] then args.uk = args['بریتانیا'] end
if args['پایان'] then args.finished = args['پایان'] end
if args['تاریخ'] then args.date = args['تاریخ'] end
if args['تعداد'] then args.num = args['تعداد'] end
if args['عنوان'] then args.title = args['عنوان'] end
if args['فصلها'] then args.seasons = args['فصلها'] end
if args['ویژه'] then args.specials = args['ویژه'] end
if args['مقاله برنامه'] then args.showpage = args['مقاله برنامه'] end
local airedEpisodes = ''
local numberEpisodes = args.num or frame:expandTemplate{title='Template parameter value',args={args.showpage or args.title, 'جعبه اطلاعات تلویزیون', 1, 'num_episodes', 1}}
numberEpisodes = parseNumber(numberEpisodes)
local showName = mw.ustring.gsub((args.showpage and frame:expandTemplate{title='PAGENAMEBASE',args={args.showpage}} or args.title), "''", '')
local isAllFinished = (args.finished == 'all' or args.finished == 'همه')
if isAllFinished then
airedEpisodes = airedEpisodes .. 'در طول مدت پخش ' .. (args.uk and 'برنامه' or 'مجموعه') .. '،'
else
if args.date then
airedEpisodes = airedEpisodes .. 'تا ' .. args.date .. '،'
else
airedEpisodes = airedEpisodes .. frame:expandTemplate{title='تا تاریخ',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'} .. ' قسمت' .. " از ''" .. showName .. "''"
airedEpisodes = airedEpisodes .. ' ' .. (args.released and ' منتشر' or ' پخش') .. (isAllFinished and 'شد' or 'شدهاست')
if args.specials then
airedEpisodes = airedEpisodes .. '؛ این قسمتها شامل ' .. spellnum{args.specials} .. ' قسمت ویژه' .. (isAllFinished and 'بود' or 'میشود')
end
if args.finished then
if isAllFinished then
if args.seasons then
airedEpisodes = airedEpisodes .. ' در طول ' .. spellnum{args.seasons} .. ' ' .. (args.part and 'بخش' or 'فصل') .. (args.uk and ' از مجموعه ' or '')
end
if args[1] then
if args[4] then
airedEpisodes = airedEpisodes .. '، بین ' .. 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 '،') .. ' و ' .. 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 .. '، بهجز ' .. 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
airedEpisodes = airedEpisodes .. '، بهجز ' .. ((tonumber(args.finished) == math.floor(tonumber(args.finished))) and '' or 'نیمهٔ اول ') .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.finished))}} .. ' ' .. (args.part and 'بخش' or args.uk and 'مجموعه' or 'فصل')
end
elseif args.airing then
airedEpisodes = airedEpisodes .. '، در حال حاضر ' .. (args.part and 'بخش' or args.uk and 'مجموعهٔ' or 'فصل') .. frame:expandTemplate{title='Ordinal to word',args={math.floor(tonumber(args.airing))}} .. ' آن در حال پخش است'
end
airedEpisodes = airedEpisodes .. '.'
local title = mw.title.getCurrentTitle()
if title.namespace == 0 then
if args.showpage == args.title then
airedEpisodes = airedEpisodes .. '[[رده:الگوی قسمتهای پخششده بههمراه پارامترهای مقاله برنامه و عنوان یکسان]]'
end
if args.showpage and args.title then
airedEpisodes = airedEpisodes .. '[[رده:الگوی قسمتهای پخششده بههمراه هر دو پارامتر مقاله برنامه و عنوان]]'
end
end
return airedEpisodes
end
return p