- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "Module:Seasonal"
Jump to navigation
Jump to search
Line 237: | Line 237: | ||
}, | }, | ||
["Light Cruisers"] = { | ["Light Cruisers"] = { | ||
− | ships = { "Abukuma", "Agano", "Isuzu", "Jintsuu | + | ships = { "Abukuma", "Agano", "Isuzu", "Jintsuu", "Kinu", "Kiso", "Kitakami", "Kuma", "Nagara", "Naka", "Natori", "Noshiro", "Ooi", "Ooyodo", "Sakawa", "Sendai", "Tama", "Tatsuta", "Tenryuu", "Yahagi", "Yura", "Yuubari" } |
}, | }, | ||
["Heavy Cruisers"] = { | ["Heavy Cruisers"] = { | ||
Line 259: | Line 259: | ||
["NPC"] = { | ["NPC"] = { | ||
ships = { "Irako", "Mamiya" } | ships = { "Irako", "Mamiya" } | ||
+ | }, | ||
+ | ["Bosses"] = { | ||
+ | ships = { "Northern Princess" } | ||
}, | }, | ||
} | } | ||
− | + | function find_type(ship) | |
+ | for type, data in pairs(types) do | ||
+ | if data.ships and Utils.find(data.ships, ship) then | ||
+ | return type | ||
+ | end | ||
+ | end | ||
+ | return "?" | ||
+ | end | ||
function gen(args, tbl, format) | function gen(args, tbl, format) | ||
Line 274: | Line 284: | ||
i = i + 1 | i = i + 1 | ||
n = n + #ships | n = n + #ships | ||
− | local ships_str = table.concat(Utils.map(ships, function(ship) return string.format("[[#%s|%s]]", ship, ship) end), ", ") | + | local ships_str = table.concat(Utils.map(ships, function(ship) return string.format("[[#%s|%s]]", args.art and (tbl.type == "types" and k or find_type(ship)) or ship, ship) end), ", ") |
if data.url then | if data.url then | ||
result = result .. string.format("|-\n|[%s %s]\n|%s\n", data.url, k, ships_str) | result = result .. string.format("|-\n|[%s %s]\n|%s\n", data.url, k, ships_str) | ||
Line 286: | Line 296: | ||
return format(result, i, n) | return format(result, i, n) | ||
end | end | ||
+ | |||
+ | local Seasonal = {} | ||
function Seasonal.toc(frame) | function Seasonal.toc(frame) |
Revision as of 12:46, 15 January 2016
Documentation for this module may be created at Module:Seasonal/doc
local Utils = require('Module:Utils')
local getArgs = require('Module:GetArgs')
local artists = {
type = "artists",
index = { "Akira", "Amemiya Chiyou", "Ayaki", "bob", "drew", "Fujikawa", "hatsuko", "JiJi", "Konishi", "Kujou Ichiso", "Kusada Souta", "Kuu Ro Kuro", "Mikoto Akemi", "Parsley", "Rikka", "Shibafu", "Shimada Humikane", "Shizuma Yoshinori", "Shobon", "UGUME", "Yadokari" },
["Akira"] = {
ships = {"Mizuho", "Northern Princess"}
},
["Amemiya Chiyou"] = {
url = "http://www.pixiv.net/member.php?id=2095023",
ships = {"Samidare", "Suzukaze"}
},
["Ayaki"] = {
url = "http://www.pixiv.net/member.php?id=8611",
ships = {"Hatsuharu", "Murakumo", "Nenohi", "Tatsuta", "Tenryuu"}
},
["bob"] = {
url = "http://www.pixiv.net/member.php?id=91521",
ships = {"Ashigara", "Chikuma", "Haguro", "Jintsuu", "Myoukou", "Nachi", "Naka", "Sendai", "Shouhou", "Tone"}
},
["drew"] = {
url = "http://www.pixiv.net/member.php?id=193293",
ships = {"Akebono", "Oboro", "Sazanami", "Ushio"}
},
["Fujikawa"] = {
ships = {"Akashi", "Akigumo", "Asagumo", "Asashimo", "Hayashimo", "Irako", "Kazagumo", "Kinugasa", "Kiyoshimo", "Makigumo", "Mamiya", "Naganami", "Ooyodo", "Takanami", "Yamagumo", "Yuugumo"}
},
["hatsuko"] = {
url = "http://www.pixiv.net/member.php?id=237559",
ships = {"Aoba"}
},
["JiJi"] = {
url = "http://www.pixiv.net/member.php?id=3911",
ships = {"Libeccio", "Littorio", "Roma"}
},
["Konishi"] = {
url = "http://www.pixiv.net/member.php?id=4258322",
ships = {"Abukuma", "Agano", "Arare", "Arashi", "Arashio", "Asashio", "Hagikaze", "Haruna", "Hatsukaze", "Hayasui", "Hiei", "Kagerou", "Kasumi", "Kinu", "Kirishima", "Kongou", "Kumano", "Kuroshio", "Maikaze", "Michishio", "Noshiro", "Nowaki", "Ooshio", "Sakawa", "Shiranui", "Shoukaku", "Suzuya", "Yahagi", "Yura", "Yuubari", "Zuihou", "Zuikaku"}
},
["Kujou Ichiso"] = {
url = "http://www.pixiv.net/member.php?id=186655",
ships = {"Harusame", "Kawakaze", "Murasame", "Shigure", "Shiratsuyu", "Taigei", "Umikaze", "Yuudachi"}
},
["Kusada Souta"] = {
url = "http://www.pixiv.net/member.php?id=303275",
ships = {"Kisaragi", "Mutsuki", "Uzuki", "Yayoi"}
},
["Kuu Ro Kuro"] = {
url = "http://www.pixiv.net/member.php?id=29389",
ships = {"Akitsu Maru", "Amagi", "Chitose", "Chiyoda", "Hiyou", "Isuzu", "Junyou", "Katsuragi", "Maruyu", "Nagara", "Natori", "Ryuujou", "Unryuu"}
},
["Mikoto Akemi"] = {
url = "http://www.pixiv.net/member.php?id=501378",
ships = {"Atago", "Takao"}
},
["Parsley"] = {
url = "http://www.pixiv.net/member.php?id=414162",
ships = {"Choukai", "Hamakaze", "Isokaze", "Kashima", "Katori", "Maya", "Tanikaze", "Urakaze"}
},
["Rikka"] = {
url = "http://www.pixiv.net/member.php?id=1926153",
ships = {"Fusou", "Yamashiro"}
},
["Shibafu"] = {
url = "http://www.pixiv.net/member.php?id=312614",
ships = {"Akagi", "Ayanami", "Fubuki", "Hatsuyuki", "Hiryuu", "Houshou", "Hyuuga", "I-401", "Ise", "Isonami", "Kaga", "Kitakami", "Mikuma", "Miyuki", "Mogami", "Ooi", "Shikinami", "Shirayuki", "Souryuu"}
},
["Shimada Humikane"] = {
url = "https://twitter.com/humikane",
ships = {"Bismarck", "Graf Zeppelin", "Prinz Eugen", "Taihou", "U-511", "Z1", "Z3"}
},
["Shizuma Yoshinori"] = {
url = "http://www.pixiv.net/member.php?id=141206",
ships = {"Akitsushima", "Akizuki", "Amatsukaze", "Musashi", "Mutsu", "Nagato", "Shimakaze", "Teruzuki", "Tokitsukaze", "Yamato", "Yukikaze"}
},
["Shobon"] = {
url = "http://www.pixiv.net/member.php?id=2572017",
ships = {"I-168", "I-19", "I-58", "I-8"}
},
["UGUME"] = {
url = "http://www.pixiv.net/member.php?id=1457830",
ships = {"Furutaka", "Kako", "Kiso", "Kuma", "Tama"}
},
["Yadokari"] = {
url = "http://www.pixiv.net/member.php?id=1828868",
ships = {"Akatsuki", "Fumizuki", "Hatsushimo", "Hibiki", "Ikazuchi", "Inazuma", "Kikuzuki", "Mikazuki", "Mochizuki", "Nagatsuki", "Satsuki", "Wakaba"}
},
}
local seiyuus = {
type = "seiyuus",
index = { "Bridcut Sarah Emi", "Endou Aya", "Fujita Saki", "Hayami Saori", "Hayasaka Kozue", "Hidaka Rina", "Horie Yui", "Iguchi Yuka", "Ise Mariya", "Ishigami Shizuka", "Kanemoto Hisako", "Kawasumi Ayako", "Kayano Ai", "Kitou Akari", "Kobayashi Motoko", "Komatsu Mana", "Komatsu Mikako", "Kuno Misaki", "Misato", "Miyagawa Wakana", "Nakajima Megumi", "Nomizu Iori", "Noto Mamiko", "Ogura Yui", "Ootsubo Yuka", "Ozawa Ari", "Sakura Ayane", "Suzaki Aya", "Taketatsu Ayana", "Taneda Risa", "Tanibe Yumi", "Touyama Nao", "Uesaka Sumire", "Yamada Yuki" },
["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 types = {
type = "types",
index = { "Destroyers", "Light Cruisers", "Heavy Cruisers", "Battleships", "Light Carriers", "Standard Carriers", "Submarines", "Auxiliaries", "NPC" },
["Destroyers"] = {
ships = { "Akatsuki", "Akebono", "Akigumo", "Akizuki", "Amatsukaze", "Arare", "Arashi", "Arashio", "Asagumo", "Asashimo", "Asashio", "Ayanami", "Fubuki", "Fumizuki", "Hagikaze", "Hamakaze", "Harusame", "Hatsuharu", "Hatsukaze", "Hatsushimo", "Hatsuyuki", "Hayashimo", "Hibiki", "Ikazuchi", "Inazuma", "Isokaze", "Isonami", "Kagerou", "Kasumi", "Kawakaze", "Kazagumo", "Kikuzuki", "Kisaragi", "Kiyoshimo", "Kuroshio", "Libeccio", "Maikaze", "Makigumo", "Michishio", "Mikazuki", "Miyuki", "Mochizuki", "Murakumo", "Murasame", "Mutsuki", "Naganami", "Nagatsuki", "Nenohi", "Nowaki", "Oboro", "Ooshio", "Samidare", "Satsuki", "Sazanami", "Shigure", "Shikinami", "Shimakaze", "Shiranui", "Shiratsuyu", "Shirayuki", "Suzukaze", "Takanami", "Tanikaze", "Teruzuki", "Tokitsukaze", "Umikaze", "Urakaze", "Ushio", "Uzuki", "Wakaba", "Yamagumo", "Yayoi", "Yukikaze", "Yuudachi", "Yuugumo", "Z1", "Z3" }
},
["Light Cruisers"] = {
ships = { "Abukuma", "Agano", "Isuzu", "Jintsuu", "Kinu", "Kiso", "Kitakami", "Kuma", "Nagara", "Naka", "Natori", "Noshiro", "Ooi", "Ooyodo", "Sakawa", "Sendai", "Tama", "Tatsuta", "Tenryuu", "Yahagi", "Yura", "Yuubari" }
},
["Heavy Cruisers"] = {
ships = { "Aoba", "Ashigara", "Atago", "Chikuma", "Choukai", "Furutaka", "Haguro", "Kako", "Kinugasa", "Kumano", "Maya", "Mikuma", "Mogami", "Myoukou", "Nachi", "Prinz Eugen", "Suzuya", "Takao", "Tone" }
},
["Battleships"] = {
ships = { "Bismarck", "Fusou", "Haruna", "Hiei", "Hyuuga", "Ise", "Kirishima", "Kongou", "Littorio", "Musashi", "Mutsu", "Nagato", "Roma", "Yamashiro", "Yamato" }
},
["Light Carriers"] = {
ships = { "Chitose", "Chiyoda", "Hiyou", "Houshou", "Jun'you", "Ryuuhou", "Ryuujou", "Shouhou", "Zuihou" }
},
["Standard Carriers"] = {
ships = { "Akagi", "Amagi", "Graf Zeppelin", "Hiryuu", "Kaga", "Katsuragi", "Shoukaku", "Souryuu", "Taihou", "Unryuu", "Zuikaku" }
},
["Submarines"] = {
ships = { "I-168", "I-19", "I-401", "I-58", "I-8", "Maruyu", "U-511" }
},
["Auxiliaries"] = {
ships = { "Akashi", "Akitsu Maru", "Akitsushima", "Hayasui", "Kashima", "Katori", "Mizuho", "Taigei" }
},
["NPC"] = {
ships = { "Irako", "Mamiya" }
},
["Bosses"] = {
ships = { "Northern Princess" }
},
}
function find_type(ship)
for type, data in pairs(types) do
if data.ships and Utils.find(data.ships, ship) then
return type
end
end
return "?"
end
function gen(args, tbl, format)
local result = ""
local i = 0
local n = 0
for _, k in ipairs(tbl.index) do
local data = tbl[k]
local ships = Utils.filter(data.ships, function(ship) return Utils.find(args, ship) end)
if #ships > 0 then
i = i + 1
n = n + #ships
local ships_str = table.concat(Utils.map(ships, function(ship) return string.format("[[#%s|%s]]", args.art and (tbl.type == "types" and k or find_type(ship)) or ship, ship) end), ", ")
if data.url then
result = result .. string.format("|-\n|[%s %s]\n|%s\n", data.url, k, ships_str)
elseif tbl.type == "types" then
result = result .. string.format("|-\n|[[#%s|%s]] (%s)\n|%s\n", args[k] and (k .. " 2") or k, k, #ships, ships_str)
else
result = result .. string.format("|-\n|%s\n|%s\n", k, ships_str)
end
end
end
return format(result, i, n)
end
local Seasonal = {}
function Seasonal.toc(frame)
local args = getArgs{frame = frame:getParent()}
return
gen(args, types, function(r, i, n) return string.format([===[{| class="mw-collapsible mw-collapsed wikitable typography-xl-optout" style="width:100%%"
|-
!width=20%%|Class
!%s (%s)
]===], args.text or "Ship girls", n) .. r .. "|}" end)
.. "\n" ..
gen(args, args.art and artists or seiyuus, function(r, i, n) return string.format([===[{| class="mw-collapsible mw-collapsed wikitable typography-xl-optout" style="width:100%%"
|-
!width=20%%|[[%s]] (%s)
!
]===], args.art and "Glossary#List_of_Vessels_by_Artist|Artist" or "Glossary#List_of_Vessels_by_Seiyuu|Seiyuu", i) .. r .. "|}" end)
end
return Seasonal