Module:Release

local p = {} D = {} T = {} N = {} A = {} function ReleaseInsert(Date, Type, Name, Artist) table.insert(D, Date) table.insert(T, Type) table.insert(N, Name) table.insert(A, Artist) end

--These should go in chronological order. Please note that if an artist name includes a single quote, it needs to be written as \' so the quote is not interpreted as the end of the name.

ReleaseInsert('2020-11-17', '2nd Single', 'Daenkei Merry-Go-Round', 'HOT DOG CAT') ReleaseInsert('2020-11-17', '22nd Single', 'SticK Out', 'KOTOKO') ReleaseInsert('2020-11-18', '1st Single', 'Prayer(S)|Prayer[S]', 'RONDO') ReleaseInsert('2020-11-18', '2nd Single', 'Motto Takaku', 'Suzuki Aina') ReleaseInsert('2020-11-18', '2nd Single', 'disclose', 'H-el-ical') ReleaseInsert('2020-11-18', '3rd Major Single', 'DEAD DROP / Just One More Time', 'ADDICTION') ReleaseInsert('2020-11-18', '4th Single', 'Dream with You / Poppin\' Up! / DIVE！', 'Nijigasaki High School Idol Club') ReleaseInsert('2020-11-18', '17th Single', 'Kimi wo Sukueru Nara Boku wa Nan ni demo Naru', 'Kurosaki Maon') ReleaseInsert('2020-11-18', '30th Single', 'Sakebe (angela)|Sakebe', 'angela') ReleaseInsert('2020-11-18', '1st Best Album', '20 BEATS 20 TALES', 'Tokyo Performance Doll (2013)|Tokyo Performance Doll') ReleaseInsert('2020-11-18', '4th Mini Album', 'Night Walk', 'Komagata Yuri') ReleaseInsert('2020-11-18', '1st Christmas Album', 'So Special Christmas', 'MISIA') ReleaseInsert('2020-11-24', '1st Album', 'buGG PANiC', 'buGG') ReleaseInsert('2020-11-25', '2nd Single', 'Carpe Diem', 'Liyuu') ReleaseInsert('2020-11-25', '2nd Single', 'Desire (PELICAN FANCLUB)|Desire', 'PELICAN FANCLUB') ReleaseInsert('2020-11-25', '3rd Single', 'Toki ni wa Mukashi no Hanashi wo', 'Arai Hitomi') ReleaseInsert('2020-11-25', '4th Single', 'Service Area', 'Yoshizawa Kayoko') ReleaseInsert('2020-11-25', '6th Single', 'ALPHA', 'STEREO DIVE FOUNDATION') ReleaseInsert('2020-11-25', '7th Single', 'We Can☆Furefure!', 'Hello, Happy World!') ReleaseInsert('2020-11-25', '11th Single', 'Orange / pray', 'Akai Kouen') ReleaseInsert('2020-11-25', '11th Single', 'Namida Nagaruru Mama', 'Nanjo Yoshino') ReleaseInsert('2020-11-25', '11th Single', 'Heartbeat City / Itsuka Kumo ga Hareta Nara', 'Uchida Maaya') ReleaseInsert('2020-11-25', '15th Single', 'Torch of Liberty', 'KANA-BOON') ReleaseInsert('2020-11-25', '20th Single', 'nice to NEET you!', 'AOP') ReleaseInsert('2020-11-25', '21st Single', 'CITRUS', 'Da-iCE') ReleaseInsert('2020-11-25', '3rd Album', 'World Journey', 'Rie a.k.a. Suzaku') ReleaseInsert('2020-11-25', '4th Album', 'Best of Instrumental', 'Rie a.k.a. Suzaku') ReleaseInsert('2020-11-25', '4th Album', 'TRINITY', 'TEARS OF TRAGEDY') ReleaseInsert('2020-11-25', '6th Album', 'Gene of the earth', 'Imai Asami') ReleaseInsert('2020-11-25', '3rd Best Album', 'Lia 20th BEST', 'Lia') ReleaseInsert('2020-11-25', '4th Mini Album', 'What\'s "standard" !?', 'Wa-Suta') ReleaseInsert('2020-11-30', '9th Single', 'Loveit', 'RABBIT HUTCH')

ReleaseInsert('2020-12-01', '2nd Single', 'Aimai ME', 'Sakuya Konohana') ReleaseInsert('2020-12-02', '1st Single', '4U', 'MERM4ID') ReleaseInsert('2020-12-02', '3rd Single', 'Yuusetsu', 'THE SIXTH LIE') ReleaseInsert('2020-12-02', '3rd Single', 'Futari Dake no Hajimete wo Motto', '26-Ji no Masquerade') ReleaseInsert('2020-12-02', '7th Single', 'Different', 'BAND-MAID') ReleaseInsert('2020-12-02', '2nd Compilation Album', 'WITH (Nakashima Mika)|WITH', 'Nakashima Mika') ReleaseInsert('2020-12-08', '1st Album', 'Furimuite Kyunshite.', 'Kimi ni, Mune Kyun. (Idol Group)|Kimi ni, Mune Kyun.') ReleaseInsert('2020-12-08', '15th Video Release', 'The Road to Graduation 2019 ~Story~', 'Sakura Gakuin') ReleaseInsert('2020-12-09', '1st Single', 'Don\'t Blink', 'B.O.L.T') ReleaseInsert('2020-12-09', '7th Single', 'Sayonara Namida / Hoshi no Kakera', 'spira・spica') ReleaseInsert('2020-12-09', '31st Single', 'Dokuhaku↔Yakudou', 'Sakamoto Maaya') ReleaseInsert('2020-12-09', '2nd Album', '20×20', 'JUNNA') ReleaseInsert('2020-12-09', '2nd Album', 'Shichiten Nanaki', 'Nanawo Akari') ReleaseInsert('2020-12-09', '5th Album', 'Emeralotype', 'Yanagi Nagi') ReleaseInsert('2020-12-09', '1st Cover Album', 'Wakana Covers ~Anime Classics~', 'Wakana') ReleaseInsert('2020-12-15', '1st Single', 'FLOWER / Ao no Kimi / Mihappyou Kyoku', 'My Dear Darlin\'') ReleaseInsert('2020-12-16', '1st Single', 'Wagahai yo Neko de Are', 'Lyrical Lily') ReleaseInsert('2020-12-16', '14th Single', 'silent', 'SEKAI NO OWARI') ReleaseInsert('2020-12-16', '1st EP', '5 KILL STARS', 'PIGGS') ReleaseInsert('2020-12-16', '8th Album', 'Fab! -Music speaks.-', 'Hey! Say! JUMP') ReleaseInsert('2020-12-23', '5th Single', 'Evergreen', 'sajou no hana') ReleaseInsert('2020-12-25', '15th Single', 'Higher and Higher', 'Kozuki Serena') ReleaseInsert('2020-12-23', '26th Single', 'Aitai, Aitai', 'Fudanjuku') ReleaseInsert('2020-12-23', '1st Best Album', '10 BABYMETAL YEARS', 'BABYMETAL') ReleaseInsert('2020-12-23', '2nd Best Album', 'Chouzetsu Shoujo☆COMPLETE 2010～2020', 'SUPER☆GiRLS') ReleaseInsert('2020-12-26', '4th Album', 'Kishikaisei (GARNiDELiA)|Kishikaisei', 'GARNiDELIA')

ReleaseInsert('2021-02-10', '1st Best Album', 'SEKAI NO OWARI 2010-2019', 'SEKAI NO OWARI')

function Ordinal(anumber) if anumber % 10 == 1 then return anumber .. "st" elseif anumber % 10 == 2 then if anumber%100==12 then return anumber .. "th" else return anumber .. "nd" end elseif anumber % 10 == 3 then if anumber%100==13 then return anumber .. "th" else return anumber .. "rd" end else return anumber .. "th" end end

function WhereDateXStarts(yyyymmdd) i = 0 repeat i=i+1 until D[i] >= yyyymmdd or i == table.getn(D) if D[i] < yyyymmdd then i = 1 end return i end

function WhereDateXEnds(yyyymmdd) i = 0 repeat i=i+1 until D[i] > yyyymmdd or i == table.getn(D) if D[i] > yyyymmdd then i = i-1 end return i end function p.upcoming(frame) num_days = tonumber(frame.args.days or 7) num_min = tonumber(frame.args.min or 2) num_max = tonumber(frame.args.max or 999999) starting = frame.args.starting or os.date("%Y-%m-%d",os.time+32400) ending = os.date("%Y-%m-%d", os.time{year=string.sub(starting,1,4), month=string.sub(starting,6,7), day=string.sub(starting,9,10)}+86400*(num_days-1)) --output = "num_days: " .. num_days .. "num_min: " .. num_min .. "starting: " .. starting .. "ending: " ..ending --if 1>0 then return output end STARTBEGINS = WhereDateXStarts(starting) ENDENDS = WhereDateXEnds(ending) if (STARTBEGINS+num_max-1)0 then return output end LISTEND = table.getn(D)

--output = "starting: " .. starting .. " ending: " .. ending .. " STARTBEGINS: " .. STARTBEGINS .. " ENDENDS: " .. ENDENDS .. " LISTEND: " .. LISTEND lastday = 0 output = "" --First read group i = STARTBEGINS while i<= ENDENDS do       thisday = string.sub( D[i], 6, 10 ) if thisday ~= lastday then --It's a new day, something should be written. output = output .. ";" .. os.date("%B %e", os.time{year=2001, month=string.sub(D[i],6,7), day=string.sub(D[i],9,10)}) if thisday==starting then output = output .. ", Release Day!" else output = output .. "" end output = output .. "\n" end output = output .. ": '''" .. T[i] .. "''' " .. N[i] .. " by " .. A[i] .. "\n" lastday = thisday i=i+1 end return output -- .. " " .. os.clock end

function p.between(frame) startdate=frame.args[1] enddate=frame.args[2] typesearch = frame.args.typesearch if startdate > enddate then --You trying to screw things up? Well, we'll just flip 'em. temp = startdate startdate = enddate enddate = temp end output = "" STARTBEGINS = WhereDateXStarts(startdate) ENDENDS = WhereDateXEnds(enddate) --output = "ENDENDS: " .. ENDENDS --if 1>0 then return output end LISTEND = table.getn(D)

--output = "starting: " .. starting .. " ending: " .. ending .. " STARTBEGINS: " .. STARTBEGINS .. " ENDENDS: " .. ENDENDS .. " LISTEND: " .. LISTEND output = "" --First read group i = STARTBEGINS while i<= ENDENDS do       if string.find(string.lower(T[i]), string.lower(typesearch)) then output = output .. ":" .. D[i] .. " '''" .. T[i] .. "''' " .. N[i] .. " by " .. A[i] .. "\n" end i=i+1 end return output end function p.random math.randomseed( os.time ) return "" .. N[math.random(" end return p --