YaoiMangaOnline: new extension (#9400)
This commit is contained in:
parent
d951fe88ed
commit
d2f1d094d4
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest package="eu.kanade.tachiyomi.extension"/>
|
|
@ -0,0 +1,12 @@
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
|
ext {
|
||||||
|
extName = 'Yaoi Manga Online'
|
||||||
|
pkgNameSuffix = 'all.yaoimangaonline'
|
||||||
|
extClass = '.YaoiMangaOnline'
|
||||||
|
extVersionCode = 1
|
||||||
|
isNsfw = true
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: "$rootDir/common.gradle"
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,432 @@
|
||||||
|
package eu.kanade.tachiyomi.extension.all.yaoimangaonline
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.source.model.Filter
|
||||||
|
|
||||||
|
class CategoryFilter(
|
||||||
|
values: Array<String> = categories.keys.toTypedArray()
|
||||||
|
) : Filter.Select<String>("Category", values) {
|
||||||
|
override fun toString() = categories[values[state]]!!
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val categories = mapOf(
|
||||||
|
"ALL" to "-1",
|
||||||
|
"07-Ghost dj" to "121",
|
||||||
|
"A3! Dj" to "5315",
|
||||||
|
"Ace Attorney Dj" to "5899",
|
||||||
|
"Ai no Kusabi DJ" to "87",
|
||||||
|
"AI: The Somnium Files Dj" to "6774",
|
||||||
|
"Aldnoah.Zero Dj" to "4978",
|
||||||
|
"All Out!! Dj" to "3414",
|
||||||
|
"Ameiro Paradox Dj" to "1741",
|
||||||
|
"Ansatsu Kyoushitsu Dj" to "3437",
|
||||||
|
"Antique Bakery dj" to "123",
|
||||||
|
"Ao no Exorcist Dj" to "639",
|
||||||
|
"Arashi Dj" to "2518",
|
||||||
|
"Arslan Senki Dj" to "5098",
|
||||||
|
"Assassination Classroom Dj" to "2522",
|
||||||
|
"Assassin’s Creed Dj" to "2519",
|
||||||
|
"Astro Fighter Sunred Dj" to "348",
|
||||||
|
"Attack on Titan dj" to "108",
|
||||||
|
"Avengers Dj" to "2532",
|
||||||
|
"Azazel san! dj" to "214",
|
||||||
|
"Baccano Dj" to "5925",
|
||||||
|
"Bakumatsu Rock Dj" to "2552",
|
||||||
|
"Banana Fish Dj" to "5926",
|
||||||
|
"Band Yarouze! Dj" to "3941",
|
||||||
|
"Bara" to "14",
|
||||||
|
"Barakamon dj" to "132",
|
||||||
|
"Basquash! Dj" to "2550",
|
||||||
|
"Batman Dj" to "7861",
|
||||||
|
"Battle Spirits Dj" to "2555",
|
||||||
|
"Beelzebub dj" to "125",
|
||||||
|
"Berserk Dj" to "2558",
|
||||||
|
"Beyblade Burst Dj" to "3512",
|
||||||
|
"Big Hero 6 Dj" to "3464",
|
||||||
|
"Black Clover Dj" to "5924",
|
||||||
|
"Black Jack Dj" to "4006",
|
||||||
|
"Blazblue Dj" to "351",
|
||||||
|
"Blood Blockade Battlefront Dj" to "3987",
|
||||||
|
"Boktai Dj" to "1307",
|
||||||
|
"Boku Dake ga Inai Machi Dj" to "3529",
|
||||||
|
"Boku no Hero Academia Dj" to "3362",
|
||||||
|
"Boondock Saints Dj" to "2620",
|
||||||
|
"Border Dj" to "2617",
|
||||||
|
"Brave Story Dj" to "2622",
|
||||||
|
"Buddy Complex Dj" to "2625",
|
||||||
|
"Bungou Stray Dogs Dj" to "5897",
|
||||||
|
"Bungou to Alchemist Dj" to "6365",
|
||||||
|
"Call of Duty Modern Warfare DJ" to "2794",
|
||||||
|
"Candidate for Goddess Dj" to "2627",
|
||||||
|
"Cardfight!! Vanguard Dj" to "3611",
|
||||||
|
"Casshern Sins Dj" to "2628",
|
||||||
|
"Castlevania Dj" to "2631",
|
||||||
|
"Chinko no Tsubuyaki Dj" to "2865",
|
||||||
|
"Chobits Dj" to "2546",
|
||||||
|
"Chouhatsu Denkou Sekka Boys Dj" to "4977",
|
||||||
|
"Chousoku Henkei Gyrozetter Dj" to "2633",
|
||||||
|
"Clannad Dj" to "2635",
|
||||||
|
"Cluster Edge Dj" to "2640",
|
||||||
|
"Code Geass Dj" to "2644",
|
||||||
|
"ConCon-Collector Dj" to "478",
|
||||||
|
"Crows ZERO Dj" to "3331",
|
||||||
|
"D.Gray-man Dj" to "2255",
|
||||||
|
"Daiya no Ace Dj" to "2676",
|
||||||
|
"Danganronpa Dj" to "3712",
|
||||||
|
"Dark Avengers Dj" to "2529",
|
||||||
|
"Darkstalkers/ Red Earth dj" to "383",
|
||||||
|
"Datenshi ni Sasageru Uta dj" to "949",
|
||||||
|
"DAYS Dj" to "3514",
|
||||||
|
"Dead by Daylight Dj" to "4970",
|
||||||
|
"Detective Conan Dj" to "3333",
|
||||||
|
"Devil May Cry 5 Dj" to "5915",
|
||||||
|
"Devilman Dj" to "4975",
|
||||||
|
"Donten ni Warau Dj" to "3922",
|
||||||
|
"Doushitemo Furetakunai Dj" to "3052",
|
||||||
|
"Dr. Stone Dj" to "7324",
|
||||||
|
"Dragalia Lost Dj" to "5914",
|
||||||
|
"Dragon Ball Dj" to "2799",
|
||||||
|
"Dragon Quest Dj" to "398",
|
||||||
|
"Dragon’s Dogma Dj" to "3679",
|
||||||
|
"DRAMAtical Murder Dj" to "3486",
|
||||||
|
"Drifters Dj" to "5930",
|
||||||
|
"Durarara dj" to "82",
|
||||||
|
"Dynasty Warriors Dj" to "3218",
|
||||||
|
"Enen no Shouboutai Dj" to "5933",
|
||||||
|
"Ensemble Stars! Dj" to "1868",
|
||||||
|
"Enzai Dj" to "571",
|
||||||
|
"Eternal Arcadia Dj" to "2825",
|
||||||
|
"Eyeshield 21 Dj" to "3644",
|
||||||
|
"Fantastic Boyfriends Dj" to "1704",
|
||||||
|
"Fate/Grand Order Dj" to "3117",
|
||||||
|
"Fate/Stay Night Dj" to "3656",
|
||||||
|
"Fate/Zero Dj" to "3235",
|
||||||
|
"Final Fantasy Dj" to "3277",
|
||||||
|
"Fire Emblem Dj" to "692",
|
||||||
|
"Free! dj" to "71",
|
||||||
|
"Friday the 13th Dj" to "3944",
|
||||||
|
"Fullmetal Alchemist Dj" to "409",
|
||||||
|
"Furry" to "15",
|
||||||
|
"Future Card Buddyfight Dj" to "387",
|
||||||
|
// "Gay Movies" to "3017",
|
||||||
|
"Gay Novels" to "1852",
|
||||||
|
"Gekkan Shoujo Nozaki-kun Dj" to "3940",
|
||||||
|
"Genshin Impact Dj" to "6423",
|
||||||
|
"GetBackers Dj" to "5278",
|
||||||
|
"Giant Killing Dj" to "3216",
|
||||||
|
"Gingitsune Dj" to "325",
|
||||||
|
"Gintama Dj" to "3225",
|
||||||
|
"Golden Kamuy Dj" to "5901",
|
||||||
|
"Granblue Fantasy Dj" to "3758",
|
||||||
|
"Gravitation Dj" to "2069",
|
||||||
|
"Gravity Falls Dj" to "3855",
|
||||||
|
"Guardians of the Galaxy Dj" to "449",
|
||||||
|
"Gugure! Kokkuri-san Dj" to "3877",
|
||||||
|
"Gundam Dj" to "5931",
|
||||||
|
"Gundam Wing Dj" to "5900",
|
||||||
|
"Gyakuten Saiban Dj" to "2834",
|
||||||
|
"Hacka Doll Dj" to "3472",
|
||||||
|
"Haikyuu!! Dj" to "512",
|
||||||
|
"Hakkenden Dj" to "2498",
|
||||||
|
"Hakuouki Dj" to "2495",
|
||||||
|
"Harry Potter Dj" to "2489",
|
||||||
|
"Hataraku Saibou Dj" to "4191",
|
||||||
|
"Heat Guy J Dj" to "2482",
|
||||||
|
"Heroman Dj" to "2479",
|
||||||
|
"Hetalia Dj" to "191",
|
||||||
|
"Hidoku Shinaide Dj" to "754",
|
||||||
|
"Hikaru No Go Dj" to "2476",
|
||||||
|
"Hinomaru Zumou Dj" to "2473",
|
||||||
|
"Honeycomb Child Dj" to "306",
|
||||||
|
"Hoozuki no Reitetsu Dj" to "3810",
|
||||||
|
"How to Train Your Dragon Dj" to "196",
|
||||||
|
"Hunter x Hunter Dj" to "3562",
|
||||||
|
"Hypnosis Mic Dj" to "4289",
|
||||||
|
"Identity V Dj" to "5929",
|
||||||
|
"IDOLiSH7 Dj" to "3773",
|
||||||
|
"Inazuma Eleven Dj" to "2279",
|
||||||
|
"Initial D Dj" to "2464",
|
||||||
|
"Interval Dj" to "2462",
|
||||||
|
"InuYasha Dj" to "2455",
|
||||||
|
"Ixion Saga Dj" to "2454",
|
||||||
|
"Jinrou Judgement Dj" to "7862",
|
||||||
|
"Jojo DJ" to "1280",
|
||||||
|
"Jojo no Kimyou na Bouken Dj" to "3193",
|
||||||
|
"Jormungand Dj" to "6228",
|
||||||
|
"Jujutsu Kaisen Dj" to "5895",
|
||||||
|
"K Project Dj" to "1014",
|
||||||
|
"Kagerou Project Dj" to "4094",
|
||||||
|
"Kaiji Dj" to "2828",
|
||||||
|
"Kakumeiki Valvrave Dj" to "2450",
|
||||||
|
"Kami-sama no Ude no Naka de Dj" to "3056",
|
||||||
|
"Kanpai! Dj" to "2445",
|
||||||
|
"Kantai Collection Dj" to "3664",
|
||||||
|
"Karamete de Kudoite Dj" to "1933",
|
||||||
|
"Katekyo Hitman Reborn! Dj" to "2247",
|
||||||
|
"Katekyo! Dj" to "1843",
|
||||||
|
"Kekkai Sensen Dj" to "3695",
|
||||||
|
"Kichiku Megane Dj" to "3816",
|
||||||
|
"Kidou Senshi Gundam – Tekketsu no Orphans Dj" to "3129",
|
||||||
|
"Kill la Kill Dj" to "2447",
|
||||||
|
"Killing Stalking Dj" to "6593",
|
||||||
|
"Kimetsu no Yaiba Dj" to "5898",
|
||||||
|
"Kimi no Na wa dj" to "5423",
|
||||||
|
"Kimi to boku Dj" to "2442",
|
||||||
|
"King of Fighters Dj" to "6255",
|
||||||
|
"King of Prism by Pretty Rhythm Dj" to "4973",
|
||||||
|
"King’s Raid Dj" to "4969",
|
||||||
|
"Kingdom Hearts Dj" to "2269",
|
||||||
|
"Kiseijuu Dj" to "2996",
|
||||||
|
"Knight’s & Magic Dj" to "3736",
|
||||||
|
"Kocchi Muite Waratte Dj" to "3238",
|
||||||
|
"Koibito Kijunchi Dj" to "882",
|
||||||
|
"Koisuru Boukun Dj" to "1004",
|
||||||
|
"Konjiki no Gash!! Dj" to "3892",
|
||||||
|
"Kono Yoru no Subete Dj" to "2440",
|
||||||
|
"Koshotengai no Hashihime Dj" to "4968",
|
||||||
|
"Kuroko no Basuke Dj" to "1094",
|
||||||
|
"Kuroshitsuji Dj" to "2252",
|
||||||
|
"Kyoukai no Kanata Dj" to "2434",
|
||||||
|
"Kyoushou Sentai Danjijaa Dj" to "3303",
|
||||||
|
"Lamento dj" to "150",
|
||||||
|
"Laputa Castle in the Sky Dj" to "2432",
|
||||||
|
"League of Legends Dj" to "455",
|
||||||
|
"Legendz: Tale of the Dragon Kings Dj" to "343",
|
||||||
|
"Lord of the Rings Dj" to "148",
|
||||||
|
"Loveless Dj" to "5928",
|
||||||
|
"Lucky Dog Dj" to "3894",
|
||||||
|
"Magi dj" to "139",
|
||||||
|
"Maiden Rose DJ" to "724",
|
||||||
|
"Megido72 Dj" to "4972",
|
||||||
|
"Metal Gear Solid Dj" to "3395",
|
||||||
|
"Mob Psycho 100 Dj" to "3450",
|
||||||
|
"Mobile Fighter G Gundam Dj" to "2831",
|
||||||
|
"Mobile Suit Gundam 00 Dj" to "3627",
|
||||||
|
"Mobile Suit Gundam Tekketsu no Orphans Dj" to "702",
|
||||||
|
"Morenatsu Dj" to "355",
|
||||||
|
"Mousou Elektel Dj" to "994",
|
||||||
|
"Mugen no Juunin Dj" to "2821",
|
||||||
|
"Mushishi Dj" to "2242",
|
||||||
|
"MUV-LUV Dj" to "2241",
|
||||||
|
"My Hero Academia Dj" to "3137",
|
||||||
|
"Naruto Dj" to "2402",
|
||||||
|
"Natsume Yuujinchou Dj" to "3913",
|
||||||
|
"Neon Genesis Evangelion Dj" to "2841",
|
||||||
|
"New Danganronpa V3 Dj" to "3410",
|
||||||
|
"NieR: Automata Dj" to "3722",
|
||||||
|
"NightS Dj" to "4974",
|
||||||
|
"Nightwing Dj" to "3170",
|
||||||
|
"Ninku Dj" to "2926",
|
||||||
|
"Noragami Dj" to "2237",
|
||||||
|
"Octopath Traveler Dj" to "5531",
|
||||||
|
"One Piece Dj" to "2384",
|
||||||
|
"One Punch-Man Dj" to "3171",
|
||||||
|
"Onmyou Taisenki Dj" to "496",
|
||||||
|
"Ookiku Furikabutte Dj" to "5934",
|
||||||
|
"Oreimo Dj" to "3260",
|
||||||
|
"Osomatsu-san Dj" to "3120",
|
||||||
|
"Ouran High School Host Club Dj" to "2919",
|
||||||
|
"Owari no Seraph Dj" to "2909",
|
||||||
|
"Palette Parade Dj" to "5923",
|
||||||
|
"Pandora Hearts Dj" to "2896",
|
||||||
|
"Persona 3 Dj" to "3551",
|
||||||
|
"Persona 4 Dj" to "336",
|
||||||
|
"Persona 5 Dj" to "3508",
|
||||||
|
"Phantasy Star Dj" to "2235",
|
||||||
|
"Phi Brain Dj" to "2233",
|
||||||
|
"Phoenix Wright Dj" to "2804",
|
||||||
|
"Phoenix Wright: Ace Attorney Dj" to "2835",
|
||||||
|
"Pokemon dj" to "51",
|
||||||
|
"Pretty Rhythm Dj" to "5950",
|
||||||
|
"Prince of Tennis Dj" to "2336",
|
||||||
|
"Professor Layton Dj" to "2332",
|
||||||
|
"Promare Dj" to "4280",
|
||||||
|
"Psycho Break Dj" to "1967",
|
||||||
|
"Psycho Pass Dj" to "5910",
|
||||||
|
"Pumpkin Scissors Dj" to "2231",
|
||||||
|
"Punishing: Gray Raven Dj" to "5896",
|
||||||
|
"Quiz Magic Academy Dj" to "5981",
|
||||||
|
"Rakudai Ninja Rantarou Dj" to "1911",
|
||||||
|
"Rampo Kitan: Game of Laplace Dj" to "3417",
|
||||||
|
"Re: Zero kara Hajimeru Isekai Seikatsu Dj" to "5935",
|
||||||
|
"Resident Evil Dj" to "2832",
|
||||||
|
"Rival Schools Dj" to "2844",
|
||||||
|
"Rokkuman Dj" to "2229",
|
||||||
|
"Rurouni Kenshin Dj" to "2226",
|
||||||
|
"Ryu ga Gotoku Dj" to "6335",
|
||||||
|
"Sabita Yoru demo Koi wa Sasayaku Dj" to "1465",
|
||||||
|
"Saiki Kusuo no Psi Nan Dj" to "3851",
|
||||||
|
"Saint Seiya Dj" to "7860",
|
||||||
|
"Saint Young Men Dj" to "2223",
|
||||||
|
"Saiyuki Dj" to "5905",
|
||||||
|
"Sakura Gari Dj" to "734",
|
||||||
|
"Samurai Deeper Kyo Dj" to "2220",
|
||||||
|
"Sekaiichi Hatsukoi Dj" to "2379",
|
||||||
|
"Sengoku Basara Dj" to "3250",
|
||||||
|
"Sherlock Dj" to "1710",
|
||||||
|
"Shiki Dj" to "2323",
|
||||||
|
"Shin SangokuMusou Dj" to "3217",
|
||||||
|
"Shin Seiki Evangelion Dj" to "3156",
|
||||||
|
"Shingeki no Kyojin dj" to "97",
|
||||||
|
"Shining Wind Dj" to "461",
|
||||||
|
"Shinkansen Henkei Robo Shinkalion Dj" to "5908",
|
||||||
|
"Shinrabansou Choco Dj" to "2820",
|
||||||
|
"Shironeko Project Dj" to "2321",
|
||||||
|
"Shokugeki no Soma Dj" to "5907",
|
||||||
|
"Shoshitsu Dj" to "2318",
|
||||||
|
"Show by Rock!! Dj" to "3906",
|
||||||
|
"ShuMao Dj" to "2218",
|
||||||
|
"Silver Spoon Dj" to "4074",
|
||||||
|
"SK8 the Infinity Dj" to "7178",
|
||||||
|
"Slam Dunk Dj" to "6104",
|
||||||
|
"SMAP! Dj" to "2987",
|
||||||
|
"Smile PreCure! dj" to "370",
|
||||||
|
"Soukyuu no Fafner Dj" to "2216",
|
||||||
|
"SOUL CATCHER" to "5904",
|
||||||
|
"Soul Eater Dj" to "2314",
|
||||||
|
"Soul Hackers Dj" to "2313",
|
||||||
|
"SoulCalibur Dj" to "2312",
|
||||||
|
"South Park Dj" to "4030",
|
||||||
|
"Splatoon Dj" to "2377",
|
||||||
|
"SSSS.GRIDMAN Dj" to "5903",
|
||||||
|
"Star Fox Dj" to "417",
|
||||||
|
"Stardew Valley Dj" to "5932",
|
||||||
|
"Starry Sky Dj" to "2211",
|
||||||
|
"Strange Plus Dj" to "2212",
|
||||||
|
"Street Fighter Dj" to "3769",
|
||||||
|
"Strider Hiryuu Dj" to "2214",
|
||||||
|
"Suisei no Gargantia Dj" to "3245",
|
||||||
|
"Summer Wars Dj" to "2797",
|
||||||
|
"Superman/Batman Dj" to "49",
|
||||||
|
"Supernatural Dj" to "1705",
|
||||||
|
"SWAT Kats Dj" to "3283",
|
||||||
|
"Sword Art Online dj" to "185",
|
||||||
|
"Tactics dj" to "182",
|
||||||
|
"Taiiku Kyoushi Kiwame Dj" to "3806",
|
||||||
|
"Tales of Destiny Dj" to "5902",
|
||||||
|
"Tales of Graces dj" to "180",
|
||||||
|
"Tales of the Abyss Dj" to "4073",
|
||||||
|
"Tales of Vesperia Dj" to "3931",
|
||||||
|
"Tales of Zestiria Dj" to "4976",
|
||||||
|
"Tate no Yuusha no Nariagari Dj" to "4967",
|
||||||
|
"The Evil Within Dj" to "1966",
|
||||||
|
"THE IDOLM@STER Dj" to "3558",
|
||||||
|
"The Legend Of Zelda Dj" to "4455",
|
||||||
|
"The Lion King DJ" to "320",
|
||||||
|
"The Melancholy of Haruhi Suzumiya Dj" to "3823",
|
||||||
|
"The Mighty Thor Dj" to "2082",
|
||||||
|
"The Outsiders Dj" to "576",
|
||||||
|
"The Silence of the Lambs Dj" to "5982",
|
||||||
|
"The Unlimited – Hyoubu Kyousuke Dj" to "834",
|
||||||
|
"The World God Only Knows Dj" to "3667",
|
||||||
|
"Tiger & Bunny dj" to "61",
|
||||||
|
"To Aru Majutsu no Index Dj" to "2079",
|
||||||
|
"Tobaku Haouden ZERO Dj" to "3927",
|
||||||
|
"Togainu no Chi dj" to "46",
|
||||||
|
"Tokkyuu!! Dj" to "2077",
|
||||||
|
"Tokyo Ghoul Dj" to "1756",
|
||||||
|
"Toriko Dj" to "2812",
|
||||||
|
"Totally Captivated dj" to "178",
|
||||||
|
"Touken Ranbu Dj" to "570",
|
||||||
|
"Trigun Dj" to "174",
|
||||||
|
"Turn A Gundam Dj" to "2480",
|
||||||
|
"Twisted Wonderland Dj" to "5909",
|
||||||
|
"Uchuu Kyoudai Dj" to "6052",
|
||||||
|
"Under Grand Hotel Dj" to "3048",
|
||||||
|
"Ura Brave Kingdom Dj" to "2074",
|
||||||
|
"Urban Reign Dj" to "2846",
|
||||||
|
"Usavich dj" to "47",
|
||||||
|
"Uta no Prince-sama Dj" to "2259",
|
||||||
|
"Utawarerumono Dj" to "230",
|
||||||
|
"Valkariya Chronicles Dj" to "2806",
|
||||||
|
"Valkyria Chronicles Dj" to "225",
|
||||||
|
"Valvrave the Liberator Dj" to "2449",
|
||||||
|
"Vampire Knight dj" to "171",
|
||||||
|
"Vassalord dj" to "166",
|
||||||
|
"Vinland Saga Dj" to "6424",
|
||||||
|
"Vocaloid Dj" to "1719",
|
||||||
|
"Voltron Dj" to "5414",
|
||||||
|
"Warriors Orochi Dj" to "218",
|
||||||
|
"Wild Adapter dj" to "164",
|
||||||
|
"Winnie the Pooh Dj" to "3869",
|
||||||
|
"World Trigger Dj" to "1091",
|
||||||
|
"xxxHoLic Dj" to "1075",
|
||||||
|
"Yahari Ore no Seishun Love Comedy wa Machigatteiru Dj" to "5916",
|
||||||
|
"Yakuza DJ" to "161",
|
||||||
|
"Yami no Matsuei Dj" to "6106",
|
||||||
|
// "Yaoi Anime" to "2009",
|
||||||
|
"Yaoi DJ" to "1",
|
||||||
|
"Yaoi Gallery" to "198",
|
||||||
|
"Yaoi Games Online" to "199",
|
||||||
|
"Yaoi Magazines" to "3543",
|
||||||
|
"Yaoi Manga" to "13",
|
||||||
|
"Yaoi Oneshots" to "22",
|
||||||
|
"Yarichin Bitch Club Dj" to "5927",
|
||||||
|
"Yarou Fes 2013 Petit Dj" to "3433",
|
||||||
|
"Yondemasuyo Azazel-san dj" to "210",
|
||||||
|
"Young Black Jack dj" to "207",
|
||||||
|
"Yowamushi Pedal Dj" to "2273",
|
||||||
|
"Yu Yu Hakusho Dj" to "1087",
|
||||||
|
"Yu-Gi-Oh! Dj" to "1027",
|
||||||
|
"Yuri!!! on Ice Dj" to "2503",
|
||||||
|
"Zettai Karen Children dj" to "50",
|
||||||
|
"Zootopia Dj" to "2075",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class TagFilter(
|
||||||
|
values: Array<String> = tags.keys.toTypedArray()
|
||||||
|
) : Filter.Select<String>("Tag", values) {
|
||||||
|
override fun toString() = tags[values[state]]!!
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val tags = mapOf(
|
||||||
|
"ALL" to "",
|
||||||
|
"Ahegao" to "ahegao",
|
||||||
|
"Bara" to "bara",
|
||||||
|
"BDSM Yaoi" to "bdsm",
|
||||||
|
"Beastality" to "beastality",
|
||||||
|
"Big Penis" to "big-penis",
|
||||||
|
"Blowjob" to "blowjob",
|
||||||
|
"Bondage" to "bondage",
|
||||||
|
"Chinese" to "chinese",
|
||||||
|
"Comedy" to "comedy",
|
||||||
|
"Completed Yaoi Manga" to "completed-yaoi-manga",
|
||||||
|
"Cross-dressing" to "cross-dressing",
|
||||||
|
"Cute" to "cute",
|
||||||
|
"Dark skin" to "dark-skin",
|
||||||
|
"Drama" to "drama",
|
||||||
|
"English" to "english",
|
||||||
|
"Full Color" to "full-color",
|
||||||
|
"Group Sex" to "group-sex",
|
||||||
|
"Handjob" to "handjob",
|
||||||
|
"Hardcore" to "hardcore",
|
||||||
|
"Hard Yaoi" to "hard-yaoi",
|
||||||
|
"Hentai" to "hentai",
|
||||||
|
"Hentai Yaoi" to "hentai-yaoi",
|
||||||
|
"Hentai Yaoi Manga" to "hentai-yaoi-manga",
|
||||||
|
"Incest" to "incest",
|
||||||
|
"Japanese" to "japanese",
|
||||||
|
"Komik Yaoi Hentai" to "komik-yaoi-hentai",
|
||||||
|
"Korean" to "korean",
|
||||||
|
"Masturbation" to "masturbation",
|
||||||
|
"Megane" to "megane",
|
||||||
|
"Muscle" to "muscle",
|
||||||
|
"Nipple play" to "nipple-play",
|
||||||
|
"Rape" to "rape",
|
||||||
|
"Romance" to "romance",
|
||||||
|
"School Life" to "school-life",
|
||||||
|
"Sex toy" to "sex-toy",
|
||||||
|
"Shounen Ai" to "shounen-ai",
|
||||||
|
"Slice of Life" to "slice-of-life",
|
||||||
|
"Smut" to "smut",
|
||||||
|
"Threesome" to "threesome",
|
||||||
|
"Uncensored Yaoi" to "uncensored-yaoi",
|
||||||
|
"Webtoon" to "webtoon",
|
||||||
|
"Yaoi" to "yaoi",
|
||||||
|
"Yaoi Hentai" to "yaoi-hentai",
|
||||||
|
"Yaoi Hentai Manga" to "yaoi-hentai-manga",
|
||||||
|
"Yaoi Sex" to "yaoi-sex",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
package eu.kanade.tachiyomi.extension.all.yaoimangaonline
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
|
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||||
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
import okhttp3.Response
|
||||||
|
import org.jsoup.nodes.Document
|
||||||
|
import org.jsoup.nodes.Element
|
||||||
|
|
||||||
|
class YaoiMangaOnline : ParsedHttpSource() {
|
||||||
|
override val lang = "all"
|
||||||
|
|
||||||
|
override val name = "Yaoi Manga Online"
|
||||||
|
|
||||||
|
override val baseUrl = "https://yaoimangaonline.com"
|
||||||
|
|
||||||
|
override val supportsLatest = false
|
||||||
|
|
||||||
|
override fun latestUpdatesSelector() = popularMangaSelector()
|
||||||
|
|
||||||
|
override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector()
|
||||||
|
|
||||||
|
override fun latestUpdatesRequest(page: Int) = popularMangaRequest(page)
|
||||||
|
|
||||||
|
override fun latestUpdatesFromElement(element: Element) =
|
||||||
|
popularMangaFromElement(element)
|
||||||
|
|
||||||
|
override fun popularMangaSelector() = searchMangaSelector()
|
||||||
|
|
||||||
|
override fun popularMangaNextPageSelector() = searchMangaNextPageSelector()
|
||||||
|
|
||||||
|
override fun popularMangaRequest(page: Int) =
|
||||||
|
searchMangaRequest(page, "", FilterList())
|
||||||
|
|
||||||
|
override fun popularMangaFromElement(element: Element) =
|
||||||
|
searchMangaFromElement(element)
|
||||||
|
|
||||||
|
override fun searchMangaSelector() =
|
||||||
|
".post:not(.category-gay-movies):not(.category-yaoi-anime) > div > a"
|
||||||
|
|
||||||
|
override fun searchMangaNextPageSelector() = ".herald-pagination > .next"
|
||||||
|
|
||||||
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
|
||||||
|
baseUrl.toHttpUrl().newBuilder().run {
|
||||||
|
filters.forEach {
|
||||||
|
when (it) {
|
||||||
|
is CategoryFilter -> if (it.state != 0) {
|
||||||
|
addQueryParameter("cat", it.toString())
|
||||||
|
}
|
||||||
|
is TagFilter -> if (it.state != 0) {
|
||||||
|
addEncodedPathSegments("tag/$it")
|
||||||
|
}
|
||||||
|
else -> Unit
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addQueryParameter("s", query)
|
||||||
|
GET(toString(), headers)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun searchMangaFromElement(element: Element) =
|
||||||
|
SManga.create().apply {
|
||||||
|
title = element.attr("title")
|
||||||
|
setUrlWithoutDomain(element.attr("href"))
|
||||||
|
thumbnail_url = element.selectFirst("img").attr("src")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun mangaDetailsParse(document: Document) =
|
||||||
|
SManga.create().apply {
|
||||||
|
title = document.selectFirst(".entry-title").text()
|
||||||
|
thumbnail_url = document.head()
|
||||||
|
.selectFirst("meta[property=og:image]").attr("content")
|
||||||
|
description = document.selectFirst(".entry-content > p")
|
||||||
|
.html().replace("<br> ", "\n")
|
||||||
|
genre = document.select(".meta-tags > a").joinToString { it.text() }
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun chapterListSelector() = "#acp_paging_menu > li"
|
||||||
|
|
||||||
|
override fun chapterFromElement(element: Element) =
|
||||||
|
SChapter.create().apply {
|
||||||
|
name = element.selectFirst(".acp_title").text()
|
||||||
|
setUrlWithoutDomain(
|
||||||
|
element.selectFirst("a")?.attr("href") ?: element.baseUri()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun chapterListParse(response: Response) =
|
||||||
|
super.chapterListParse(response).ifEmpty {
|
||||||
|
SChapter.create().apply {
|
||||||
|
name = "Chapter"
|
||||||
|
url = response.request.url.encodedPath
|
||||||
|
}.let(::listOf)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun pageListParse(document: Document) =
|
||||||
|
document.select(".size-full").mapIndexed { idx, img ->
|
||||||
|
Page(idx, "", img.attr("src"))
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun imageUrlParse(document: Document) =
|
||||||
|
throw UnsupportedOperationException("Not used")
|
||||||
|
|
||||||
|
override fun getFilterList() =
|
||||||
|
FilterList(CategoryFilter(), TagFilter())
|
||||||
|
}
|
Loading…
Reference in New Issue