diff --git a/src/all/ninehentai/build.gradle b/src/all/ninehentai/build.gradle index ec756f90b..63ab4b061 100644 --- a/src/all/ninehentai/build.gradle +++ b/src/all/ninehentai/build.gradle @@ -5,11 +5,11 @@ ext { appName = 'Tachiyomi: NineHentai' pkgNameSuffix = 'all.ninehentai' extClass = '.NineHentai' - extVersionCode = 3 + extVersionCode = 4 libVersion = '1.2' } dependencies { - compileOnly 'com.google.code.gson:gson:2.8.2' + compileOnly 'com.google.code.gson:gson:2.8.5' compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' compileOnly 'com.github.inorichi.injekt:injekt-core:65b0440' } diff --git a/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/Dto.kt b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/Dto.kt index c9966f905..c229b3490 100644 --- a/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/Dto.kt +++ b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/Dto.kt @@ -1,5 +1,32 @@ package eu.kanade.tachiyomi.extension.all.ninehentai -data class id( - val id : Int +import eu.kanade.tachiyomi.source.model.Filter + +data class Manga( + val id : Int, + var title: String, + val image_server: String, + val tags: List, + val total_page: Int +) + +class Tag( + val id: Int, + name: String, + val description: String = "null", + val type: Int = 1 +): Filter.TriState(name) + + +data class SearchRequest( + val text: String, + val page: Int, + val sort: Int, + val pages: Map = mapOf("range" to intArrayOf(0, 2000)), + val tag: Map +) + +data class Items( + val included: MutableList, + val excluded: MutableList ) \ No newline at end of file diff --git a/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NHTags.kt b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NHTags.kt new file mode 100644 index 000000000..9c15336e4 --- /dev/null +++ b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NHTags.kt @@ -0,0 +1,1524 @@ +package eu.kanade.tachiyomi.extension.all.ninehentai + +object NHTags { + fun getTagsList() = listOf( + Tag(id = 16712, name = "3d"), + Tag(id = 1054, name = "Abortion"), + Tag(id = 5198, name = "Absorption"), + Tag(id = 3576, name = "Adventitious Penis"), + Tag(id = 9348, name = "Adventitious Vagina"), + Tag(id = 25549, name = "Afro"), + Tag(id = 193, name = "Age Progression"), + Tag(id = 702, name = "Age Regression"), + Tag(id = 214, name = "Ahegao"), + Tag(id = 6636, name = "Albino"), + Tag(id = 10, name = "Alien"), + Tag(id = 1101, name = "Alien Girl"), + Tag(id = 215, name = "All The Way Through"), + Tag(id = 23272, name = "Already Uploaded"), + Tag(id = 288, name = "Amputee"), + Tag(id = 30, name = "Anal"), + Tag(id = 6266, name = "Anal Birth"), + Tag(id = 10530, name = "Animal On Animal"), + Tag(id = 11881, name = "Animal On Furry"), + Tag(id = 17056, name = "Animated"), + Tag(id = 4770, name = "Anorexic"), + Tag(id = 15880, name = "Anthology"), + Tag(id = 24975, name = "Ao No Sunadokei"), + Tag(id = 209, name = "Apron"), + Tag(id = 814, name = "Armpit Licking"), + Tag(id = 815, name = "Armpit Sex"), + Tag(id = 15974, name = "Artbook"), + Tag(id = 1705, name = "Asphyxiation"), + Tag(id = 1755, name = "Ass Expansion"), + Tag(id = 2148, name = "Assjob"), + Tag(id = 24352, name = "Atsushima Tetsuya"), + Tag(id = 673, name = "Aunt"), + Tag(id = 329, name = "Autofellatio"), + Tag(id = 5662, name = "Autopaizuri"), + Tag(id = 602, name = "Bald"), + Tag(id = 1689, name = "Ball Sucking"), + Tag(id = 5558, name = "Balljob"), + Tag(id = 6380, name = "Balls Expansion"), + Tag(id = 19880, name = "Ban Daiki"), + Tag(id = 36, name = "Bandages"), + Tag(id = 3424, name = "Bandaid"), + Tag(id = 16564, name = "Baphomet"), + Tag(id = 65, name = "Bbm"), + Tag(id = 860, name = "Bbw"), + Tag(id = 147, name = "Bdsm"), + Tag(id = 1154, name = "Bear"), + Tag(id = 4259, name = "Bear Boy"), + Tag(id = 2161, name = "Bear Girl"), + Tag(id = 744, name = "Beauty Mark"), + Tag(id = 2349, name = "Bee Girl"), + Tag(id = 25675, name = "Belial"), + Tag(id = 230, name = "Bestiality"), + Tag(id = 768, name = "Big Areolae"), + Tag(id = 175, name = "Big Ass"), + Tag(id = 1979, name = "Big Balls"), + Tag(id = 42, name = "Big Breasts"), + Tag(id = 559, name = "Big Clit"), + Tag(id = 5081, name = "Big Lips"), + Tag(id = 861, name = "Big Nipples"), + Tag(id = 127, name = "Big Penis"), + Tag(id = 5387, name = "Big Vagina"), + Tag(id = 130, name = "Bike Shorts"), + Tag(id = 201, name = "Bikini"), + Tag(id = 284, name = "Birth"), + Tag(id = 121, name = "Bisexual"), + Tag(id = 104, name = "Blackmail"), + Tag(id = 1057, name = "Blind"), + Tag(id = 1004, name = "Blindfold"), + Tag(id = 330, name = "Blood"), + Tag(id = 106, name = "Bloomers"), + Tag(id = 52, name = "Blowjob"), + Tag(id = 2274, name = "Blowjob Face"), + Tag(id = 269, name = "Body Modification"), + Tag(id = 888, name = "Body Painting"), + Tag(id = 5502, name = "Body Swap"), + Tag(id = 3385, name = "Body Writing"), + Tag(id = 4359, name = "Bodystocking"), + Tag(id = 35, name = "Bodysuit"), + Tag(id = 107, name = "Bondage"), + Tag(id = 5101, name = "Brain Fuck"), + Tag(id = 22629, name = "Brave Kingdom"), + Tag(id = 194, name = "Breast Expansion"), + Tag(id = 246, name = "Breast Feeding"), + Tag(id = 2801, name = "Breast Reduction"), + Tag(id = 335, name = "Bride"), + Tag(id = 2216, name = "Brother"), + Tag(id = 25392, name = "Buddly Love"), + Tag(id = 131, name = "Bukkake"), + Tag(id = 561, name = "Bull"), + Tag(id = 16623, name = "Bump Squad Wolfsbane"), + Tag(id = 797, name = "Bunny Boy"), + Tag(id = 76, name = "Bunny Girl"), + Tag(id = 17169, name = "Burn Out Syndrome"), + Tag(id = 14027, name = "Burping"), + Tag(id = 585, name = "Business Suit"), + Tag(id = 16194, name = "Buso"), + Tag(id = 20819, name = "Buta Hormone"), + Tag(id = 1534, name = "Butler"), + Tag(id = 20149, name = "Byoujo No Sho"), + Tag(id = 16605, name = "Cacty"), + Tag(id = 289, name = "Cannibalism"), + Tag(id = 16362, name = "Canvas 2"), + Tag(id = 19114, name = "Capsule"), + Tag(id = 16484, name = "Captain Tsubasa Fcmin Hiroshima"), + Tag(id = 16028, name = "Caption"), + Tag(id = 10130, name = "Cashier"), + Tag(id = 599, name = "Cat"), + Tag(id = 562, name = "Catboy"), + Tag(id = 17122, name = "Catch And Release"), + Tag(id = 3115, name = "Catfight"), + Tag(id = 77, name = "Catgirl"), + Tag(id = 1053, name = "Cbt"), + Tag(id = 25097, name = "Cc6512"), + Tag(id = 2468, name = "Centaur"), + Tag(id = 239, name = "Cervix Penetration"), + Tag(id = 25210, name = "Chakichi"), + Tag(id = 1049, name = "Chastity Belt"), + Tag(id = 17123, name = "Chayamachi Mejiro"), + Tag(id = 211, name = "Cheating"), + Tag(id = 132, name = "Cheerleader"), + Tag(id = 19745, name = "Chihiro Nobuki"), + Tag(id = 20502, name = "Chika Madoka"), + Tag(id = 22943, name = "Chikadoh"), + Tag(id = 533, name = "Chikan"), + Tag(id = 774, name = "Chinese Dress"), + Tag(id = 25058, name = "Chinpo"), + Tag(id = 15911, name = "Chitumatsuriya Honpo"), + Tag(id = 16516, name = "Chloe Wichers"), + Tag(id = 19312, name = "Chloe Withers"), + Tag(id = 148, name = "Chloroform"), + Tag(id = 19538, name = "Chobikuma"), + Tag(id = 18671, name = "Choiki"), + Tag(id = 16987, name = "Chou Shiryu"), + Tag(id = 16075, name = "Chouji Maboroshi"), + Tag(id = 17135, name = "Chouko"), + Tag(id = 22986, name = "Chounyuu For You"), + Tag(id = 23808, name = "Chounyuu Kenkyuushitsu"), + Tag(id = 1598, name = "Christmas"), + Tag(id = 21526, name = "Chrono Nanae"), + Tag(id = 16546, name = "Chu-shin Kuranosuke"), + Tag(id = 19374, name = "Chubold"), + Tag(id = 22053, name = "Chuchu"), + Tag(id = 16443, name = "Chunen"), + Tag(id = 17036, name = "Clalaclan Philias"), + Tag(id = 5840, name = "Clamp"), + Tag(id = 16280, name = "Clara.v"), + Tag(id = 16140, name = "Classmates"), + Tag(id = 1178, name = "Clit Growth"), + Tag(id = 4008, name = "Closed Eyes"), + Tag(id = 2691, name = "Clothed Female Nude Male"), + Tag(id = 8975, name = "Clothed Male Nude Female"), + Tag(id = 5229, name = "Clothed Paizuri"), + Tag(id = 16661, name = "Clown"), + Tag(id = 1044, name = "Coach"), + Tag(id = 5826, name = "Cockslapping"), + Tag(id = 231, name = "Collar"), + Tag(id = 16496, name = "Compilation"), + Tag(id = 179, name = "Condom"), + Tag(id = 13690, name = "Conjoined"), + Tag(id = 3064, name = "Coprophagia"), + Tag(id = 25201, name = "Cor Leonis"), + Tag(id = 22318, name = "Coribou"), + Tag(id = 253, name = "Corruption"), + Tag(id = 796, name = "Corset"), + Tag(id = 527, name = "Cosplaying"), + Tag(id = 674, name = "Cousin"), + Tag(id = 16666, name = "Cousinanon"), + Tag(id = 14293, name = "Cow"), + Tag(id = 564, name = "Cowgirl"), + Tag(id = 7008, name = "Cowman"), + Tag(id = 25442, name = "Creamytea"), + Tag(id = 128, name = "Crossdressing"), + Tag(id = 852, name = "Crotch Tattoo"), + Tag(id = 4034, name = "Crown"), + Tag(id = 17534, name = "Cubetype"), + Tag(id = 4760, name = "Cum Bath"), + Tag(id = 535, name = "Cum In Eye"), + Tag(id = 913, name = "Cum Swap"), + Tag(id = 560, name = "Cunnilingus"), + Tag(id = 10106, name = "Cuntboy"), + Tag(id = 17444, name = "Curo-kun"), + Tag(id = 23878, name = "Cyan Coke"), + Tag(id = 17323, name = "Cynthia B. Rogers"), + Tag(id = 16510, name = "Dabi"), + Tag(id = 18152, name = "Dai Moru Ya"), + Tag(id = 16120, name = "Daiousamajihen"), + Tag(id = 16366, name = "Dakouin Saboru"), + Tag(id = 16008, name = "Danger-j"), + Tag(id = 23670, name = "Darai."), + Tag(id = 1306, name = "Dark Nipples"), + Tag(id = 16662, name = "Dark Princess"), + Tag(id = 3621, name = "Dark Sclera"), + Tag(id = 51, name = "Dark Skin"), + Tag(id = 275, name = "Daughter"), + Tag(id = 16017, name = "De Kirei Yume"), + Tag(id = 20305, name = "Deception Iv"), + Tag(id = 216, name = "Deepthroat"), + Tag(id = 24670, name = "Deer Boy"), + Tag(id = 16956, name = "Deer Girl"), + Tag(id = 67, name = "Defloration"), + Tag(id = 17321, name = "Gyuo"), + Tag(id = 15909, name = "Gyupaibyu"), + Tag(id = 25565, name = "Gyzertoast"), + Tag(id = 16759, name = "Hachikyu"), + Tag(id = 20014, name = "Hachimitsu Ouji"), + Tag(id = 19369, name = "Hadaka"), + Tag(id = 16772, name = "Hadamurasaki"), + Tag(id = 16474, name = "Hagiri"), + Tag(id = 15251, name = "Haigure"), + Tag(id = 2647, name = "Hairjob"), + Tag(id = 336, name = "Hairy"), + Tag(id = 337, name = "Hairy Armpits"), + Tag(id = 17070, name = "Haitenai"), + Tag(id = 22944, name = "Halco"), + Tag(id = 16293, name = "Halftooth"), + Tag(id = 20445, name = "Halkrom"), + Tag(id = 24341, name = "Halsione"), + Tag(id = 15898, name = "Hamu Boshi"), + Tag(id = 17064, name = "Hanaoka"), + Tag(id = 16792, name = "Hanatarou"), + Tag(id = 7088, name = "Handicapped"), + Tag(id = 352, name = "Handjob"), + Tag(id = 15919, name = "Hanzaki Ran"), + Tag(id = 17041, name = "Happy Start"), + Tag(id = 16376, name = "Haraheridou"), + Tag(id = 16954, name = "Harapeko Manbou"), + Tag(id = 20423, name = "Harazumi Tami"), + Tag(id = 16189, name = "Haredou"), + Tag(id = 270, name = "Harem"), + Tag(id = 16115, name = "Harenchi Noon"), + Tag(id = 22137, name = "Hareta"), + Tag(id = 15877, name = "Harimaro"), + Tag(id = 3468, name = "Harness"), + Tag(id = 616, name = "Harpy"), + Tag(id = 17537, name = "Hatomile"), + Tag(id = 16483, name = "Hayase Hidekazu"), + Tag(id = 17473, name = "Hayato Shibusawa"), + Tag(id = 16736, name = "Heart Core"), + Tag(id = 17552, name = "Hebun Irebun"), + Tag(id = 24170, name = "Hemu"), + Tag(id = 15905, name = "Henachokopinkizu"), + Tag(id = 16183, name = "Hentai B"), + Tag(id = 16072, name = "Hentai The Radical"), + Tag(id = 21724, name = "Heresy"), + Tag(id = 3527, name = "Heterochromia"), + Tag(id = 19908, name = "Hidamaru"), + Tag(id = 125, name = "Hidden Sex"), + Tag(id = 16164, name = "Hieda No Anana"), + Tag(id = 16165, name = "Hieda No Aya"), + Tag(id = 16005, name = "Hieda Touijin"), + Tag(id = 15907, name = "Higashizato Kirico"), + Tag(id = 18131, name = "Higumax"), + Tag(id = 9356, name = "Hijab"), + Tag(id = 24155, name = "Hikari Kamigishi"), + Tag(id = 16632, name = "Hikari Konohana"), + Tag(id = 15981, name = "Hikaru Hayashi"), + Tag(id = 22492, name = "Hikkin"), + Tag(id = 17457, name = "Hikoushi"), + Tag(id = 17138, name = "Himawari Manjyu"), + Tag(id = 19581, name = "Himitsu No Hanazono"), + Tag(id = 15903, name = "Hina Can"), + Tag(id = 16026, name = "Hiroki Endo"), + Tag(id = 16336, name = "Hisako Ushigami"), + Tag(id = 24708, name = "Hisashi Ryuuto"), + Tag(id = 25200, name = "Hiyori Chan"), + Tag(id = 23351, name = "Hizuki Haruka"), + Tag(id = 16982, name = "Hmp"), + Tag(id = 15978, name = "Hobihobi"), + Tag(id = 15895, name = "Hokuhokutou Ejiputo Gaisha"), + Tag(id = 17246, name = "Homigiwa Ichiyou"), + Tag(id = 15902, name = "Homing Spitz"), + Tag(id = 16256, name = "Honami Majo"), + Tag(id = 21678, name = "Honenuki Chicken."), + Tag(id = 20041, name = "Hong Ban-jang"), + Tag(id = 21465, name = "Hori Makoto"), + Tag(id = 1712, name = "Horns"), + Tag(id = 15899, name = "Horny Animals"), + Tag(id = 17178, name = "Horobi No Michi"), + Tag(id = 234, name = "Horse"), + Tag(id = 1577, name = "Horse Boy"), + Tag(id = 8480, name = "Horse Cock"), + Tag(id = 1578, name = "Horse Girl"), + Tag(id = 1187, name = "Hotpants"), + Tag(id = 15982, name = "How To"), + Tag(id = 202, name = "Huge Breasts"), + Tag(id = 282, name = "Huge Penis"), + Tag(id = 21295, name = "Hui C"), + Tag(id = 1095, name = "Human On Furry"), + Tag(id = 298, name = "Human Pet"), + Tag(id = 753, name = "Humiliation"), + Tag(id = 16216, name = "Husky Guy"), + Tag(id = 16225, name = "Hutamizu Kirin"), + Tag(id = 20991, name = "Hyakuhachi Kyoukai"), + Tag(id = 17315, name = "Hys"), + Tag(id = 24780, name = "Ibarad"), + Tag(id = 16238, name = "Ibaraki Kasen"), + Tag(id = 16711, name = "Ice Lee"), + Tag(id = 16105, name = "Ichinensei Ni Nacchattara"), + Tag(id = 21720, name = "Idumi"), + Tag(id = 15874, name = "If Code"), + Tag(id = 18986, name = "Iiniku Ushijima"), + Tag(id = 17229, name = "Iisuke"), + Tag(id = 16788, name = "Ikebukuro"), + Tag(id = 15998, name = "Ikenie Seminar"), + Tag(id = 16339, name = "Im Dal-young"), + Tag(id = 15973, name = "Immoral Maika"), + Tag(id = 220, name = "Impregnation"), + Tag(id = 18800, name = "Inazuma Blade"), + Tag(id = 203, name = "Incest"), + Tag(id = 15868, name = "Incomplete"), + Tag(id = 8840, name = "Infantilism"), + Tag(id = 221, name = "Inflation"), + Tag(id = 21709, name = "Inijio"), + Tag(id = 17962, name = "Inner Moka"), + Tag(id = 16144, name = "Inoue"), + Tag(id = 236, name = "Insect"), + Tag(id = 4648, name = "Insect Boy"), + Tag(id = 2469, name = "Insect Girl"), + Tag(id = 1252, name = "Inseki"), + Tag(id = 16978, name = "Inugoya Kakko Kari"), + Tag(id = 22358, name = "Inuguro Sansei"), + Tag(id = 24207, name = "Inui Achu"), + Tag(id = 24994, name = "Inunabe"), + Tag(id = 23760, name = "Inuzuka Koutarou"), + Tag(id = 242, name = "Inverted Nipples"), + Tag(id = 1424, name = "Invisible"), + Tag(id = 20910, name = "Ireading"), + Tag(id = 18318, name = "Irukukwu"), + Tag(id = 16885, name = "Isana Tachibana"), + Tag(id = 16498, name = "Isobe Mutsumi"), + Tag(id = 16276, name = "Issei Ryuudou"), + Tag(id = 16701, name = "Itigosizu Eri Natsume"), + Tag(id = 17005, name = "Itomari"), + Tag(id = 15975, name = "Itsuki Sayaka"), + Tag(id = 23386, name = "Iwapero"), + Tag(id = 16142, name = "Izawa"), + Tag(id = 25181, name = "Izu"), + Tag(id = 17556, name = "Izumi-s"), + Tag(id = 21941, name = "Izumida Touichirou"), + Tag(id = 16468, name = "Jace Beleren"), + Tag(id = 19082, name = "Jack O Lantern"), + Tag(id = 16157, name = "Jaga Note"), + Tag(id = 16942, name = "Jake Muller"), + Tag(id = 16321, name = "Jibakurei"), + Tag(id = 25577, name = "Jiggly Toons"), + Tag(id = 17156, name = "Jika"), + Tag(id = 19874, name = "Joe Hasegawa"), + Tag(id = 17324, name = "Johnny-do"), + Tag(id = 16774, name = "Johnnys Jimusho"), + Tag(id = 16950, name = "Jomy Marquis Shin"), + Tag(id = 16263, name = "Jonokuchi Joji"), + Tag(id = 18310, name = "Jony"), + Tag(id = 18990, name = "Jonylaser R"), + Tag(id = 17778, name = "Joso No Oji-sama"), + Tag(id = 2231, name = "Josou Seme"), + Tag(id = 24084, name = "Jsc"), + Tag(id = 16495, name = "Juana"), + Tag(id = 16222, name = "Jun686"), + Tag(id = 23865, name = "Junior"), + Tag(id = 16625, name = "Junjou Kurarimondo"), + Tag(id = 22065, name = "Junkie Daijin"), + Tag(id = 16078, name = "Juuichijou"), + Tag(id = 20745, name = "Juurokurou"), + Tag(id = 23758, name = "K.tomo"), + Tag(id = 15984, name = "K.z.z."), + Tag(id = 15985, name = "K.z.z. Force"), + Tag(id = 15986, name = "K.z.z. Gundan"), + Tag(id = 17660, name = "K2tomonokai"), + Tag(id = 22223, name = "Kabi Killer"), + Tag(id = 17227, name = "Kabutomaru Choko"), + Tag(id = 24023, name = "Kadarinka"), + Tag(id = 23374, name = "Kagayakitei"), + Tag(id = 16267, name = "Kagehara Hanzow"), + Tag(id = 16976, name = "Kagura Heki"), + Tag(id = 19909, name = "Kaijuu"), + Tag(id = 18440, name = "Kaishou Nachi"), + Tag(id = 17147, name = "Kaitouchuu."), + Tag(id = 23508, name = "Kakeyu"), + Tag(id = 16584, name = "Kamadoya"), + Tag(id = 21085, name = "Kamatsukatei"), + Tag(id = 20255, name = "Kamiaya"), + Tag(id = 16315, name = "Kaminobe"), + Tag(id = 16316, name = "Kaminobe Kanon"), + Tag(id = 18528, name = "Kamiomi Tsukuyomi"), + Tag(id = 16606, name = "Kamo Nabako"), + Tag(id = 17155, name = "Kaname Itsuki"), + Tag(id = 16274, name = "Kanatofu"), + Tag(id = 23940, name = "Kancho"), + Tag(id = 15912, name = "Kankuro"), + Tag(id = 18378, name = "Kannagi No Tori"), + Tag(id = 24265, name = "Kano Yattsu Hashi"), + Tag(id = 16826, name = "Kanran Okawa"), + Tag(id = 18818, name = "Kanu Uncho"), + Tag(id = 5660, name = "Kappa"), + Tag(id = 21307, name = "Kare-nidaikon"), + Tag(id = 24171, name = "Karhu"), + Tag(id = 17168, name = "Kasai Yukiha"), + Tag(id = 18360, name = "Kashinopon"), + Tag(id = 16519, name = "Katanashi Apollo"), + Tag(id = 19616, name = "Katou Setsuko"), + Tag(id = 16831, name = "Katsumi Liqueur"), + Tag(id = 21010, name = "Kawada"), + Tag(id = 16456, name = "Kawakita Hiroyuki"), + Tag(id = 16850, name = "Kazemichi"), + Tag(id = 15892, name = "Kazoku Yuugi"), + Tag(id = 24881, name = "Kazumi Araiwa"), + Tag(id = 15956, name = "Kdft"), + Tag(id = 23717, name = "Kebiishi"), + Tag(id = 15972, name = "Keikihei"), + Tag(id = 15878, name = "Keitaro Arima"), + Tag(id = 80, name = "Kemonomimi"), + Tag(id = 16979, name = "Kemonoskey"), + Tag(id = 16557, name = "Ken Fudou"), + Tag(id = 23880, name = "Kenesco"), + Tag(id = 23881, name = "Kenesu"), + Tag(id = 16558, name = "Kenn Fudou"), + Tag(id = 20769, name = "Kenta Yumiya"), + Tag(id = 25043, name = "Kichihachi"), + Tag(id = 21547, name = "Kien-biu"), + Tag(id = 1155, name = "Kigurumi"), + Tag(id = 16633, name = "Kimiaki Shirai"), + Tag(id = 16340, name = "Kimkwang-hyun"), + Tag(id = 17199, name = "Kimmie"), + Tag(id = 689, name = "Kimono"), + Tag(id = 16627, name = "Kin-tore"), + Tag(id = 6173, name = "Kindergarten Uniform"), + Tag(id = 16761, name = "Kinkaku"), + Tag(id = 17116, name = "Kinmechou Pinku"), + Tag(id = 22920, name = "Kinnataro"), + Tag(id = 16834, name = "Kino Asana"), + Tag(id = 22586, name = "Kinomiya Yutaka"), + Tag(id = 17842, name = "Kira Asamiya"), + Tag(id = 16671, name = "Kiri Gami Shima"), + Tag(id = 16672, name = "Kiri Shin Shima"), + Tag(id = 16355, name = "Kirimochi Niwe"), + Tag(id = 724, name = "Kissing"), + Tag(id = 16793, name = "Kitamakura"), + Tag(id = 18682, name = "Kitou Chimata"), + Tag(id = 25255, name = "Kitsunekov"), + Tag(id = 3473, name = "Kneepit Sex"), + Tag(id = 21820, name = "Kobamiso"), + Tag(id = 17109, name = "Koboshi"), + Tag(id = 21384, name = "Kohako"), + Tag(id = 16141, name = "Kohe"), + Tag(id = 18298, name = "Koi Mo Mata Utau"), + Tag(id = 17325, name = "Koikuchikinako"), + Tag(id = 25612, name = "Kokitsuma"), + Tag(id = 15896, name = "Kokuritsu Shounen"), + Tag(id = 16678, name = "Kokuryu"), + Tag(id = 17267, name = "Kokuto Nikke"), + Tag(id = 23694, name = "Konakona"), + Tag(id = 23872, name = "Konbu Kyoudai"), + Tag(id = 23151, name = "Konezu"), + Tag(id = 16851, name = "Konno Kita"), + Tag(id = 16949, name = "Konoka"), + Tag(id = 16306, name = "Koridorasu"), + Tag(id = 19523, name = "Kotarou Katsura"), + Tag(id = 16922, name = "Kotoe"), + Tag(id = 19555, name = "Kou-chan"), + Tag(id = 18799, name = "Koube Iori"), + Tag(id = 17278, name = "Kozo Youhei"), + Tag(id = 21828, name = "Kozountoko"), + Tag(id = 15901, name = "Kudara Naizo"), + Tag(id = 16424, name = "Kumazaki Satoru"), + Tag(id = 17658, name = "Kunisaki"), + Tag(id = 377, name = "Kunoichi"), + Tag(id = 24057, name = "Kuntakku"), + Tag(id = 16870, name = "Kurajin"), + Tag(id = 17086, name = "Kurazushi"), + Tag(id = 24069, name = "Kurenai Okome"), + Tag(id = 19039, name = "Kurokami Kujika"), + Tag(id = 22340, name = "Kuromaru"), + Tag(id = 17215, name = "Kuromoinu No Kemono"), + Tag(id = 16138, name = "Kuroshiro"), + Tag(id = 17002, name = "Kurumigi Kurumi"), + Tag(id = 20608, name = "Kuryu Josai"), + Tag(id = 20395, name = "Kusogaki Teikoku"), + Tag(id = 20572, name = "Kusoge"), + Tag(id = 24249, name = "Kussie"), + Tag(id = 23474, name = "Kusu"), + Tag(id = 16114, name = "Kuu"), + Tag(id = 16695, name = "Kuukaku"), + Tag(id = 16265, name = "Kyojinkou"), + Tag(id = 19338, name = "Kyojitsu Himaku"), + Tag(id = 20583, name = "Kyoroukan"), + Tag(id = 16955, name = "Kyougoku Akira"), + Tag(id = 212, name = "Lab Coat"), + Tag(id = 204, name = "Lactation"), + Tag(id = 24573, name = "Landstalker"), + Tag(id = 22394, name = "Langley"), + Tag(id = 222, name = "Large Insertions"), + Tag(id = 15925, name = "Largo"), + Tag(id = 75, name = "Latex"), + Tag(id = 1407, name = "Layer Cake"), + Tag(id = 25125, name = "Leash"), + Tag(id = 16341, name = "Lee Soo-hyon"), + Tag(id = 16998, name = "Lee Yo Dong"), + Tag(id = 1647, name = "Leg Lock"), + Tag(id = 7978, name = "Legjob"), + Tag(id = 17052, name = "Lenna"), + Tag(id = 16985, name = "Leon"), + Tag(id = 22295, name = "Leonstar"), + Tag(id = 958, name = "Leotard"), + Tag(id = 16665, name = "Lhytiss"), + Tag(id = 19309, name = "Liangshan Bo"), + Tag(id = 16290, name = "Liaswe No.9"), + Tag(id = 16517, name = "Lillian Ljungstrom"), + Tag(id = 17102, name = "Ling"), + Tag(id = 782, name = "Lingerie"), + Tag(id = 8995, name = "Lion"), + Tag(id = 20966, name = "Lioness"), + Tag(id = 15916, name = "Little Retro"), + Tag(id = 710, name = "Living Clothes"), + Tag(id = 3709, name = "Lizard Girl"), + Tag(id = 2491, name = "Lizard Guy"), + Tag(id = 54, name = "Lolicon"), + Tag(id = 16143, name = "Lolita Core"), + Tag(id = 2742, name = "Long Tongue"), + Tag(id = 25252, name = "Lordkingu"), + Tag(id = 17085, name = "Love Junky"), + Tag(id = 16261, name = "Lovely Kinoko"), + Tag(id = 3681, name = "Low Bestiality"), + Tag(id = 94, name = "Low Lolicon"), + Tag(id = 1938, name = "Low Shotacon"), + Tag(id = 16943, name = "M Company"), + Tag(id = 16541, name = "M Works"), + Tag(id = 16221, name = "M2 Company"), + Tag(id = 23339, name = "Maako Asagiri"), + Tag(id = 16931, name = "Macaroni.e"), + Tag(id = 16957, name = "Machan Nankin"), + Tag(id = 271, name = "Machine"), + Tag(id = 23066, name = "Machino Suteinu"), + Tag(id = 23767, name = "Machio"), + Tag(id = 13273, name = "Maggot"), + Tag(id = 640, name = "Magical Girl"), + Tag(id = 16059, name = "Mahou Shounen Majorian"), + Tag(id = 55, name = "Maid"), + Tag(id = 25194, name = "Maita Keikaku"), + Tag(id = 16243, name = "Majorina"), + Tag(id = 17572, name = "Makamaka Dou"), + Tag(id = 25636, name = "Makeup"), + Tag(id = 16004, name = "Makie Sazaki"), + Tag(id = 24882, name = "Makoto Araiwa"), + Tag(id = 16744, name = "Makoto Sako"), + Tag(id = 15886, name = "Makoto Teteno"), + Tag(id = 22583, name = "Malboro"), + Tag(id = 95, name = "Male On Dickgirl"), + Tag(id = 686, name = "Males Only"), + Tag(id = 19159, name = "Mami Itou"), + Tag(id = 15950, name = "Manaka De Ikuno"), + Tag(id = 25025, name = "Manga Jigoku"), + Tag(id = 16486, name = "Mangetsu Ujiya"), + Tag(id = 16208, name = "Mannmaru"), + Tag(id = 23178, name = "Mao Fa Bao"), + Tag(id = 22921, name = "Maou Kyuu"), + Tag(id = 24668, name = "Mari Tamaki"), + Tag(id = 21395, name = "Marie Ange"), + Tag(id = 19487, name = "Marika Hoshino"), + Tag(id = 20235, name = "Marusuke"), + Tag(id = 19645, name = "Maruya Kae"), + Tag(id = 16437, name = "Mashiba Kenta"), + Tag(id = 118, name = "Masked Face"), + Tag(id = 23319, name = "Master Asia"), + Tag(id = 90, name = "Masturbation"), + Tag(id = 16647, name = "Masuda Aura"), + Tag(id = 23163, name = "Mata Kara Stream"), + Tag(id = 16307, name = "Matsukazon"), + Tag(id = 15891, name = "Matsumoto Mimi"), + Tag(id = 16969, name = "Mazala."), + Tag(id = 16463, name = "Me Ten"), + Tag(id = 21432, name = "Mebaeros"), + Tag(id = 1260, name = "Mecha Boy"), + Tag(id = 1615, name = "Mecha Girl"), + Tag(id = 16932, name = "Medetaya"), + Tag(id = 24450, name = "Meikyukoubou"), + Tag(id = 16825, name = "Melibe Mukade"), + Tag(id = 5329, name = "Menstruation"), + Tag(id = 5201, name = "Mermaid"), + Tag(id = 5341, name = "Merman"), + Tag(id = 25382, name = "Merryweather"), + Tag(id = 959, name = "Metal Armor"), + Tag(id = 24906, name = "Metameta"), + Tag(id = 24907, name = "Metametadan"), + Tag(id = 20406, name = "Metata"), + Tag(id = 16617, name = "Miakis"), + Tag(id = 16429, name = "Michiru Katou"), + Tag(id = 16085, name = "Microgravity"), + Tag(id = 3289, name = "Midget"), + Tag(id = 17027, name = "Midoh Tsukasaa"), + Tag(id = 18452, name = "Mikado Muramasa"), + Tag(id = 18687, name = "Mikado Sensei"), + Tag(id = 17065, name = "Mikage Mika"), + Tag(id = 152, name = "Miko"), + Tag(id = 22689, name = "Mikumo"), + Tag(id = 18023, name = "Mikuni Jiou"), + Tag(id = 16363, name = "Mikupantu"), + Tag(id = 205, name = "Milf"), + Tag(id = 17078, name = "Milfeuille Sakuraba"), + Tag(id = 811, name = "Military"), + Tag(id = 17476, name = "Dekamarasu Scirocco"), + Tag(id = 685, name = "Demon"), + Tag(id = 78, name = "Demon Girl"), + Tag(id = 17023, name = "Deriken"), + Tag(id = 17024, name = "Deriya"), + Tag(id = 16876, name = "Descent Into Darkness"), + Tag(id = 24824, name = "Detention"), + Tag(id = 1151, name = "Diaper"), + Tag(id = 23413, name = "Dic-f41"), + Tag(id = 149, name = "Dick Growth"), + Tag(id = 150, name = "Dickgirl On Dickgirl"), + Tag(id = 16693, name = "Dickgirl On Female"), + Tag(id = 266, name = "Dickgirl On Male"), + Tag(id = 3068, name = "Dickgirls Only"), + Tag(id = 2735, name = "Dicknipples"), + Tag(id = 24289, name = "Digianko"), + Tag(id = 111, name = "Dilf"), + Tag(id = 16926, name = "Dingo Egret"), + Tag(id = 16927, name = "Dingo Igrit"), + Tag(id = 7096, name = "Dinosaur"), + Tag(id = 19202, name = "Dismantling"), + Tag(id = 17018, name = "Doburoki"), + Tag(id = 261, name = "Dog"), + Tag(id = 446, name = "Dog Boy"), + Tag(id = 296, name = "Dog Girl"), + Tag(id = 15889, name = "Dogu Bros."), + Tag(id = 16974, name = "Dojidom"), + Tag(id = 17952, name = "Doku Ninjin"), + Tag(id = 5464, name = "Doll Joints"), + Tag(id = 2506, name = "Dolphin"), + Tag(id = 5665, name = "Donkey"), + Tag(id = 18545, name = "Doppel Gangers"), + Tag(id = 22418, name = "Dorina"), + Tag(id = 22635, name = "Dosukoi"), + Tag(id = 1525, name = "Double Anal"), + Tag(id = 1589, name = "Double Blowjob"), + Tag(id = 133, name = "Double Penetration"), + Tag(id = 17249, name = "Double Sensei Life"), + Tag(id = 217, name = "Double Vaginal"), + Tag(id = 1229, name = "Dougi"), + Tag(id = 16490, name = "Doumeki"), + Tag(id = 5865, name = "Dragon"), + Tag(id = 24209, name = "Drasna"), + Tag(id = 23510, name = "Drawg"), + Tag(id = 19857, name = "Dreamers Fantasy"), + Tag(id = 108, name = "Drugs"), + Tag(id = 775, name = "Drunk"), + Tag(id = 16113, name = "Duga"), + Tag(id = 24408, name = "Eagle Marin"), + Tag(id = 4675, name = "Ear Fuck"), + Tag(id = 19315, name = "Ebio"), + Tag(id = 18286, name = "Ebipan"), + Tag(id = 17371, name = "Ebisuya"), + Tag(id = 1157, name = "Eel"), + Tag(id = 1273, name = "Eggs"), + Tag(id = 23385, name = "Eji"), + Tag(id = 1698, name = "Electric Shocks"), + Tag(id = 24182, name = "Elephant"), + Tag(id = 748, name = "Elf"), + Tag(id = 24369, name = "Elf-san Wa Yaserarenai."), + Tag(id = 16643, name = "Elizaveta Hedervary"), + Tag(id = 16929, name = "Emeralda Etuva"), + Tag(id = 417, name = "Emotionless Sex"), + Tag(id = 17236, name = "Ena Seishuin"), + Tag(id = 17237, name = "Ena Seishuuin"), + Tag(id = 16930, name = "Endou Macaroni"), + Tag(id = 297, name = "Enema"), + Tag(id = 19026, name = "Ero Hon"), + Tag(id = 16815, name = "Erotic Mania"), + Tag(id = 20271, name = "Etk"), + Tag(id = 24870, name = "Etori Yuuya"), + Tag(id = 16417, name = "Ex-driver"), + Tag(id = 17088, name = "Executant"), + Tag(id = 17044, name = "Executional"), + Tag(id = 134, name = "Exhibitionism"), + Tag(id = 16482, name = "Exorcist Miko"), + Tag(id = 1815, name = "Eye Penetration"), + Tag(id = 1699, name = "Eyemask"), + Tag(id = 1227, name = "Eyepatch"), + Tag(id = 20744, name = "Eyo"), + Tag(id = 176, name = "Facesitting"), + Tag(id = 232, name = "Fairy"), + Tag(id = 19301, name = "Farron"), + Tag(id = 974, name = "Farting"), + Tag(id = 1890, name = "Father"), + Tag(id = 16027, name = "Faulklin"), + Tag(id = 16966, name = "Fcnurse"), + Tag(id = 16861, name = "Femal"), + Tag(id = 101, name = "Females Only"), + Tag(id = 240, name = "Femdom"), + Tag(id = 455, name = "Feminization"), + Tag(id = 15865, name = "Ffm Threesome"), + Tag(id = 1406, name = "Fft Threesome"), + Tag(id = 16337, name = "Figure"), + Tag(id = 528, name = "Filming"), + Tag(id = 11, name = "Fingering"), + Tag(id = 23994, name = "Firing Pin"), + Tag(id = 376, name = "First Person Perspective"), + Tag(id = 10947, name = "Fish"), + Tag(id = 13079, name = "Fishnets"), + Tag(id = 218, name = "Fisting"), + Tag(id = 24402, name = "Flaccid"), + Tag(id = 21373, name = "Flamenco Diamond"), + Tag(id = 21374, name = "Flamenco Ruby"), + Tag(id = 21375, name = "Flamenco Sapphire"), + Tag(id = 536, name = "Foot Insertion"), + Tag(id = 502, name = "Foot Licking"), + Tag(id = 355, name = "Footjob"), + Tag(id = 24432, name = "Forbidden Content"), + Tag(id = 514, name = "Forniphilia"), + Tag(id = 9242, name = "Fox"), + Tag(id = 716, name = "Fox Boy"), + Tag(id = 1094, name = "Fox Girl"), + Tag(id = 25605, name = "Foxinshadow"), + Tag(id = 25286, name = "Foxxx321"), + Tag(id = 834, name = "Freckles"), + Tag(id = 22144, name = "Fredrika"), + Tag(id = 5458, name = "Frog"), + Tag(id = 7363, name = "Frog Girl"), + Tag(id = 151, name = "Frottage"), + Tag(id = 23984, name = "Fuji Potato"), + Tag(id = 18059, name = "Fujii Sakuya"), + Tag(id = 18155, name = "Fujikatsupiko"), + Tag(id = 17505, name = "Fujimoto Go"), + Tag(id = 16121, name = "Fujitani Sonami"), + Tag(id = 16421, name = "Fukai Youki"), + Tag(id = 16975, name = "Fukaumi Tadashito"), + Tag(id = 17200, name = "Fukuyama San"), + Tag(id = 791, name = "Full Body Tattoo"), + Tag(id = 24998, name = "Full Censored"), + Tag(id = 15866, name = "Full Censorship"), + Tag(id = 15871, name = "Full Color"), + Tag(id = 17284, name = "Fumotonoya"), + Tag(id = 1439, name = "Fundoshi"), + Tag(id = 563, name = "Furry"), + Tag(id = 20956, name = "Fushimori Tonkatsu"), + Tag(id = 79, name = "Futanari"), + Tag(id = 16756, name = "Futsuka"), + Tag(id = 21620, name = "Fuuka Kazaguruma"), + Tag(id = 17696, name = "Fuuzen No Tomoshibi"), + Tag(id = 16583, name = "Fuwa Kaduki"), + Tag(id = 19171, name = "Fwpa"), + Tag(id = 16828, name = "G-maru Edition"), + Tag(id = 18256, name = "G.to.me"), + Tag(id = 241, name = "Gag"), + Tag(id = 24168, name = "Gakuran"), + Tag(id = 23017, name = "Ganesha"), + Tag(id = 219, name = "Gaping"), + Tag(id = 316, name = "Garter Belt"), + Tag(id = 2778, name = "Gasmask"), + Tag(id = 22826, name = "Gasper Vladi"), + Tag(id = 20741, name = "Gass. Mosa"), + Tag(id = 17257, name = "Gayasabu"), + Tag(id = 21679, name = "Gekidan Futari"), + Tag(id = 267, name = "Gender Bender"), + Tag(id = 15873, name = "Gene Shalit"), + Tag(id = 16913, name = "Genjuro Kazanari"), + Tag(id = 16616, name = "Genso Suikoden"), + Tag(id = 17226, name = "Genso Suikoden 5"), + Tag(id = 17176, name = "Gesho Ichiro"), + Tag(id = 16818, name = "Gevanni"), + Tag(id = 923, name = "Ghost"), + Tag(id = 2744, name = "Giant"), + Tag(id = 1706, name = "Giantess"), + Tag(id = 25288, name = "Giantessamazons"), + Tag(id = 5218, name = "Gigantic Breasts"), + Tag(id = 16236, name = "Gijinka"), + Tag(id = 16760, name = "Ginkaku"), + Tag(id = 16620, name = "Girlchoco"), + Tag(id = 22566, name = "Glamorous Sky"), + Tag(id = 53, name = "Glasses"), + Tag(id = 3976, name = "Glory Hole"), + Tag(id = 9628, name = "Goat"), + Tag(id = 4296, name = "Goblin"), + Tag(id = 17238, name = "Godou Kusanagi"), + Tag(id = 17433, name = "Gogogo"), + Tag(id = 23116, name = "Gohan Oomori"), + Tag(id = 537, name = "Gokkun"), + Tag(id = 21383, name = "Goko"), + Tag(id = 10723, name = "Gorilla"), + Tag(id = 1330, name = "Gothic Lolita"), + Tag(id = 23831, name = "Gozenzeuna"), + Tag(id = 16435, name = "Grace Ishikawa"), + Tag(id = 24086, name = "Grad Lancia"), + Tag(id = 23889, name = "Gragas"), + Tag(id = 1904, name = "Granddaughter"), + Tag(id = 5121, name = "Grandfather"), + Tag(id = 16065, name = "Grandia Iii"), + Tag(id = 4724, name = "Grandmother"), + Tag(id = 17319, name = "Granny Smith"), + Tag(id = 17068, name = "Greek Myth"), + Tag(id = 25439, name = "Groovymidnightshow"), + Tag(id = 23631, name = "Grop"), + Tag(id = 695, name = "Group"), + Tag(id = 7097, name = "Growth"), + Tag(id = 20957, name = "Grpr"), + Tag(id = 34, name = "Guro"), + Tag(id = 1658, name = "Gyaru"), + Tag(id = 4454, name = "Gyaru-oh"), + Tag(id = 156, name = "Gymshorts"), + Tag(id = 17318, name = "Milkcure"), + Tag(id = 243, name = "Milking"), + Tag(id = 16602, name = "Millefiori Firianno Biscotti"), + Tag(id = 23274, name = "Millia"), + Tag(id = 18027, name = "Mimana Orimoto"), + Tag(id = 23225, name = "Mina Shirouto"), + Tag(id = 114, name = "Mind Break"), + Tag(id = 116, name = "Mind Control"), + Tag(id = 3724, name = "Minigirl"), + Tag(id = 5707, name = "Miniguy"), + Tag(id = 4842, name = "Minotaur"), + Tag(id = 23177, name = "Miou Ootori"), + Tag(id = 16345, name = "Mirayia"), + Tag(id = 16018, name = "Missing Cover"), + Tag(id = 21546, name = "Misuke"), + Tag(id = 16377, name = "Mitoukana"), + Tag(id = 19911, name = "Mitsuhide"), + Tag(id = 18486, name = "Mitsuko"), + Tag(id = 22161, name = "Mitsunoho"), + Tag(id = 19284, name = "Miu Otsuki"), + Tag(id = 25514, name = "Miyabe Kiwi"), + Tag(id = 23417, name = "Miyabi Ash"), + Tag(id = 19158, name = "Miyama Yasuhiro"), + Tag(id = 17060, name = "Mizupii"), + Tag(id = 15869, name = "Mmf Threesome"), + Tag(id = 16095, name = "Mmt Threesome"), + Tag(id = 16009, name = "Moeharuka Non"), + Tag(id = 23164, name = "Mohorovicic Matako"), + Tag(id = 23511, name = "Mokechi"), + Tag(id = 23765, name = "Moki"), + Tag(id = 25011, name = "Mokko"), + Tag(id = 22519, name = "Mokkuafunfun"), + Tag(id = 23903, name = "Mokottsu"), + Tag(id = 20625, name = "Momihama"), + Tag(id = 16346, name = "Momoishi"), + Tag(id = 24588, name = "Momoka"), + Tag(id = 16757, name = "Momoya"), + Tag(id = 7567, name = "Monkey"), + Tag(id = 6717, name = "Monoeye"), + Tag(id = 237, name = "Monster"), + Tag(id = 285, name = "Monster Girl"), + Tag(id = 18423, name = "Moon Zero"), + Tag(id = 22080, name = "Moonfishcafe"), + Tag(id = 17059, name = "Moonlight Panic"), + Tag(id = 3028, name = "Moral Degeneration"), + Tag(id = 20001, name = "Mori Udura"), + Tag(id = 22527, name = "Morizoh"), + Tag(id = 15867, name = "Mosaic Censorship"), + Tag(id = 206, name = "Mother"), + Tag(id = 14906, name = "Mouse"), + Tag(id = 734, name = "Mouse Boy"), + Tag(id = 1802, name = "Mouse Girl"), + Tag(id = 15910, name = "Mtf Threesome"), + Tag(id = 17083, name = "Mugen Fiammatta"), + Tag(id = 17124, name = "Mugifumi Tetsudauyo"), + Tag(id = 15863, name = "Multi-work Series"), + Tag(id = 3622, name = "Multiple Arms"), + Tag(id = 272, name = "Multiple Breasts"), + Tag(id = 21176, name = "Multiple Nipples"), + Tag(id = 481, name = "Multiple Paizuri"), + Tag(id = 1100, name = "Multiple Penises"), + Tag(id = 17228, name = "Mune-mune"), + Tag(id = 16884, name = "Muratataichi"), + Tag(id = 119, name = "Muscle"), + Tag(id = 20643, name = "Muscle Growth"), + Tag(id = 2197, name = "Mute"), + Tag(id = 16787, name = "Myon"), + Tag(id = 25638, name = "Myster Box"), + Tag(id = 15929, name = "Mystic Cage"), + Tag(id = 16449, name = "Nabeshima Akira"), + Tag(id = 16912, name = "Nabu Umedama"), + Tag(id = 20729, name = "Nagano-n"), + Tag(id = 16789, name = "Nagumo."), + Tag(id = 12, name = "Nakadashi"), + Tag(id = 20242, name = "Nakate Sae"), + Tag(id = 19813, name = "Nama Wasabi Honten"), + Tag(id = 16852, name = "Namida"), + Tag(id = 15958, name = "Nan"), + Tag(id = 15893, name = "Nanaki"), + Tag(id = 20068, name = "Nanaki Nanatarou"), + Tag(id = 16442, name = "Nanako Todoroki"), + Tag(id = 17096, name = "Nanami-kasuga"), + Tag(id = 15959, name = "Nann"), + Tag(id = 16832, name = "Naono Bokera"), + Tag(id = 16704, name = "Naruga"), + Tag(id = 20996, name = "Naruse Sakei"), + Tag(id = 15885, name = "Nase No Go"), + Tag(id = 22604, name = "Natalie"), + Tag(id = 17012, name = "Natsu An"), + Tag(id = 17158, name = "Natsu No Kumo"), + Tag(id = 15887, name = "Natsumi Takao"), + Tag(id = 16264, name = "Natsune Tachibana"), + Tag(id = 5644, name = "Navel Fuck"), + Tag(id = 1188, name = "Nazi"), + Tag(id = 16819, name = "Near"), + Tag(id = 287, name = "Necrophilia"), + Tag(id = 16123, name = "Negative From The Beginning"), + Tag(id = 17113, name = "Neji Musume"), + Tag(id = 16320, name = "Nekomarudou Honpo"), + Tag(id = 23607, name = "Nekota Shiro"), + Tag(id = 24552, name = "Nekoweapons"), + Tag(id = 16514, name = "Nesshisen"), + Tag(id = 105, name = "Netorare"), + Tag(id = 20880, name = "New Horizon"), + Tag(id = 805, name = "Niece"), + Tag(id = 22906, name = "Nijigen"), + Tag(id = 2822, name = "Ninja"), + Tag(id = 23632, name = "Nintai Akira"), + Tag(id = 10476, name = "Nipple Birth"), + Tag(id = 4719, name = "Nipple Expansion"), + Tag(id = 903, name = "Nipple Fuck"), + Tag(id = 16837, name = "Nishioka Kyoudai"), + Tag(id = 15906, name = "Nishizuki Chikara"), + Tag(id = 17174, name = "Nitta"), + Tag(id = 20829, name = "Nitta Kani"), + Tag(id = 18637, name = "Nizimu Me"), + Tag(id = 16572, name = "No Graffiti"), + Tag(id = 16248, name = "Nomoto Saharu"), + Tag(id = 25482, name = "Non-nude"), + Tag(id = 15983, name = "Nonorumia"), + Tag(id = 17805, name = "Noramushi"), + Tag(id = 25481, name = "Norman Maggot"), + Tag(id = 8273, name = "Nose Fuck"), + Tag(id = 1481, name = "Nose Hook"), + Tag(id = 15955, name = "Notsu"), + Tag(id = 16024, name = "Novel"), + Tag(id = 16155, name = "Nudity Only"), + Tag(id = 16364, name = "Nuko"), + Tag(id = 338, name = "Nun"), + Tag(id = 235, name = "Nurse"), + Tag(id = 18238, name = "Nururyun"), + Tag(id = 17035, name = "Nutmeg"), + Tag(id = 19856, name = "Nyankofujin"), + Tag(id = 22878, name = "Nyansei-fukko"), + Tag(id = 19730, name = "O-ide Riko"), + Tag(id = 19809, name = "Ochazukenori"), + Tag(id = 20689, name = "Ochine"), + Tag(id = 1440, name = "Octopus"), + Tag(id = 16279, name = "Ogiura Tomoko"), + Tag(id = 18991, name = "Ohkawa Aoi"), + Tag(id = 21315, name = "Ohno Kogorou"), + Tag(id = 22307, name = "Oidemase"), + Tag(id = 3088, name = "Oil"), + Tag(id = 24399, name = "Ojo Jotaro"), + Tag(id = 15991, name = "Ojou"), + Tag(id = 20508, name = "Okano Hajimetei"), + Tag(id = 16272, name = "Okayu Club"), + Tag(id = 19112, name = "Okome Takeichi"), + Tag(id = 8946, name = "Old Lady"), + Tag(id = 334, name = "Old Man"), + Tag(id = 22633, name = "Omae Umasou Da Na"), + Tag(id = 16766, name = "Omya"), + Tag(id = 1651, name = "Onahole"), + Tag(id = 1234, name = "Oni"), + Tag(id = 22587, name = "Oono Saeko"), + Tag(id = 18200, name = "Ootaki Miura"), + Tag(id = 17188, name = "Ootsuka Shunji"), + Tag(id = 20717, name = "Ootsuki Kyouko"), + Tag(id = 16151, name = "Oppai Brothers"), + Tag(id = 1013, name = "Oppai Loli"), + Tag(id = 20320, name = "Opq"), + Tag(id = 1650, name = "Orc"), + Tag(id = 17516, name = "Ore P 2-gou"), + Tag(id = 23659, name = "Ore To Kakuni To Abura Soba"), + Tag(id = 457, name = "Orgasm Denial"), + Tag(id = 16585, name = "Oruga Susumu"), + Tag(id = 16947, name = "Orunito"), + Tag(id = 15914, name = "Oshioki Yuki-chan"), + Tag(id = 24995, name = "Osovo"), + Tag(id = 25227, name = "Ostrich"), + Tag(id = 16634, name = "Osuneko Shoukai"), + Tag(id = 17862, name = "Otaku Life Japan"), + Tag(id = 20726, name = "Otome Kibun"), + Tag(id = 16941, name = "Otonano Omochiya"), + Tag(id = 16894, name = "Otosaki Tsubaki"), + Tag(id = 17152, name = "Otoskai Tsubaki"), + Tag(id = 17087, name = "Ototoi No Are"), + Tag(id = 24715, name = "Ougi Production"), + Tag(id = 16122, name = "Ousama Jihen"), + Tag(id = 15861, name = "Out Of Order"), + Tag(id = 23387, name = "Outcount"), + Tag(id = 24808, name = "Outdoor"), + Tag(id = 17133, name = "Outdoors"), + Tag(id = 1334, name = "Oyakodon"), + Tag(id = 16241, name = "Pacifier"), + Tag(id = 183, name = "Paizuri"), + Tag(id = 7823, name = "Panda Girl"), + Tag(id = 25178, name = "Pandaj"), + Tag(id = 22688, name = "Pandaya"), + Tag(id = 10970, name = "Panther"), + Tag(id = 135, name = "Pantyhose"), + Tag(id = 136, name = "Pantyjob"), + Tag(id = 17100, name = "Paopa Ship"), + Tag(id = 827, name = "Parasite"), + Tag(id = 17137, name = "Partial Color"), + Tag(id = 16412, name = "Partially Translated"), + Tag(id = 1516, name = "Pasties"), + Tag(id = 23693, name = "Pecora"), + Tag(id = 456, name = "Pegging"), + Tag(id = 17153, name = "Pekopon Shinryaku Hyougikai"), + Tag(id = 7368, name = "Penis Birth"), + Tag(id = 16563, name = "Peri"), + Tag(id = 2136, name = "Petrification"), + Tag(id = 1515, name = "Phimosis"), + Tag(id = 2432, name = "Phone Sex"), + Tag(id = 18992, name = "Pied A Terre"), + Tag(id = 299, name = "Piercing"), + Tag(id = 600, name = "Pig"), + Tag(id = 5713, name = "Pig Girl"), + Tag(id = 4211, name = "Pig Man"), + Tag(id = 1153, name = "Pillory"), + Tag(id = 7261, name = "Pirate"), + Tag(id = 1674, name = "Piss Drinking"), + Tag(id = 22865, name = "Pisti"), + Tag(id = 793, name = "Plant Girl"), + Tag(id = 22520, name = "Poki"), + Tag(id = 1399, name = "Pole Dancing"), + Tag(id = 1732, name = "Policeman"), + Tag(id = 320, name = "Policewoman"), + Tag(id = 22829, name = "Pometa"), + Tag(id = 3599, name = "Ponygirl"), + Tag(id = 760, name = "Ponytail"), + Tag(id = 15894, name = "Poor Grammar"), + Tag(id = 16310, name = "Poporo"), + Tag(id = 16453, name = "Porunamin C"), + Tag(id = 538, name = "Possession"), + Tag(id = 268, name = "Pregnant"), + Tag(id = 503, name = "Prehensile Hair"), + Tag(id = 11469, name = "Priest"), + Tag(id = 20497, name = "Principal Kuno"), + Tag(id = 25407, name = "Project Physalis"), + Tag(id = 1496, name = "Prolapse"), + Tag(id = 294, name = "Prostate Massage"), + Tag(id = 931, name = "Prostitution"), + Tag(id = 16367, name = "Psycho Soldier"), + Tag(id = 1482, name = "Pubic Stubble"), + Tag(id = 2990, name = "Public Use"), + Tag(id = 16795, name = "Purimu"), + Tag(id = 16250, name = "Purupyon"), + Tag(id = 18500, name = "Pythagora Switch"), + Tag(id = 19115, name = "Quattro"), + Tag(id = 20138, name = "R-otome"), + Tag(id = 17110, name = "Rabbit Revelry Inc."), + Tag(id = 12938, name = "Raccoon Boy"), + Tag(id = 3567, name = "Raccoon Girl"), + Tag(id = 6453, name = "Race Queen"), + Tag(id = 21425, name = "Raichi Hoshimiya"), + Tag(id = 21955, name = "Rajyaki"), + Tag(id = 16139, name = "Rakanka Tiger"), + Tag(id = 23718, name = "Rakuen Tsuihou"), + Tag(id = 15920, name = "Rakugaki Syachu"), + Tag(id = 19071, name = "Randamu"), + Tag(id = 2551, name = "Randoseru"), + Tag(id = 43, name = "Rape"), + Tag(id = 17006, name = "Rati"), + Tag(id = 18186, name = "Rebaudio"), + Tag(id = 23800, name = "Recording"), + Tag(id = 15915, name = "Redraw"), + Tag(id = 17032, name = "Reese"), + Tag(id = 19632, name = "Reisen Two"), + Tag(id = 17270, name = "Remilia"), + Tag(id = 20382, name = "Renekton"), + Tag(id = 15890, name = "Replaced"), + Tag(id = 5574, name = "Reptile"), + Tag(id = 16858, name = "Resi"), + Tag(id = 16257, name = "Retreat"), + Tag(id = 24087, name = "Ricardo Gavarni"), + Tag(id = 16835, name = "Rika Koushu"), + Tag(id = 16836, name = "Rika Kousyu"), + Tag(id = 223, name = "Rimjob"), + Tag(id = 16439, name = "Rinbu"), + Tag(id = 18907, name = "Ringo Koubou"), + Tag(id = 17252, name = "Ritomasu"), + Tag(id = 16659, name = "Rittiri"), + Tag(id = 56, name = "Robot"), + Tag(id = 15872, name = "Rock Dou"), + Tag(id = 24880, name = "Rofu Pukaj"), + Tag(id = 19929, name = "Roudoc 2-gou"), + Tag(id = 15960, name = "Route A"), + Tag(id = 16682, name = "Rurio Nagase"), + Tag(id = 17810, name = "Ryo Yazaki"), + Tag(id = 16481, name = "Ryo-ko"), + Tag(id = 21672, name = "Ryokurin"), + Tag(id = 224, name = "Ryona"), + Tag(id = 17179, name = "Ryouji Sawa"), + Tag(id = 23147, name = "Ryouta Murakami"), + Tag(id = 16365, name = "Ryu Morikawa"), + Tag(id = 16457, name = "Ryuho"), + Tag(id = 16063, name = "Ryuji Kawamoto"), + Tag(id = 16021, name = "Ryuushika"), + Tag(id = 16944, name = "Sabatama Yumi"), + Tag(id = 15897, name = "Sabato Mihashigo"), + Tag(id = 16996, name = "Sabawo 380"), + Tag(id = 16518, name = "Sagasile"), + Tag(id = 16402, name = "Sai Akuto"), + Tag(id = 24085, name = "Saifu"), + Tag(id = 16670, name = "Saikare."), + Tag(id = 17177, name = "Saikoro"), + Tag(id = 17017, name = "Saikyo Tomomi"), + Tag(id = 17146, name = "Sailor Aluminum Siren"), + Tag(id = 16973, name = "Saimin"), + Tag(id = 16013, name = "Saimin Pikatto House"), + Tag(id = 16186, name = "Sakazaki"), + Tag(id = 16252, name = "Saki Watanabe"), + Tag(id = 15883, name = "Sakino Asuka"), + Tag(id = 23322, name = "Sakki Okita"), + Tag(id = 23612, name = "Sakkimita"), + Tag(id = 24437, name = "Sakura Kagamihara"), + Tag(id = 23768, name = "Sakurabobu"), + Tag(id = 423, name = "Saliva"), + Tag(id = 15881, name = "Sammohung"), + Tag(id = 15882, name = "Samohanyunpyou"), + Tag(id = 16125, name = "Sample"), + Tag(id = 15928, name = "Sangokushi Puzzle Taisen"), + Tag(id = 17117, name = "Santa Maria"), + Tag(id = 24336, name = "Sarugaso"), + Tag(id = 16506, name = "Sasara Somae"), + Tag(id = 16694, name = "Sata"), + Tag(id = 16586, name = "Satellite U"), + Tag(id = 16375, name = "Satoshi Sou"), + Tag(id = 16824, name = "Satou Kiyotoshi"), + Tag(id = 23366, name = "Satsuki Marin"), + Tag(id = 20566, name = "Sautsu"), + Tag(id = 19124, name = "Sawara Cashy"), + Tag(id = 16428, name = "Sayuri Hirose"), + Tag(id = 15876, name = "Scanmark"), + Tag(id = 1336, name = "Scar"), + Tag(id = 273, name = "Scat"), + Tag(id = 68, name = "School Swimsuit"), + Tag(id = 22, name = "Schoolboy Uniform"), + Tag(id = 24, name = "Schoolgirl Uniform"), + Tag(id = 17103, name = "Schwarzkatze"), + Tag(id = 17104, name = "Schwarzkratze"), + Tag(id = 6068, name = "Scrotal Lingerie"), + Tag(id = 17224, name = "Seikan Nekoguruma"), + Tag(id = 17995, name = "Sekaiju No Anone"), + Tag(id = 788, name = "Selfcest"), + Tag(id = 17004, name = "Semaru Taiho"), + Tag(id = 16440, name = "Sen Renbu"), + Tag(id = 17171, name = "Senbonzakura"), + Tag(id = 18677, name = "Sendai Oni"), + Tag(id = 23873, name = "Sendaiki"), + Tag(id = 22387, name = "Senhime"), + Tag(id = 17322, name = "Senki Zesshou"), + Tag(id = 17809, name = "Setsuko"), + Tag(id = 109, name = "Sex Toys"), + Tag(id = 16644, name = "Sexual Sunday"), + Tag(id = 16438, name = "Shadow Thorn"), + Tag(id = 331, name = "Shared Senses"), + Tag(id = 20051, name = "Shark"), + Tag(id = 3974, name = "Shark Boy"), + Tag(id = 22443, name = "Sharon"), + Tag(id = 5823, name = "Shaved Head"), + Tag(id = 15652, name = "Sheep Boy"), + Tag(id = 784, name = "Sheep Girl"), + Tag(id = 458, name = "Shemale"), + Tag(id = 25341, name = "Sherwood"), + Tag(id = 21466, name = "Shibainu Lab"), + Tag(id = 321, name = "Shibari"), + Tag(id = 17154, name = "Shichimi Hacchin"), + Tag(id = 23344, name = "Shikiouzi"), + Tag(id = 22907, name = "Shima Shuu"), + Tag(id = 21991, name = "Shimada Hisami"), + Tag(id = 137, name = "Shimapan"), + Tag(id = 16860, name = "Shimotsuki Kairi"), + Tag(id = 22950, name = "Shina Mon"), + Tag(id = 21673, name = "Shinna"), + Tag(id = 18092, name = "Shinomiya Utai"), + Tag(id = 16190, name = "Shinooka Fuku Enchou"), + Tag(id = 20450, name = "Shinoshima Usa"), + Tag(id = 18494, name = "Shinsuke Inue"), + Tag(id = 16822, name = "Shinsuke Nishizono"), + Tag(id = 17370, name = "Shintaro Konno"), + Tag(id = 24070, name = "Shio Onigiri"), + Tag(id = 16451, name = "Shiokaze Kaidou"), + Tag(id = 19727, name = "Shiomeshi"), + Tag(id = 18973, name = "Shirokuma Sato"), + Tag(id = 18720, name = "Shirotakurota"), + Tag(id = 16914, name = "Shirow"), + Tag(id = 17014, name = "Shisaki Tayuu"), + Tag(id = 20045, name = "Shizu Shidou"), + Tag(id = 16014, name = "Short Circuit"), + Tag(id = 66, name = "Shotacon"), + Tag(id = 16970, name = "Shounen Kyouso"), + Tag(id = 18864, name = "Shounen Teacher Group"), + Tag(id = 17053, name = "Shoutai Fumei"), + Tag(id = 17054, name = "Shoutai Humei"), + Tag(id = 711, name = "Shrinking"), + Tag(id = 17130, name = "Shugetsu"), + Tag(id = 22637, name = "Shunju"), + Tag(id = 21905, name = "Shut Hell"), + Tag(id = 23240, name = "Shuuyu Koukin"), + Tag(id = 24355, name = "Sibasaki Koh"), + Tag(id = 15943, name = "Silver Sandial"), + Tag(id = 16041, name = "Sinyati"), + Tag(id = 138, name = "Sister"), + Tag(id = 17329, name = "Sjf"), + Tag(id = 16020, name = "Ski"), + Tag(id = 5877, name = "Skinsuit"), + Tag(id = 19682, name = "Skn"), + Tag(id = 300, name = "Slave"), + Tag(id = 153, name = "Sleeping"), + Tag(id = 1449, name = "Slime"), + Tag(id = 13461, name = "Slime Boy"), + Tag(id = 1408, name = "Slime Girl"), + Tag(id = 22104, name = "Slime King"), + Tag(id = 23847, name = "Slow Masturbation Research Society"), + Tag(id = 4597, name = "Slug"), + Tag(id = 32, name = "Small Breasts"), + Tag(id = 25364, name = "Small Penis"), + Tag(id = 429, name = "Smegma"), + Tag(id = 1254, name = "Smell"), + Tag(id = 3524, name = "Smoking"), + Tag(id = 8672, name = "Snail Girl"), + Tag(id = 4702, name = "Snake"), + Tag(id = 23232, name = "Snake Boy"), + Tag(id = 785, name = "Snake Girl"), + Tag(id = 254, name = "Snuff"), + Tag(id = 6084, name = "Sockjob"), + Tag(id = 16849, name = "Softcel Pictures"), + Tag(id = 16846, name = "Soichiro Arima"), + Tag(id = 81, name = "Sole Dickgirl"), + Tag(id = 25, name = "Sole Female"), + Tag(id = 23, name = "Sole Male"), + Tag(id = 24229, name = "Solefemale"), + Tag(id = 608, name = "Solo Action"), + Tag(id = 18433, name = "Solullaby"), + Tag(id = 23404, name = "Son-son"), + Tag(id = 20256, name = "Sorairo Porin"), + Tag(id = 17197, name = "Sorauta"), + Tag(id = 24446, name = "Southern Emperor"), + Tag(id = 1359, name = "Spanking"), + Tag(id = 23067, name = "Spanner And Camellia"), + Tag(id = 889, name = "Speculum"), + Tag(id = 18061, name = "Speedy"), + Tag(id = 16215, name = "Spicaya"), + Tag(id = 11905, name = "Spider"), + Tag(id = 3623, name = "Spider Girl"), + Tag(id = 16823, name = "Spirit Of Ecsta"), + Tag(id = 16917, name = "Spon"), + Tag(id = 16898, name = "Square Rain"), + Tag(id = 5355, name = "Squid Boy"), + Tag(id = 1582, name = "Squid Girl"), + Tag(id = 7230, name = "Squirrel Girl"), + Tag(id = 786, name = "Squirting"), + Tag(id = 7371, name = "Ssbbm"), + Tag(id = 7093, name = "Ssbbw"), + Tag(id = 23302, name = "Stagger"), + Tag(id = 20756, name = "Staggio Ton-pierohbee"), + Tag(id = 16997, name = "Steevejo"), + Tag(id = 22316, name = "Steward"), + Tag(id = 884, name = "Stewardess"), + Tag(id = 57, name = "Stockings"), + Tag(id = 225, name = "Stomach Deformation"), + Tag(id = 17126, name = "Story Act"), + Tag(id = 15864, name = "Story Arc"), + Tag(id = 139, name = "Strap-on"), + Tag(id = 6576, name = "Stretching"), + Tag(id = 3873, name = "Stuck In Wall"), + Tag(id = 17106, name = "Studio Campus"), + Tag(id = 21909, name = "Studio Crimson"), + Tag(id = 17045, name = "Studio Mxh"), + Tag(id = 20431, name = "Studio Onion"), + Tag(id = 23602, name = "Suckaline"), + Tag(id = 17003, name = "Suda Yuriko"), + Tag(id = 16952, name = "Sui Kayama"), + Tag(id = 16811, name = "Sui Ren"), + Tag(id = 23732, name = "Suidoku"), + Tag(id = 16452, name = "Suina Ruu"), + Tag(id = 17184, name = "Suiranao"), + Tag(id = 17069, name = "Suiseimushi"), + Tag(id = 22021, name = "Sukurinton"), + Tag(id = 140, name = "Sumata"), + Tag(id = 141, name = "Sundress"), + Tag(id = 166, name = "Sunglasses"), + Tag(id = 25589, name = "Super Smash Bros"), + Tag(id = 15904, name = "Supertoasted"), + Tag(id = 16899, name = "Susu Suzumi"), + Tag(id = 16016, name = "Sutazubu-saku"), + Tag(id = 25195, name = "Suzuki Senpai"), + Tag(id = 22531, name = "Suzuki Tenpura"), + Tag(id = 16491, name = "Suzuku Kururugi"), + Tag(id = 16663, name = "Suzumi Yuu"), + Tag(id = 17273, name = "Suzunari"), + Tag(id = 23674, name = "Suzune Arizono"), + Tag(id = 696, name = "Sweating"), + Tag(id = 69, name = "Swimsuit"), + Tag(id = 635, name = "Swinging"), + Tag(id = 1955, name = "Syringe"), + Tag(id = 17011, name = "System Speculation"), + Tag(id = 754, name = "Table Masturbation"), + Tag(id = 19556, name = "Tachinami Takajin"), + Tag(id = 16816, name = "Tadai Yuu"), + Tag(id = 16664, name = "Tae Anezaki"), + Tag(id = 24925, name = "Tae Yamada"), + Tag(id = 17908, name = "Taeko Nonomiya"), + Tag(id = 25425, name = "Tail"), + Tag(id = 1156, name = "Tail Plug"), + Tag(id = 16907, name = "Tail-gun"), + Tag(id = 2861, name = "Tailjob"), + Tag(id = 16464, name = "Taimanin"), + Tag(id = 16465, name = "Taimanin Haiboku"), + Tag(id = 17797, name = "Taiyoushin"), + Tag(id = 20077, name = "Takakujyu"), + Tag(id = 16281, name = "Takakura Row"), + Tag(id = 16742, name = "Takamura Chinatsu"), + Tag(id = 24757, name = "Takatou Kei"), + Tag(id = 23832, name = "Takatsu Rin"), + Tag(id = 18111, name = "Takimoto Yukari"), + Tag(id = 16480, name = "Takoyaki Yoshi"), + Tag(id = 922, name = "Tall Girl"), + Tag(id = 120, name = "Tall Man"), + Tag(id = 16626, name = "Tama Shippo"), + Tag(id = 24669, name = "Tamaki Mari"), + Tag(id = 20900, name = "Tami Nishimikado"), + Tag(id = 23735, name = "Tanken Wa Ra 2"), + Tag(id = 15870, name = "Tankoubon"), + Tag(id = 303, name = "Tanlines"), + Tag(id = 17151, name = "Tanukigirl"), + Tag(id = 22214, name = "Tanukine"), + Tag(id = 16794, name = "Tanuma"), + Tag(id = 16698, name = "Tapir"), + Tag(id = 22323, name = "Tasu"), + Tag(id = 17057, name = "Tat"), + Tag(id = 16821, name = "Tateno Makoto"), + Tag(id = 20524, name = "Tatsuhide"), + Tag(id = 23415, name = "Tayuri"), + Tag(id = 112, name = "Teacher"), + Tag(id = 23459, name = "Tecoya"), + Tag(id = 16158, name = "Tee Crown"), + Tag(id = 25562, name = "Teebsly"), + Tag(id = 16487, name = "Tekorun"), + Tag(id = 22899, name = "Tenjou Shio"), + Tag(id = 196, name = "Tentacles"), + Tag(id = 24136, name = "Tep"), + Tag(id = 16180, name = "Teru-bee"), + Tag(id = 18721, name = "Tetsu Hagane"), + Tag(id = 12900, name = "Thick Eyebrows"), + Tag(id = 769, name = "Thigh High Boots"), + Tag(id = 641, name = "Tiara"), + Tag(id = 2728, name = "Tickling"), + Tag(id = 12085, name = "Tiger"), + Tag(id = 960, name = "Tights"), + Tag(id = 23600, name = "Tigrevurmud Vorn"), + Tag(id = 23173, name = "Tilia"), + Tag(id = 15913, name = "Time Stop"), + Tag(id = 17717, name = "Tobaroku"), + Tag(id = 20550, name = "Tocori"), + Tag(id = 495, name = "Toddlercon"), + Tag(id = 16287, name = "Tohno Hongshi"), + Tag(id = 16785, name = "Tokage 3gou"), + Tag(id = 21710, name = "Tokizawa"), + Tag(id = 20551, name = "Tokori"), + Tag(id = 24137, name = "Tokyo Survivor"), + Tag(id = 16928, name = "Tokyo-ya"), + Tag(id = 19807, name = "Tom Jpn"), + Tag(id = 16595, name = "Tomadoiki"), + Tag(id = 13, name = "Tomboy"), + Tag(id = 129, name = "Tomgirl"), + Tag(id = 25091, name = "Tomobukiya"), + Tag(id = 16226, name = "Tomoko Ogura"), + Tag(id = 15917, name = "Tonboya"), + Tag(id = 16537, name = "Tongue Job"), + Tag(id = 23105, name = "Tooku No Mura"), + Tag(id = 1441, name = "Tooth Brushing"), + Tag(id = 15888, name = "Tooyama Masuko"), + Tag(id = 25256, name = "Toriaezu."), + Tag(id = 752, name = "Torture"), + Tag(id = 17328, name = "Toshinari Arito"), + Tag(id = 25478, name = "Toshkarts"), + Tag(id = 23840, name = "Totomono"), + Tag(id = 22879, name = "Touma Nigou"), + Tag(id = 16946, name = "Toyotomi Hideyoshi"), + Tag(id = 113, name = "Tracksuit"), + Tag(id = 7331, name = "Trampling"), + Tag(id = 195, name = "Transformation"), + Tag(id = 233, name = "Tribadism"), + Tag(id = 5540, name = "Triple Anal"), + Tag(id = 226, name = "Triple Penetration"), + Tag(id = 1526, name = "Triple Vaginal"), + Tag(id = 16765, name = "Try Hougen"), + Tag(id = 23845, name = "Tsujiadon"), + Tag(id = 16106, name = "Tsukasa Kotobuki"), + Tag(id = 16786, name = "Tsukigara Rosshi"), + Tag(id = 16560, name = "Tsukigata Rosshi"), + Tag(id = 23897, name = "Tsuru Kame"), + Tag(id = 15999, name = "Tsurumanjaro"), + Tag(id = 15908, name = "Tsuta Hiroko"), + Tag(id = 18801, name = "Tsuzuki Shiori"), + Tag(id = 792, name = "Ttf Threesome"), + Tag(id = 15875, name = "Ttm Threesome"), + Tag(id = 244, name = "Tube"), + Tag(id = 22694, name = "Turnover"), + Tag(id = 10994, name = "Turtle"), + Tag(id = 780, name = "Tutor"), + Tag(id = 17021, name = "Twin Bell"), + Tag(id = 142, name = "Twins"), + Tag(id = 115, name = "Twintails"), + Tag(id = 23174, name = "Tyria"), + Tag(id = 25109, name = "Tzinnxt"), + Tag(id = 16561, name = "Uekio Aloe"), + Tag(id = 15884, name = "Uesato Takeharu"), + Tag(id = 23739, name = "Ujiro"), + Tag(id = 22521, name = "Umaisake"), + Tag(id = 20106, name = "Ume Kurumizawa"), + Tag(id = 18201, name = "Umetsu Yasuomi"), + Tag(id = 16776, name = "Una777"), + Tag(id = 712, name = "Unbirth"), + Tag(id = 15862, name = "Uncensored"), + Tag(id = 7151, name = "Uncle"), + Tag(id = 286, name = "Underwater"), + Tag(id = 21894, name = "Uni Unio"), + Tag(id = 19786, name = "Unihoge"), + Tag(id = 16292, name = "Unomaa"), + Tag(id = 1517, name = "Unusual Pupils"), + Tag(id = 1565, name = "Unusual Teeth"), + Tag(id = 16432, name = "Urabata"), + Tag(id = 16184, name = "Uragiru Kuchibiru"), + Tag(id = 18434, name = "Urako"), + Tag(id = 227, name = "Urethra Insertion"), + Tag(id = 143, name = "Urination"), + Tag(id = 16624, name = "Uru Fusube In"), + Tag(id = 16945, name = "Usagiro"), + Tag(id = 20522, name = "Ustilago Nuda"), + Tag(id = 17161, name = "Usuk"), + Tag(id = 18665, name = "Utsu Kawaya"), + Tag(id = 6045, name = "Vacbed"), + Tag(id = 2800, name = "Vaginal Sticker"), + Tag(id = 58, name = "Vampire"), + Tag(id = 16948, name = "Variant Set"), + Tag(id = 23976, name = "Virginia Nitouhei"), + Tag(id = 213, name = "Virginity"), + Tag(id = 17046, name = "Viriya"), + Tag(id = 17458, name = "Visual She"), + Tag(id = 228, name = "Vomit"), + Tag(id = 238, name = "Vore"), + Tag(id = 124, name = "Voyeurism"), + Tag(id = 16192, name = "Wada Tomohiro"), + Tag(id = 20686, name = "Waio"), + Tag(id = 2084, name = "Waiter"), + Tag(id = 374, name = "Waitress"), + Tag(id = 15879, name = "Walkure"), + Tag(id = 19824, name = "Wanya Aguda"), + Tag(id = 16645, name = "Warikka"), + Tag(id = 16191, name = "Watanabe Enchou"), + Tag(id = 16212, name = "Watari Naomi"), + Tag(id = 16182, name = "Watermarked"), + Tag(id = 16007, name = "Webtoon"), + Tag(id = 16507, name = "Wedding Ring"), + Tag(id = 1756, name = "Weight Gain"), + Tag(id = 16197, name = "Welkin Gunther"), + Tag(id = 4703, name = "Wet Clothes"), + Tag(id = 3719, name = "Whip"), + Tag(id = 264, name = "Widow"), + Tag(id = 17058, name = "Will Powers"), + Tag(id = 16994, name = "Wingjob"), + Tag(id = 404, name = "Wings"), + Tag(id = 926, name = "Witch"), + Tag(id = 1560, name = "Wolf"), + Tag(id = 2066, name = "Wolf Boy"), + Tag(id = 1551, name = "Wolf Girl"), + Tag(id = 2868, name = "Wooden Horse"), + Tag(id = 828, name = "Worm"), + Tag(id = 332, name = "Wormhole"), + Tag(id = 17066, name = "Wrestle Angels Survivor"), + Tag(id = 1990, name = "Wrestling"), + Tag(id = 17042, name = "X-boy"), + Tag(id = 144, name = "X-ray"), + Tag(id = 20575, name = "Xera"), + Tag(id = 16249, name = "Yada Masaka"), + Tag(id = 16883, name = "Yagami"), + Tag(id = 17084, name = "Yagami Baneri"), + Tag(id = 16967, name = "Yahiko"), + Tag(id = 24447, name = "Yamada Botan"), + Tag(id = 18806, name = "Yamada Kana"), + Tag(id = 17470, name = "Yamada Tasaku"), + Tag(id = 16275, name = "Yamamomo Kajitsu"), + Tag(id = 16511, name = "Yamamoto Hideo"), + Tag(id = 18257, name = "Yamane Akira"), + Tag(id = 16006, name = "Yamane Amano"), + Tag(id = 16877, name = "Yami No Matsuri"), + Tag(id = 968, name = "Yandere"), + Tag(id = 283, name = "Yaoi"), + Tag(id = 23158, name = "Yarou Tomo No Bansankai"), + Tag(id = 16015, name = "Yasou Shigeru"), + Tag(id = 16508, name = "Yasu G"), + Tag(id = 22667, name = "Yasuhara Osamu"), + Tag(id = 23460, name = "Yatsugi Teco"), + Tag(id = 17040, name = "Yokohama-ya"), + Tag(id = 16965, name = "Yokotaya"), + Tag(id = 16273, name = "Yoshiki Aya"), + Tag(id = 17459, name = "Yoshizuki Minoru"), + Tag(id = 16817, name = "Youna"), + Tag(id = 18367, name = "Yousei Kanin"), + Tag(id = 22257, name = "Yshtola"), + Tag(id = 20770, name = "Yu Tendo"), + Tag(id = 16862, name = "Yubel"), + Tag(id = 15997, name = "Yui Narumi"), + Tag(id = 17115, name = "Yukai Sachiko"), + Tag(id = 17850, name = "Yukata Kobayakawa"), + Tag(id = 16117, name = "Yuki Hiiragi"), + Tag(id = 21680, name = "Yukiruru"), + Tag(id = 19205, name = "Yume No Omutsu Kissa"), + Tag(id = 16916, name = "Yumego"), + Tag(id = 16454, name = "Yumemigotoki"), + Tag(id = 17542, name = "Yumesaki Ai"), + Tag(id = 24592, name = "Yumeutsutsu Hideki"), + Tag(id = 15900, name = "Yumiko"), + Tag(id = 16420, name = "Yunisuke"), + Tag(id = 14, name = "Yuri"), + Tag(id = 24046, name = "Yuriyura"), + Tag(id = 17798, name = "Yuugaitosho"), + Tag(id = 16130, name = "Yuugi Yami"), + Tag(id = 20140, name = "Yuzurizaki Nero"), + Tag(id = 20767, name = "Zeitaku Zanmai"), + Tag(id = 24430, name = "Ziggurat"), + Tag(id = 21354, name = "Zinkurou"), + Tag(id = 290, name = "Zombie") + ) + +} \ No newline at end of file diff --git a/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NineHentai.kt b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NineHentai.kt index 4206b78e8..311cae8f9 100644 --- a/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NineHentai.kt +++ b/src/all/ninehentai/src/eu/kanade/tachiyomi/extension/all/ninehentai/NineHentai.kt @@ -1,10 +1,10 @@ package eu.kanade.tachiyomi.extension.all.ninehentai -import com.github.salomonbrys.kotson.get +import com.github.salomonbrys.kotson.array +import com.github.salomonbrys.kotson.fromJson import com.github.salomonbrys.kotson.int import com.github.salomonbrys.kotson.string import com.google.gson.Gson -import com.google.gson.GsonBuilder import com.google.gson.JsonElement import com.google.gson.JsonParser import eu.kanade.tachiyomi.network.POST @@ -15,7 +15,6 @@ import okhttp3.* import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable -import java.net.URLEncoder import java.util.* open class NineHentai : ParsedHttpSource() { @@ -30,6 +29,8 @@ open class NineHentai : ParsedHttpSource() { override val client: OkHttpClient = network.cloudflareClient + private val gson = Gson() + override fun popularMangaRequest(page: Int): Request { return POST(baseUrl + SEARCH_URL, headers, buildRequestBody(page = page, sort = 1)) } @@ -42,105 +43,92 @@ open class NineHentai : ParsedHttpSource() { return client.newCall(popularMangaRequest(page)) .asObservableSuccess() .map { response -> - popularMangaParse(response) + getMangaList(response, page) } } - - override fun popularMangaParse(response: Response): MangasPage { - val list = getMangaList(response) - return MangasPage(list, list.isNotEmpty()) - } - override fun fetchLatestUpdates(page: Int): Observable { return client.newCall(latestUpdatesRequest(page)) .asObservableSuccess() .map { response -> - latestUpdatesParse(response) + getMangaList(response, page) } } - override fun latestUpdatesParse(response: Response): MangasPage = popularMangaParse(response) - - private fun getMangaList(response: Response): List { - val jsonData = response.body()!!.string() - val jsonObject = JsonParser().parse(jsonData).asJsonObject - val results = jsonObject.getAsJsonArray("results") - return parseSearch(results.toList()) - } - - private fun parseSearch(jsonArray: List): List { - val mutableList = mutableListOf() - jsonArray.forEach { json -> - val manga = SManga.create() - val id = json["id"].string - manga.url = "$baseUrl/g/$id" - manga.title = json["title"].string - manga.thumbnail_url = json["image_server"].string + id + "/" + "cover.jpg" - mutableList.add(manga) - } - return mutableList - } - - override fun fetchChapterList(manga: SManga): Observable> { - return client.newCall(mangaDetailsRequest(manga)) - .asObservableSuccess() - .map { response -> - chapterListParse(response) - } - } - - private fun getChapter(response: Response): SChapter { - val jsonData = response.body()!!.string() - val jsonObject = JsonParser().parse(jsonData).asJsonObject - val jsonArray = jsonObject.getAsJsonObject("results") - - val sChapter = SChapter.create() - - jsonArray.let { json -> - val id = json["id"].string - sChapter.url = "$baseUrl/g/$id" - sChapter.name = "chapter" - //api doesnt return date so setting to current date for now - sChapter.date_upload = Date().time - } - return sChapter - - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - return POST(baseUrl + SEARCH_URL, headers, buildRequestBody(query, page)) - } - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { return client.newCall(searchMangaRequest(page, query, filters)) .asObservableSuccess() .map { response -> - searchMangaParse(response) + getMangaList(response, page) } } - override fun searchMangaParse(response: Response): MangasPage = popularMangaParse(response) - - override fun mangaDetailsParse(response: Response): SManga { + private fun getMangaList(response: Response, page: Int): MangasPage { val jsonData = response.body()!!.string() val jsonObject = JsonParser().parse(jsonData).asJsonObject - val results = jsonObject.getAsJsonObject("results") - return parseSearch(listOf(results))[0] + val totalPages = jsonObject["total_count"].int + val results = jsonObject["results"].array + return MangasPage(parseSearch(results.toList()), page < totalPages) } - override fun chapterListParse(response: Response): List = listOf(getChapter(response)) + private fun parseSearch(jsonArray: List): List { + val mutableList = mutableListOf() + jsonArray.forEach { json -> + val manga = SManga.create() + val gsonManga = gson.fromJson(json) + manga.url = "/g/${gsonManga.id}" + manga.title = gsonManga.title + manga.thumbnail_url = gsonManga.image_server + gsonManga.id + "/cover.jpg" + manga.genre = gsonManga.tags.filter { it.type == 1 }.joinToString { it.name } + manga.artist = gsonManga.tags.firstOrNull { it.type == 4 }?.name + manga.initialized = true + mutableList.add(manga) + } + return mutableList + } - override fun pageListParse(document: Document) = throw Exception("Not used") + override fun fetchChapterList(manga: SManga): Observable> { + val chapter = SChapter.create() + val chapterId = manga.url.substringAfter("/g/").toInt() + chapter.url = "/g/$chapterId" + chapter.name = "chapter" + //api doesnt return date so setting to current date for now + chapter.date_upload = Date().time - override fun fetchPageList(chapter: SChapter): Observable> { - val mangaId = chapter.url.substringAfter("/g/").toInt() + return Observable.just(listOf(chapter)) + } - return client.newCall(POST(baseUrl + MANGA_URL, headers, buildIdBody(mangaId))) - .asObservableSuccess() - .map { response -> - pageListParse(response) + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val includedTags = mutableListOf() + val excludedTags = mutableListOf() + var sort = 0 + for (filter in if (filters.isEmpty()) getFilterList() else filters) { + when(filter){ + is GenreList -> { + filter.state.forEach { f -> + if (!f.isIgnored()) { + if (f.isExcluded()) + excludedTags.add(f) + else + includedTags.add(f) + } + } } + is Sorting -> { + sort = filter.state!!.index + } + } + } + return POST(baseUrl + SEARCH_URL, headers, buildRequestBody(query, page, sort, includedTags, excludedTags)) + } + + override fun fetchMangaDetails(manga: SManga): Observable { + return Observable.just(manga) + } + + override fun pageListRequest(chapter: SChapter): Request { + val mangaId = chapter.url.substringAfter("/g/").toInt() + return POST(baseUrl + MANGA_URL, headers, buildIdBody(mangaId)) } override fun pageListParse(response: Response): List { @@ -152,38 +140,54 @@ open class NineHentai : ParsedHttpSource() { var mangaId: String jsonArray.let { json -> mangaId = json["id"].string - imageUrl = json["image_server"].string + mangaId + "/" + imageUrl = json["image_server"].string + mangaId totalPages = json["total_page"].int } val pages = mutableListOf() for (i in 1..totalPages) { - pages.add(Page(pages.size, "", "$imageUrl$i.jpg")) + pages.add(Page(pages.size, "", "$imageUrl/$i.jpg")) } return pages } - private fun buildRequestBody(searchText: String = "", page: Int = 0, sort: Int = 0): RequestBody { - val gson = GsonBuilder().create() - val json = gson.toJson(mapOf("search" to mapOf("text" to searchText, "page" to page, "sort" to sort, "pages" to mapOf("range" to intArrayOf(0, 2000)), "tag" to mapOf("text" to "", "type" to 1, "tags" to arrayOf(), "items" to mapOf("included" to arrayOf(), "excluded" to arrayOf()))))) + private fun buildRequestBody(searchText: String = "", page: Int, sort: Int = 0, includedTags: MutableList = arrayListOf(), excludedTags: MutableList = arrayListOf()): RequestBody { + val json = gson.toJson(mapOf("search" to SearchRequest(text = searchText, page = page-1, sort = sort, tag = mapOf("items" to Items(includedTags, excludedTags))))) return RequestBody.create(MEDIA_TYPE, json) } - override fun mangaDetailsRequest(manga: SManga): Request { - val id = manga.url.substringAfter("/g/").toInt() - return POST(baseUrl + MANGA_URL, headers, buildIdBody(id)) + private fun buildIdBody(id: Int): RequestBody { + return RequestBody.create(MEDIA_TYPE, gson.toJson(mapOf("id" to id))) } - private fun buildIdBody(id: Int): RequestBody { - val dto = eu.kanade.tachiyomi.extension.all.ninehentai.id(id) - return RequestBody.create(MEDIA_TYPE, Gson().toJson(dto)) - } + private class GenreList(tags: List) : Filter.Group("Tags", tags) + + private class Sorting : Filter.Sort("Sorting", + arrayOf("Newest", "Popular Rightnow", "Most Fapped", "Most Viewed", "By Title"), + Filter.Sort.Selection(1, false)) + + override fun getFilterList() = FilterList( + Sorting(), + GenreList(NHTags.getTagsList()) + ) override fun imageUrlParse(document: Document): String = "" + override fun chapterListRequest(manga: SManga): Request = throw Exception("Not Used") + + override fun popularMangaParse(response: Response): MangasPage = throw Exception("Not Used") + + override fun latestUpdatesParse(response: Response): MangasPage = throw Exception("Not Used") + + override fun searchMangaParse(response: Response): MangasPage = throw Exception("Not Used") + + override fun chapterListParse(response: Response): List = throw Exception("Not Used") + override fun chapterFromElement(element: Element): SChapter = throw Exception("Not used") + override fun pageListParse(document: Document) = throw Exception("Not used") + override fun chapterListSelector(): String = throw Exception("Not used") override fun latestUpdatesFromElement(element: Element): SManga = throw Exception("Not used") @@ -192,6 +196,8 @@ open class NineHentai : ParsedHttpSource() { override fun latestUpdatesSelector(): String = throw Exception("Not used") + override fun mangaDetailsParse(response: Response): SManga = throw Exception("Not Used") + override fun mangaDetailsParse(document: Document): SManga = throw Exception("Not used") override fun popularMangaFromElement(element: Element): SManga = throw Exception("Not used")