Module:Seasonal

local seiyuus = { ["Bridcut Sarah Emi"] = { url = "http://myanimelist.net/people/19371/Sarah_Emi_Bridcut", ships = {"Hatsukaze", "Kumano", "Maikaze", "Suzuya", "Yuubari", }, },   ["Endou Aya"] = { url = "http://myanimelist.net/people/54/Aya_Endou", ships = {"Bismarck", "Z1", "Z3", }, },   ["Fujita Saki"] = { url = "http://myanimelist.net/people/504", ships = {"Akagi", "Fusou", "Kagerou", "Kuroshio", "Shiranui", "Tokitsukaze", "Yamashiro", "Yukikaze", }, },   ["Hayami Saori"] = { url = "http://myanimelist.net/people/869/Saori_Hayami", ships = {"Graf Zeppelin", "Hagikaze", }, },   ["Hayasaka Kozue"] = { url = null, ships = {"Akebono", "Oboro", "Sazanami", "Ushio", }, },   ["Hidaka Rina"] = { url = "http://myanimelist.net/people/5250/Rina_Hidaka", ships = {"Fumizuki", "Kikuzuki", "Kisaragi", "Mikazuki", "Mochizuki", "Mutsuki", "Nagatsuki", "Ryuujou", "Satsuki", "Uzuki", "Yayoi", }, },   ["Horie Yui"] = { url = "http://myanimelist.net/people/28/Yui_Horie", ships = {"Amagi", "Asagumo", "Yamagumo", }, },   ["Iguchi Yuka"] = { url = "http://myanimelist.net/people/885/Yuka_Iguchi", ships = {"Chikuma", "Isuzu", "Kaga", "Nagara", "Natori", "Tatsuta", "Tenryuu", "Tone", }, },   ["Ise Mariya"] = { url = "http://myanimelist.net/people/655/Mariya_Ise", ships = {"I-401", }, },   ["Ishigami Shizuka"] = { url = "http://myanimelist.net/people/28755/Shizuka_Ishigami", ships = {"Kawakaze", "Mizuho", "Umikaze", }, },   ["Kanemoto Hisako"] = { url = "http://myanimelist.net/people/8555/Hisako_Kanemoto", ships = {"Harusame", "Hayashimo", "Kiyoshimo", }, },   ["Kawasumi Ayako"] = { url = "http://myanimelist.net/people/13/Ayako_Kawasumi", ships = {"Isokaze", "Ooyodo", "Unryuu", }, },   ["Kayano Ai"] = { url = "http://myanimelist.net/people/10765/", ships = {"Arashi", "Asashimo", "Kashima", "Katori", "Katsuragi", "Ro-500", "U-511", }, },   ["Kitou Akari"] = { url = "https://ja.wikipedia.org/wiki/%E9%AC%BC%E9%A0%AD%E6%98%8E%E9%87%8C", ships = {"Kazagumo", "Libeccio", }, },   ["Kobayashi Motoko"] = { url = "http://myanimelist.net/people/12285/Motoko_Kobayashi", ships = {"Hatsuharu", "Hatsushimo", "Nenohi", "Wakaba", }, },   ["Komatsu Mana"] = { url = "http://myanimelist.net/people/12941/Mana_Komatsu", ships = {"Hamakaze", "Tanikaze", "Urakaze", "Zuihou", }, },   ["Komatsu Mikako"] = { url = "http://myanimelist.net/people/10071/Komatsu_Mikako", ships = {"Akitsushima", "Teruzuki", }, },   ["Kuno Misaki"] = { url = "http://myanimelist.net/people/11641/Misaki_Kuno", ships = {"Littorio", "Roma", "Takanami", }, },   ["Misato"] = { url = "http://myanimelist.net/people/12759/Misato", ships = {"I-19", "I-8", "Musashi", }, },   ["Miyagawa Wakana"] = { url = "http://www.animenewsnetwork.com.au/encyclopedia/people.php?id=98235", ships = {"Arare", "Arashio", "Asashio", "Chitose", "Chiyoda", "Kasumi", "Michishio", "Ooshio", }, },   ["Nakajima Megumi"] = { url = "http://myanimelist.net/people/1105/Megumi_Nakajima", ships = {"I-168", "I-58", "Kinugasa", "Mikuma", }, },   ["Nomizu Iori"] = { url = "http://myanimelist.net/people/8956/Iori_Nomizu", ships = {"Abukuma", "Hayasui", "Kinu", "Shoukaku", "Zuikaku", }, },   ["Noto Mamiko"] = { url = "http://myanimelist.net/people/40/Mamiko_Noto", ships = {"Akitsu Maru", "Maruyu", "Taihou", }, },   ["Ogura Yui"] = { url = "http://myanimelist.net/people/10981/Yui_Ogura", ships = {"Amatsukaze", "Ryuuhou", "Taigei", }, },   ["Ootsubo Yuka"] = { url = "http://myanimelist.net/people/12452/Yuka_Ootsubo", ships = {"Furutaka", "Hiyou", "Hyuuga", "Ise", "Junyou", "Kako", "Kitakami", "Ooi", }, },   ["Ozawa Ari"] = { url = "http://myanimelist.net/people/27395/Ari_Ozawa", ships = {"Akizuki", "Nowaki", "Prinz Eugen", }, },   ["Sakura Ayane"] = { url = "http://myanimelist.net/people/11622/Ayane_Sakura", ships = {"Jintsuu", "Kiso", "Kuma", "Mutsu", "Nagato", "Naka", "Sendai", "Shimakaze", "Tama", }, },   ["Suzaki Aya"] = { url = "http://myanimelist.net/people/19834/Aya_Suzaki", ships = {"Akatsuki", "Aoba", "Hibiki", "Houshou", "Ikazuchi", "Inazuma", "Mogami", }, },   ["Taketatsu Ayana"] = { url = "http://myanimelist.net/people/6996/Ayana_Taketatsu", ships = {"Akigumo", "Makigumo", "Naganami", "Yamato", "Yuugumo", }, },   ["Taneda Risa"] = { url = "http://myanimelist.net/people/16135/Risa_Taneda", ships = {"Akashi", "Ashigara", "Haguro", "Myoukou", "Nachi", "Samidare", "Shouhou", "Suzukaze", }, },   ["Tanibe Yumi"] = { url = "http://myanimelist.net/people/35951", ships = {"Murasame", "Shigure", "Shiratsuyu", "Yura", "Yuudachi", }, },   ["Touyama Nao"] = { url = "http://myanimelist.net/people/11184/Nao_Touyama", ships = {"Atago", "Ayanami", "Choukai", "Haruna", "Hiei", "Kirishima", "Kongou", "Maya", "Shikinami", "Takao", }, },   ["Uesaka Sumire"] = { url = "http://myanimelist.net/people/14441/Sumire_Uesaka", ships = {"Fubuki", "Hatsuyuki", "Hiryuu", "Isonami", "Miyuki", "Murakumo", "Shirayuki", "Souryuu", }, },   ["Yamada Yuki"] = { url = "http://myanimelist.net/people/28053/Yuki_Yamada", ships = {"Agano", "Noshiro", "Sakawa", "Yahagi", }, }, }

local Seasonal = {}

local Utils = require('Module:Utils')

function Seasonal.toc(frame) local args = frame.args local result = "" local i = 0 for seiyuu, data in pairs(seiyuus) do       local ships = Utils.filter(data.ships, function(ship) return Utils.find(args, ship) end) if #ships > 0 then i = i + 1 local ships_str = table.concat(Utils.map(ships, function(ship) return string.format("%s", ship, ship) end), ", ") if data.url then result = result .. string.format("|-\n|[%s %s]\n|%s\n", data.url, seiyuu, ships_str) else result = result .. string.format("|-\n|%s\n|%s\n", seiyuu, ships_str) end end end result = string.format([===[{| class="mw-collapsible mw-collapsed wikitable typography-xl-optout" style="width:100%%" !width=20%%|Seiyuu (%s) ! ]===], i) .. result .. "|}"   return result end

return Seasonal