Initial commit
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
BIN
multisrc/overrides/mangacatalog/default/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 269 KiB |
@@ -0,0 +1,33 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readattackontitanshingekinokyojinmanga
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadAttackOnTitanShingekiNoKyojinManga : MangaCatalog("Read Attack on Titan Shingeki no Kyojin Manga", "https://ww8.readsnk.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Shingeki No Kyojin", "$baseUrl/manga/shingeki-no-kyojin/"),
|
||||
Pair("Colored", "$baseUrl/manga/shingeki-no-kyojin-colored/"),
|
||||
Pair("Before the Fall", "$baseUrl/manga/shingeki-no-kyojin-before-the-fall/"),
|
||||
Pair("Lost Girls", "$baseUrl/manga/shingeki-no-kyojin-lost-girls/"),
|
||||
Pair("No Regrets", "$baseUrl/manga/attack-on-titan-no-regrets/"),
|
||||
Pair("Junior High", "$baseUrl/manga/attack-on-titan-junior-high/"),
|
||||
Pair("Harsh Mistress", "$baseUrl/manga/attack-on-titan-harsh-mistress-of-the-city/"),
|
||||
Pair("Anthology", "$baseUrl/manga/attack-on-titan-anthology/"),
|
||||
Pair("Art Book", "$baseUrl/manga/attack-on-titan-exclusive-art-book/"),
|
||||
Pair("Spoof", "$baseUrl/manga/spoof-on-titan/"),
|
||||
Pair("Guidebook", "$baseUrl/manga/attack-on-titan-guidebook-inside-outside/"),
|
||||
Pair("No Regrets Colored", "$baseUrl/manga/attack-on-titan-no-regrets-colored/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun chapterListSelector(): String = "div.w-full div.grid div.col-span-3"
|
||||
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
val urlElement = element.selectFirst("a")!!
|
||||
name = listOfNotNull(
|
||||
urlElement.text(),
|
||||
element.selectFirst("div.text-xs")!!.text().takeUnless { it.isBlank() },
|
||||
).joinToString(" - ") { it.trim() }
|
||||
url = urlElement.attr("abs:href")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readberserkmanga
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadBerserkManga : MangaCatalog("Read Berserk Manga", "https://readberserk.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Berserk", "$baseUrl/manga/berserk/"),
|
||||
Pair("Guidebook", "$baseUrl/manga/berserk-official-guidebook/"),
|
||||
Pair("Colored", "$baseUrl/manga/berserk-colored/"),
|
||||
Pair("Motion Comic", "$baseUrl/manga/berserk-the-motion-comic/"),
|
||||
Pair("Duranki", "$baseUrl/manga/duranki/"),
|
||||
Pair("Gigantomakhia", "$baseUrl/manga/gigantomakhia/"),
|
||||
Pair("Berserk Spoilers & RAW", "$baseUrl/manga/berserk-spoilers-raw/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
description = document.select("div.card-body > p").text()
|
||||
title = document.select("h2 > span").text()
|
||||
thumbnail_url = document.select(".card-img-right").attr("src")
|
||||
}
|
||||
override fun chapterListSelector(): String = "tbody > tr"
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
name = element.select("td:first-child").text()
|
||||
url = element.select("a.btn-primary").attr("abs:href")
|
||||
date_upload = System.currentTimeMillis() // I have no idear how to parse Date stuff
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readblackclovermangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadBlackCloverMangaOnline : MangaCatalog("Read Black Clover Manga Online", "https://ww7.readblackclover.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Black Clover", "$baseUrl/manga/black-clover"),
|
||||
Pair("Black Clover Gainden Quartet Knights", "$baseUrl/manga/black-clover-gaiden-quartet-knights"),
|
||||
Pair("Fan Colored", "$baseUrl/manga/black-clover-colored"),
|
||||
Pair("Hungry Joker", "$baseUrl/manga/hungry-joker"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 41 KiB |
@@ -0,0 +1,17 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readbokunoheroacademiamyheroacademiamanga
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadBokuNoHeroAcademiaMyHeroAcademiaManga : MangaCatalog("Read Boku no Hero Academia My Hero Academia Manga", "https://ww6.readmha.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Boku no Hero Academia", "$baseUrl/manga/boku-no-hero-academia/"),
|
||||
Pair("Vigilante", "$baseUrl/manga/vigilante-boku-no-hero-academia-illegals/"),
|
||||
Pair("Team Up", "$baseUrl/manga/my-hero-academia-team-up-mission/"),
|
||||
Pair("MHA Smash", "$baseUrl/manga/boku-no-hero-academia-smash/"),
|
||||
Pair("MHA: School Brief", "$baseUrl/manga/my-hero-academia-school-briefs/"),
|
||||
Pair("Rising", "$baseUrl/manga/deku-bakugo-rising/"),
|
||||
Pair("Colored", "$baseUrl/manga/boku-no-hero-academia-colored/"),
|
||||
Pair("Oumagadoki Zoo", "$baseUrl/manga/oumagadoki-zoo/"),
|
||||
Pair("Sensei no Bulge", "$baseUrl/manga/sensei-no-bulge/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readchainsawmanmangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadChainsawManMangaOnline : MangaCatalog("Read Chainsaw Man Manga Online", "https://ww1.readchainsawman.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Chainsaw Man", "$baseUrl/manga/chainsaw-man/"),
|
||||
Pair("Fire Punch", "$baseUrl/manga/fire-punch/"),
|
||||
Pair("Nayuta", "$baseUrl/manga/yogen-no-nayuta/"),
|
||||
Pair("Colored", "$baseUrl/manga/chainsaw-man-colored/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readdragonballsuperchoumangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadDragonBallSuperChouMangaOnline : MangaCatalog("Read Dragon Ball Super Chou Manga Online", "https://ww6.dbsmanga.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Dragon Ball Super", "$baseUrl/manga/dragon-ball-super/"),
|
||||
Pair("Dragon Ball", "$baseUrl/manga/dragon-ball/"),
|
||||
Pair("Bardock", "$baseUrl/manga/dragon-ball-episode-of-bardock/"),
|
||||
Pair("Victory Mission", "$baseUrl/manga/dragon-ball-heroes-victory-mission/"),
|
||||
Pair("DB SD", "$baseUrl/manga/dragon-ball-sd/"),
|
||||
Pair("Yamcha Isekai", "$baseUrl/manga/dragon-ball-side-story-yamcha-isekai/"),
|
||||
Pair("DB x OP", "$baseUrl/manga/dragon-ball-x-one-piece/"),
|
||||
Pair("Rebirth of F", "$baseUrl/manga/dragon-ball-z-rebirth-of-f/"),
|
||||
Pair("Dark Realm", "$baseUrl/manga/super-dragon-ball-heroes-dark-demon-realm-mission/"),
|
||||
Pair("Universe Mission", "$baseUrl/manga/super-dragon-ball-heroes-universe-mission/"),
|
||||
Pair("Colored: Saiyan Arc", "$baseUrl/manga/dragon-ball-full-color-saiyan-arc/"),
|
||||
Pair("Colored: Freeza Arc", "$baseUrl/manga/dragon-ball-full-color-freeza-arc/"),
|
||||
Pair("Big Bang Mission!", "$baseUrl/manga/super-dragon-ball-heroes-big-bang-mission/"),
|
||||
Pair("DBS Colored", "$baseUrl/manga/dragon-ball-super-colored/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readdrstonemangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadDrStoneMangaOnline : MangaCatalog("Read Dr. Stone Manga Online", "https://ww3.readdrstone.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Dr. Stone", "$baseUrl/manga/dr-stone/"),
|
||||
Pair("Dr. Stone: Reboot", "$baseUrl/manga/dr-stone-reboot-byakuya/"),
|
||||
Pair("Sun-ken Rock", "$baseUrl/manga/sun-ken-rock/"),
|
||||
Pair("Origin", "$baseUrl/manga/origin/"),
|
||||
Pair("Raqiya", "$baseUrl/manga/raqiya/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readfairytailedenszeromangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadFairyTailEdensZeroMangaOnline : MangaCatalog("Read Fairy Tail & Edens Zero Manga Online", "https://ww4.readfairytail.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Eden's Zero", "$baseUrl/manga/edens-zero/"),
|
||||
Pair("Fairy Tail", "$baseUrl/manga/fairy-tail/"),
|
||||
Pair("FT Zero", "$baseUrl/manga/fairy-tail-zero/"),
|
||||
Pair("FT City Hero", "$baseUrl/manga/fairy-tail-zero/"),
|
||||
Pair("Hero’s", "$baseUrl/manga/heros/"),
|
||||
Pair("FT Happy Adv", "$baseUrl/manga/fairy-tail-happys-grand-adventure/"),
|
||||
Pair("FT 100 Year", "$baseUrl/manga/fairy-tail-100-years-quest/"),
|
||||
Pair("FT Ice Trail", "$baseUrl/manga/fairy-tail-ice-trail/"),
|
||||
Pair("FT x Taizai", "$baseUrl/manga/fairy-tail-x-nanatsu-no-taizai-christmas-special/"),
|
||||
Pair("Parasyte x FT", "$baseUrl/manga/parasyte-x-fairy-tail/"),
|
||||
Pair("Monster Hunter", "$baseUrl/manga/monster-hunter-orage/"),
|
||||
Pair("Rave Master", "$baseUrl/manga/rave-master/"),
|
||||
Pair("Fairy Tail x Rave", "$baseUrl/manga/fairy-tail-x-rave/"),
|
||||
Pair("Fairy Tail Gaiden – Raigo Issen", "$baseUrl/manga/fairy-tail-gaiden-raigo-issen/"),
|
||||
Pair("Fairy Tail Gaiden – Kengami no Souryuu", "$baseUrl/manga/fairy-tail-gaiden-kengami-no-souryuu/"),
|
||||
Pair("Fairy Tail Gaiden – Road Knight", "$baseUrl/manga/fairy-tail-gaiden-road-knight/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readgoblinslayermangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadGoblinSlayerMangaOnline : MangaCatalog("Read Goblin Slayer Manga Online", "https://manga.watchgoblinslayer.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Goblin Slayer", "$baseUrl/manga/goblin-slayer/"),
|
||||
Pair("Side Story: Brand New Day", "$baseUrl/manga/goblin-slayer-side-story-brand-new-day/"),
|
||||
Pair("Side Story: Year One", "$baseUrl/manga/goblin-slayer-side-story-year-one/"),
|
||||
Pair("Side Story: Gaiden 2", "$baseUrl/manga/goblin-slayer-gaiden-2-tsubanari-no-daikatana/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
description = document.select("div.card-body > p").text()
|
||||
title = document.select("h2 > span").text()
|
||||
thumbnail_url = document.select(".card-img-right").attr("src")
|
||||
}
|
||||
override fun chapterListSelector(): String = "tbody > tr"
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
name = element.select("td:first-child").text()
|
||||
url = element.select("a.btn-primary").attr("abs:href")
|
||||
date_upload = System.currentTimeMillis() // I have no idear how to parse Date stuff
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readhaikyuumangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadHaikyuuMangaOnline : MangaCatalog("Read Haikyuu!! Manga Online", "https://ww6.readhaikyuu.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Haikyuu", "$baseUrl/manga/haikyuu/"),
|
||||
Pair("Haikyuu-bu!!", "$baseUrl/manga/haikyuu-bu/"),
|
||||
Pair("Haikyuu! x Nisekoi", "$baseUrl/manga/haikyuu-x-nisekoi/"),
|
||||
Pair("Let’s! Haikyu!?", "$baseUrl/manga/lets-haikyu/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 66 KiB |
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readhunterxhuntermangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadHunterxHunterMangaOnline : MangaCatalog("Read Hunter x Hunter Manga Online", "https://ww2.readhxh.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Hunter x Hunter", "$baseUrl/manga/hunter-x-hunter/"),
|
||||
Pair("Colored", "$baseUrl/manga/hunter-x-hunter-colored/"),
|
||||
Pair("Level E", "$baseUrl/manga/level-e/"),
|
||||
Pair("Yu Yu Hakusho", "$baseUrl/manga/yu-yu-hakusho/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 306 KiB |
@@ -0,0 +1,14 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readjujutsukaisenmangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadJujutsuKaisenMangaOnline : MangaCatalog("Read Jujutsu Kaisen Manga Online", "https://ww1.readjujutsukaisen.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Jujutsu Kaisen", "$baseUrl/manga/jujutsu-kaisen/"),
|
||||
Pair("Jujutsu Kaisen 0", "$baseUrl/manga/jujutsu-kaisen-0/"),
|
||||
Pair("JJK Light Novel", "$baseUrl/manga/jujutsu-kaisen-first-light-novel/"),
|
||||
Pair("No.9", "$baseUrl/manga/no-9/"),
|
||||
Pair("JJK Colored", "$baseUrl/manga/jujutsu-kaisen-colored/"),
|
||||
Pair("Fanbook", "$baseUrl/manga/jujutsu-kaisen-official-fanbook/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 100 KiB |
@@ -0,0 +1,16 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readkaguyasamamangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadKaguyaSamaMangaOnline : MangaCatalog("Read Kaguya-sama Manga Online", "https://ww1.readkaguyasama.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Kaguya-sama: Love is War", "$baseUrl/manga/kaguya-sama-love-is-war/"),
|
||||
Pair("Official Doujin", "$baseUrl/manga/kaguya-wants-to-be-confessed-to-official-doujin/"),
|
||||
Pair("Spin off", "$baseUrl/manga/we-want-to-talk-about-kaguya/"),
|
||||
Pair("Light Novel", "$baseUrl/manga/kaguya-sama-light-novel/"),
|
||||
Pair("Instant Bullet", "$baseUrl/manga/ib-instant-bullet/"),
|
||||
Pair("Oshi no Ko", "$baseUrl/manga/oshi-no-ko/"),
|
||||
Pair("Sayonara Piano Sonata", "$baseUrl/manga/sayonara-piano-sonata/"),
|
||||
Pair("Original Hinatazaka", "$baseUrl/manga/original-hinatazaka/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readkingdommangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadKingdomMangaOnline : MangaCatalog("Read Kingdom Manga Online", "https://ww2.readkingdom.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Kingdom", "$baseUrl/manga/kingdom/"),
|
||||
Pair("Li Mu", "$baseUrl/manga/li-mu/"),
|
||||
Pair("Meng Wu & Chu Zi", "$baseUrl/manga/meng-wu-and-chu-zi-one-shot/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 65 KiB |
@@ -0,0 +1,18 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readnanatsunotaizai7deadlysinsmangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadNanatsuNoTaizai7DeadlySinsMangaOnline : MangaCatalog("Read Nanatsu no Taizai 7 Deadly Sins Manga Online", "https://ww3.read7deadlysins.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Mokushiroku no Yonkishi", "$baseUrl/manga/four-horsemen-of-the-apocalypse/"),
|
||||
Pair("7DS: School", "$baseUrl/manga/mayoe-nanatsu-no-taizai-gakuen/"),
|
||||
Pair("7DS:7 Days", "$baseUrl/manga/nanatsu-no-taizai-seven-days/"),
|
||||
Pair("7DS:Vampires", "$baseUrl/manga/nanatsu-no-taizai-vampires-of-edinburgh/"),
|
||||
Pair("Queen of Altar", "$baseUrl/manga/the-queen-of-the-altar/"),
|
||||
Pair("7DS: 7 Colors", "$baseUrl/manga/nanatsu-no-taizai-nanairo-no-tsuioku/"),
|
||||
Pair("7DS x FT", "$baseUrl/manga/fairy-tail-x-nanatsu-no-taizai-christmas-special/"),
|
||||
Pair("7 Deadly Sins", "$baseUrl/manga/nanatsu-no-taizai/"),
|
||||
Pair("7DS:7 Scars", "$baseUrl/manga/nanatsu-no-taizai-the-seven-scars-which-they-left-behind/"),
|
||||
Pair("Kongou Banchou", "$baseUrl/manga/kongou-banchou/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readnarutoborutosamurai8mangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadNarutoBorutoSamurai8MangaOnline : MangaCatalog("Read Naruto Boruto Samurai 8 Manga Online", "https://ww7.readnaruto.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Boruto", "$baseUrl/manga/boruto-naruto-next-generations/"),
|
||||
Pair("Naruto", "$baseUrl/manga/naruto/"),
|
||||
Pair("Colored", "$baseUrl/manga/naruto-digital-colored-comics/"),
|
||||
Pair("Naruto Gaiden", "$baseUrl/manga/naruto-gaiden-the-seventh-hokage/"),
|
||||
Pair("Samurai 8", "$baseUrl/manga/samurai-8-hachimaru-den/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readnoblessemanhwaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadNoblesseManhwaOnline : MangaCatalog("Read Noblesse Manhwa Online", "https://ww2.readnoblesse.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Noblesse", "$baseUrl/manga/noblesse/"),
|
||||
Pair("Rai’s Adventure", "$baseUrl/manga/noblesse-rais-adventure/"),
|
||||
Pair("NOBLESSE S", "$baseUrl/manga/noblesse-s/"),
|
||||
Pair("Ability", "$baseUrl/manga/ability/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
description = document.select("div.flex > div.py-2 > div:not(:first-child)").text()
|
||||
title = document.select(".container h1").text()
|
||||
thumbnail_url = document.select("img.rounded-full").attr("src")
|
||||
}
|
||||
|
||||
override fun chapterListSelector(): String = "div.w-full > div > div.flex"
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
val name1 = element.select(".flex-col > a:not(.text-xs)").text()
|
||||
val name2 = element.select(".text-xs:not(a)").text()
|
||||
if (name2 == "") {
|
||||
name = name1
|
||||
} else {
|
||||
name = "$name1 - $name2"
|
||||
}
|
||||
url = element.select(".flex-col > a:not(.text-xs)").attr("abs:href")
|
||||
date_upload = System.currentTimeMillis()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readonepiecemangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadOnePieceMangaOnline : MangaCatalog("Read One Piece Manga Online", "https://ww8.readonepiece.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("One Piece", "$baseUrl/manga/one-piece/"),
|
||||
Pair("Colored", "$baseUrl/manga/one-piece-digital-colored-comics/"),
|
||||
Pair("Soma x Sanji", "$baseUrl/manga/shokugeki-no-sanji-one-shot/"),
|
||||
Pair("OP x Toriko", "$baseUrl/manga/one-piece-x-toriko/"),
|
||||
Pair("Party", "$baseUrl/manga/one-piece-party/"),
|
||||
Pair("DB x OP", "$baseUrl/manga/dragon-ball-x-one-piece/"),
|
||||
Pair("Wanted!", "$baseUrl/manga/wanted-one-piece/"),
|
||||
Pair("Ace's Story", "$baseUrl/manga/one-piece-ace-s-story/"),
|
||||
Pair("Omake", "$baseUrl/manga/one-piece-omake/"),
|
||||
Pair("Vivre Card", "$baseUrl/manga/vivre-card-databook/"),
|
||||
Pair("Databook", "$baseUrl/manga/one-piece-databook/"),
|
||||
Pair("Ace's Story Manga", "$baseUrl/manga/one-piece-ace-story-manga/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 165 KiB |
@@ -0,0 +1,30 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readonepunchmanmangaonlinetwo
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadOnePunchManMangaOnlineTwo : MangaCatalog("Read One-Punch Man Manga Online", "https://ww3.readopm.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("One Punch Man", "$baseUrl/manga/one-punch-man/"),
|
||||
Pair("Onepunch-Man (ONE)", "$baseUrl/manga/onepunch-man-one/"),
|
||||
Pair("Colored", "$baseUrl/manga/one-punch-man-colored/"),
|
||||
Pair("Mob Psycho 100", "$baseUrl/manga/mob-psycho-100/"),
|
||||
Pair("Reigen", "$baseUrl/manga/reigen/"),
|
||||
Pair("Eyeshield 21", "$baseUrl/manga/eyeshield-21/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
description = document.select("div.card-body > p").text()
|
||||
title = document.select("h2 > span").text().substringAfter("Manga: ").trim()
|
||||
thumbnail_url = document.select(".card-img-right").attr("src")
|
||||
}
|
||||
override fun chapterListSelector(): String = "tbody > tr"
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
name = element.select("td:first-child").text()
|
||||
url = element.select("a").attr("abs:href")
|
||||
date_upload = System.currentTimeMillis() // I have no idear how to parse Date stuff
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 486 KiB |
@@ -0,0 +1,10 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readsololevelingmangamanhwaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadSoloLevelingMangaManhwaOnline : MangaCatalog("Read Solo Leveling Manga Manhwa Online", "https://readsololeveling.org", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Solo Leveling", "$baseUrl/manga/solo-leveling/"),
|
||||
Pair("Light Novel", "$baseUrl/manga/solo-leveling-novel/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readswordartonlinemangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ReadSwordArtOnlineMangaOnline : MangaCatalog("Read Sword Art Online Manga Online", "https://manga.watchsao.tv", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("SAO", "$baseUrl/manga/sword-art-online/"),
|
||||
Pair("Alicization", "$baseUrl/manga/sword-art-online-project-alicization/"),
|
||||
Pair("Progressive", "$baseUrl/manga/sword-art-online-progressive/"),
|
||||
Pair("Progressive 2", "$baseUrl/manga/sword-art-online-progressive-barcarolle-of-froth/"),
|
||||
Pair("Fairy Dance", "$baseUrl/manga/sword-art-online-fairy-dance/"),
|
||||
Pair("GGO", "$baseUrl/manga/sword-art-online-alternative-gun-gale-online/"),
|
||||
Pair("4-koma", "$baseUrl/manga/sword-art-online-4-koma/"),
|
||||
Pair("Aincrad", "$baseUrl/manga/sword-art-online-aincrad-night-of-kirito/"),
|
||||
Pair("Girls Ops", "$baseUrl/manga/sword-art-online-girls-ops/"),
|
||||
Pair("Anthology", "$baseUrl/manga/sword-art-online-comic-anthology/"),
|
||||
Pair("Lycoris", "$baseUrl/manga/sword-art-online-lycoris/"),
|
||||
Pair("Hollow Realization", "$baseUrl/manga/sword-art-online-hollow-realization/"),
|
||||
Pair("Ordinal Scale", "$baseUrl/manga/sword-art-online-ordinal-scale/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
|
||||
description = document.select("div.card-body > p").text()
|
||||
title = document.select("h2 > span").text()
|
||||
thumbnail_url = document.select(".card-img-right").attr("src")
|
||||
}
|
||||
override fun chapterListSelector(): String = "tbody > tr"
|
||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||
name = element.select("td:first-child").text()
|
||||
url = element.select("a.btn-primary").attr("abs:href")
|
||||
date_upload = System.currentTimeMillis() // I have no idear how to parse Date stuff
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,14 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readthepromisedneverlandmangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadThePromisedNeverlandMangaOnline : MangaCatalog("Read The Promised Neverland Manga Online", "https://ww3.readneverland.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("The Promised Neverland", "$baseUrl/manga/the-promised-neverland/"),
|
||||
Pair("Parody", "$baseUrl/manga/the-parodied-jokeland/"),
|
||||
Pair("Novels", "$baseUrl/manga/novels/"),
|
||||
Pair("Poppy no Negai", "$baseUrl/manga/poppy-no-negai/"),
|
||||
Pair("Author's One shot", "$baseUrl/manga/shinrei-shashinshi-kouno-saburou/"),
|
||||
Pair("Ashley Goeth", "$baseUrl/manga/ashley-goeth-no-yukue/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 364 KiB |
@@ -0,0 +1,15 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readtokyoghoulretokyoghoulmangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadTokyoGhoulReTokyoGhoulMangaOnline : MangaCatalog("Read Tokyo Ghoul Re & Tokyo Ghoul Manga Online", "https://ww8.tokyoghoulre.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Tokyo Ghoul", "$baseUrl/manga/tokyo-ghoul/"),
|
||||
Pair("Tokyo Ghoul:re", "$baseUrl/manga/tokyo-ghoulre/"),
|
||||
Pair("TG Jack", "$baseUrl/manga/tokyo-ghoul-jack/"),
|
||||
Pair("TGre Colored", "$baseUrl/manga/tokyo-ghoulre-colored/"),
|
||||
Pair("Gorilla", "$baseUrl/manga/this-gorilla-will-die-in-1-day/"),
|
||||
Pair("ArtBook", "$baseUrl/manga/tokyo-ghoul-zakki/"),
|
||||
Pair("TG Light Novel", "$baseUrl/manga/tokyo-ghoul-re-light-novels/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 228 KiB |
@@ -0,0 +1,13 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readtowerofgodmanhwamangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadTowerOfGodManhwaMangaOnline : MangaCatalog("Read Tower of God Manhwa Manga Online", "https://ww1.readtowerofgod.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Season 1", "$baseUrl/manga/tower-of-god-season-1/"),
|
||||
Pair("Season 2", "$baseUrl/manga/tower-of-god-season-2/"),
|
||||
Pair("Season 3", "$baseUrl/manga/tower-of-god-season-3/"),
|
||||
Pair("RAW", "$baseUrl/manga/tower-of-god-spoilers-raw/"),
|
||||
Pair("SIU Blog Postd", "$baseUrl/manga/siu-blog-post-translation/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package eu.kanade.tachiyomi.extension.en.readvinlandsagamangaonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangacatalog.MangaCatalog
|
||||
|
||||
class ReadVinlandSagaMangaOnline : MangaCatalog("Read Vinland Saga Manga Online", "https://ww1.readvinlandsaga.com", "en") {
|
||||
override val sourceList = listOf(
|
||||
Pair("Vinland Saga", "$baseUrl/manga/vinland-saga/"),
|
||||
Pair("Fan Colored", "$baseUrl/manga/vinland-saga-colored/"),
|
||||
Pair("Planetes", "$baseUrl/manga/planetes/"),
|
||||
).sortedBy { it.first }.distinctBy { it.second }
|
||||
}
|
||||