diff --git a/src/args.cpp b/src/args.cpp index 0f5e4ea..6aa9eb6 100644 --- a/src/args.cpp +++ b/src/args.cpp @@ -197,7 +197,8 @@ parse(int argc, char** argv) options.cover = path; log_info("Defaulted cover to ", path); } - options.name_filter = std::make_optional("(bonus[0-9]|frontmatter[1-2]|UFTSS1/text/1[2-7]|UFTSS1/images/P2V._Tobooks_Manga).(png|jpg|xhtml)"s, std::regex_constants::icase); + /* TODO: filter on chapter type? Doesn't help the images tho */ + options.name_filter = std::make_optional("(bonus[0-9]|frontmatter[1-2]|UFTSS1/text/1[2-7]|UFTSS1/images/P2V._Tobooks_Manga|UFTSS1/text/[5-9]|UFTSS1/images/Manga_0[1-5]|UFTSS1/text/10-[1-5]|UFTSS1/images/CD4_Manga_0[1-5]|[pP]oll[1-2]|[mM]anga[1-2]).(png|jpg|xhtml)"s, std::regex_constants::icase); } options.suffix = utils::find_if_optarg(args_options, "--suffix="sv, std::identity{}); diff --git a/src/part5_defs.h b/src/part5_defs.h index f448299..0395cab 100644 --- a/src/part5_defs.h +++ b/src/part5_defs.h @@ -635,6 +635,94 @@ constexpr std::array vol_4 = std::to_array({ { volume::P5V7, /* COPYRIGHT */ "Text/copyright.xhtml", "application/xhtml+xml", "Copyright", true }, }); + constexpr std::array vol_8 = std::to_array({ +{ volume::P5V8, /* NCX */ "toc.ncx", "application/x-dtbncx+xml", std::nullopt, false }, +{ volume::P5V8, /* STYLESHEET */ "Styles/stylesheet.css", "text/css", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/jnovelclubCMYK.png", "image/png", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Bonus1.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Bonus2.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Characters1.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Characters2.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Characters3.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Cover.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/FrontMatter1.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/FrontMatter2.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert1.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert2.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert3.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert4.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert5.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert6.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert7.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert8.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert9.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Insert10.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Manga1.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Manga2.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* IMAGE */ "Images/Map.jpg", "image/jpeg", std::nullopt, false }, +{ volume::P5V8, /* COVER */ "Text/cover.xhtml", "application/xhtml+xml", "Cover", true }, +{ volume::P5V8, /* FRONTMATTER */ "Text/frontmatter1.xhtml", "application/xhtml+xml", "Color Illustrations", true }, +{ volume::P5V8, /* FRONTMATTER */ "Text/frontmatter2.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHARACTERS */ "Text/characters1.xhtml", "application/xhtml+xml", "Characters", true }, +{ volume::P5V8, /* CHARACTERS */ "Text/characters2.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHARACTERS */ "Text/characters3.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* TOC */ "Text/toc.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/prologue.xhtml", "application/xhtml+xml", "Prologue", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/prologue_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter1.xhtml", "application/xhtml+xml", "Uniting", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter2.xhtml", "application/xhtml+xml", "Their Information and Name Stones", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter3.xhtml", "application/xhtml+xml", "Teleporting", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter4.xhtml", "application/xhtml+xml", "To Battle", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert2.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter4_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter5.xhtml", "application/xhtml+xml", "Ahrensbach’s Temple", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter6.xhtml", "application/xhtml+xml", "Ahrensbach’s Foundation and Replenishment Hall", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter7.xhtml", "application/xhtml+xml", "Rescue", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert3.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter7_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter8.xhtml", "application/xhtml+xml", "My Geduldh", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter9.xhtml", "application/xhtml+xml", "The Zent and the Grutrissheit", true }, + +{ volume::P5V8, /* CHAPTER */ "Text/side2.xhtml", "application/xhtml+xml", "Follow Your Heart", true }, + +{ volume::P5V8, /* CHAPTER */ "Text/chapter10.xhtml", "application/xhtml+xml", "The New Aub", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter11.xhtml", "application/xhtml+xml", "The Aub’s Protection", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert4.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter12.xhtml", "application/xhtml+xml", "Lanzenave’s Ships", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter13.xhtml", "application/xhtml+xml", "Summoning Winter", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert5.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter13_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter14.xhtml", "application/xhtml+xml", "Choices", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter15.xhtml", "application/xhtml+xml", "Playground", true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter16.xhtml", "application/xhtml+xml", "Rumors and a Departure", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert6.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter16_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter17.xhtml", "application/xhtml+xml", "Bindewald", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert7.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter17_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/chapter18.xhtml", "application/xhtml+xml", "Black Weapons and Chalices", true }, + +{ volume::P5V8, /* CHAPTER */ "Text/side1.xhtml", "application/xhtml+xml", "The Defense of Ehrenfest (First Half)", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert9.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/side1_1.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert10.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/side1_2.xhtml", "application/xhtml+xml", std::nullopt, true }, + +{ volume::P5V8, /* CHAPTER */ "Text/epilogue.xhtml", "application/xhtml+xml", "Epilogue", true }, +{ volume::P5V8, /* CHAPTER */ "Text/insert8.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* CHAPTER */ "Text/epilogue_1.xhtml", "application/xhtml+xml", std::nullopt, true }, + +{ volume::P5V8, /* AFTERWORD */ "Text/afterword.xhtml", "application/xhtml+xml", "Afterword", true }, +{ volume::P5V8, /* MAP_EHRENFEST_DUCHY */ "Text/map.xhtml", "application/xhtml+xml", "Map of Ehrenfest Duchy", true }, +{ volume::P5V8, /* MANGA */ "Text/manga1.xhtml", "application/xhtml+xml", "A Comfy Life with My Family by You Shiina", true }, +{ volume::P5V8, /* MANGA */ "Text/manga2.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* BONUS */ "Text/bonus1.xhtml", "application/xhtml+xml", "Bonus High Resolution Illustrations", true }, +{ volume::P5V8, /* BONUS */ "Text/bonus2.xhtml", "application/xhtml+xml", std::nullopt, true }, +{ volume::P5V8, /* SIGNUP */ "Text/signup.xhtml", "application/xhtml+xml", "About J-Novel Club", true }, +{ volume::P5V8, /* COPYRIGHT */ "Text/copyright.xhtml", "application/xhtml+xml", "Copyright", true }, + }); + constexpr definition_span_view_t vol_1_def { std::span(vol_1), volume::P5V1 }; constexpr definition_span_view_t vol_2_def { std::span(vol_2), volume::P5V2 }; constexpr definition_span_view_t vol_3_def { std::span(vol_3), volume::P5V3 }; @@ -642,9 +730,10 @@ constexpr std::array vol_4 = std::to_array({ constexpr definition_span_view_t vol_5_def { std::span(vol_5), volume::P5V5 }; constexpr definition_span_view_t vol_6_def { std::span(vol_6), volume::P5V6 }; constexpr definition_span_view_t vol_7_def { std::span(vol_7), volume::P5V7 }; + constexpr definition_span_view_t vol_8_def { std::span(vol_8), volume::P5V8 }; constexpr std::array part_5_arr { std::to_array({ - vol_1_def, vol_2_def, vol_3_def, vol_4_def, vol_5_def, vol_6_def, vol_7_def, + vol_1_def, vol_2_def, vol_3_def, vol_4_def, vol_5_def, vol_6_def, vol_7_def, vol_8_def, }) }; constexpr definition_view_t part_5_def { std::span(part_5_arr), omnibus::PART5 }; diff --git a/src/volumes.cpp b/src/volumes.cpp index bab57c9..85bf14f 100644 --- a/src/volumes.cpp +++ b/src/volumes.cpp @@ -46,6 +46,7 @@ namespace { {"ascendance-of-a-bookworm-part-5-volume-5"sv, volume::P5V5}, {"ascendance-of-a-bookworm-part-5-volume-6"sv, volume::P5V6}, {"ascendance-of-a-bookworm-part-5-volume-7"sv, volume::P5V7}, + {"ascendance-of-a-bookworm-part-5-volume-8"sv, volume::P5V8}, }; using namespace std::string_view_literals; @@ -83,6 +84,7 @@ namespace { {"9781718346512"sv, volume::P5V5}, {"9781718346536"sv, volume::P5V6}, {"9781718346550"sv, volume::P5V7}, + {"9781718346574"sv, volume::P5V8}, {"9781718338005"sv, volume::M1V1}, {"9781718338029"sv, volume::M1V2}, {"9781718338043"sv, volume::M1V3}, diff --git a/src/volumes.h b/src/volumes.h index 8939538..1ab70b7 100644 --- a/src/volumes.h +++ b/src/volumes.h @@ -44,6 +44,7 @@ enum class volume P5V5, P5V6, P5V7, + P5V8, FB1, FB2, FB3,