diff --git a/multisrc/overrides/wpmangareader/legionscan/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..8f6903b25 Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..bb25ada87 Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..40ab1c2e1 Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..9568ebd60 Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..e15f210a3 Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/res/web_hi_res_512.png b/multisrc/overrides/wpmangareader/legionscan/res/web_hi_res_512.png new file mode 100644 index 000000000..9518e886f Binary files /dev/null and b/multisrc/overrides/wpmangareader/legionscan/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/wpmangareader/legionscan/src/LegionScan.kt b/multisrc/overrides/wpmangareader/legionscan/src/LegionScan.kt new file mode 100644 index 000000000..442383486 --- /dev/null +++ b/multisrc/overrides/wpmangareader/legionscan/src/LegionScan.kt @@ -0,0 +1,11 @@ +package eu.kanade.tachiyomi.extension.es.legionscan + +import eu.kanade.tachiyomi.multisrc.wpmangareader.WPMangaReader +import java.text.SimpleDateFormat +import java.util.Locale + +class LegionScan : WPMangaReader("Legion Scan", "https://legionscans.com", "es", dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("es"))) { + + override val seriesTypeSelector = ".imptdt:contains(Tipo) :last-child" + override val seriesStatusSelector = ".tsinfo .imptdt:contains(Estado) i" +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReader.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReader.kt index 91cf38db5..49d648217 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReader.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReader.kt @@ -157,21 +157,13 @@ abstract class WPMangaReader( // manga details override fun mangaDetailsParse(document: Document) = SManga.create().apply { - author = document.select(".listinfo li:contains(Author), .tsinfo .imptdt:nth-child(4) i, .infotable tr:contains(author) td:last-child") - .firstOrNull()?.ownText() - - artist = document.select(".infotable tr:contains(artist) td:last-child, .tsinfo .imptdt:contains(artist) i") - .firstOrNull()?.ownText() - - genre = document.select("div.gnr a, .mgen a, .seriestugenre a").joinToString { it.text() } - status = parseStatus( - document.select("div.listinfo li:contains(Status), .tsinfo .imptdt:contains(status), .tsinfo .imptdt:contains(الحالة), .infotable tr:contains(status) td") - .text() - ) - - title = document.selectFirst("h1.entry-title").text() - thumbnail_url = document.select(".infomanga > div[itemprop=image] img, .thumb img").attr("abs:src") - description = document.select(".desc, .entry-content[itemprop=description]").joinToString("\n") { it.text() } + author = document.select(seriesAuthorSelector).firstOrNull()?.ownText() + artist = document.select(seriesArtistSelector).firstOrNull()?.ownText() + genre = document.select(seriesGenreSelector).joinToString { it.text() } + status = parseStatus(document.select(seriesStatusSelector).text()) + title = document.selectFirst(seriesTitleSelector).text() + thumbnail_url = document.select(seriesThumbnailSelector).attr("abs:src") + description = document.select(seriesDescriptionSelector).joinToString("\n") { it.text() } // add series type(manga/manhwa/manhua/other) thinggy to genre document.select(seriesTypeSelector).firstOrNull()?.ownText()?.let { @@ -191,6 +183,13 @@ abstract class WPMangaReader( } } + open val seriesAuthorSelector = ".listinfo li:contains(Author), .tsinfo .imptdt:nth-child(4) i, .infotable tr:contains(author) td:last-child" + open val seriesArtistSelector = ".infotable tr:contains(artist) td:last-child, .tsinfo .imptdt:contains(artist) i" + open val seriesGenreSelector = "div.gnr a, .mgen a, .seriestugenre a" + open val seriesStatusSelector = "div.listinfo li:contains(Status), .tsinfo .imptdt:contains(status), .tsinfo .imptdt:contains(الحالة), .infotable tr:contains(status) td" + open val seriesTitleSelector = "h1.entry-title" + open val seriesThumbnailSelector = ".infomanga > div[itemprop=image] img, .thumb img" + open val seriesDescriptionSelector = ".desc, .entry-content[itemprop=description]" open val seriesTypeSelector = "span:contains(Type) a, .imptdt:contains(Type) :last-child, a[href*=type\\=], .infotable tr:contains(Type) td:last-child" open val altNameSelector = ".alternative, .seriestualt" open val altName = "Alternative Name" + ": " diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt index db0fa2c96..638d65a14 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt @@ -14,47 +14,48 @@ class WPMangaReaderGenerator : ThemeSourceGenerator { override val sources = listOf( MultiLang("Flame Scans", "https://flamescans.org", listOf("ar", "en"), className = "FlameScansFactory", pkgName = "flamescans", overrideVersionCode = 1), - SingleLang("Anitation Arts", "https://anitationarts.org", "en", overrideVersionCode = 1), + SingleLang("Ace Scans", "https://acescans.xyz", "en", isNsfw = true, overrideVersionCode = 1), SingleLang("Alpha Scans", "https://alpha-scans.org", "en", overrideVersionCode = 1), + SingleLang("Anitation Arts", "https://anitationarts.org", "en", overrideVersionCode = 1), + SingleLang("Arcane scan", "https://arcanescan.fr", "fr"), + SingleLang("Azure Scans", "https://azuremanga.com", "en", overrideVersionCode = 1), SingleLang("BeastScans", "https://beastscans.com", "en"), - SingleLang("iiMANGA", "https://aresmanga.com", "ar", overrideVersionCode = 1), - SingleLang("Magus Manga", "https://magusmanga.com", "ar"), - SingleLang("Kiryuu", "https://kiryuu.id", "id", overrideVersionCode = 6), - SingleLang("KomikMama", "https://komikmama.net", "id"), - SingleLang("MangaKita", "https://mangakita.net", "id", overrideVersionCode = 1), - SingleLang("Gabut Scans", "https://gabutscans.com", "id"), - SingleLang("Graze Scans", "https://grazescans.com", "en", overrideVersionCode = 2), - SingleLang("Mangás Chan", "https://mangaschan.com", "pt-BR", className = "MangasChan"), - SingleLang("Martial Manga", "https://martialmanga.com", "es"), - SingleLang("Mode Scanlator", "https://modescanlator.com", "pt-BR", overrideVersionCode = 7), - SingleLang("Ngomik", "https://ngomik.net", "id", overrideVersionCode = 1), - SingleLang("MangKomik", "https://mangkomik.com", "id"), - SingleLang("Sekaikomik", "https://www.sekaikomik.site", "id", isNsfw = true, overrideVersionCode = 8), - SingleLang("Sekaikomik", "https://www.sekaikomik.live", "id", isNsfw = true, overrideVersionCode = 9), SingleLang("Davey Scans", "https://daveyscans.com", "id", overrideVersionCode = 1), + SingleLang("Franxx Mangás", "https://franxxmangas.net", "pt-BR", className = "FranxxMangas", isNsfw = true), + SingleLang("Fusion Scanlation", "https://fusionscanlation.com", "es", className = "FusionScanlation", overrideVersionCode = 2), + SingleLang("Gabut Scans", "https://gabutscans.com", "id"), + SingleLang("Gecenin Lordu", "https://geceninlordu.com", "tr", overrideVersionCode = 1), + SingleLang("Graze Scans", "https://grazescans.com", "en", overrideVersionCode = 2), + SingleLang("Kiryuu", "https://kiryuu.id", "id", overrideVersionCode = 6), + SingleLang("Komik Lab", "https://komiklab.com", "id"), + SingleLang("KomikMama", "https://komikmama.net", "id"), + SingleLang("Legion Scan", "https://legionscans.com", "es"), + SingleLang("Magus Manga", "https://magusmanga.com", "ar"), + SingleLang("MangKomik", "https://mangkomik.com", "id"), + SingleLang("MangaKita", "https://mangakita.net", "id", overrideVersionCode = 1), SingleLang("Mangasusu", "https://mangasusu.co.in", "id", isNsfw = true, overrideVersionCode = 1), + SingleLang("Mangás Chan", "https://mangaschan.com", "pt-BR", className = "MangasChan"), SingleLang("Manhua Raw", "https://manhuaraw.com", "en"), SingleLang("ManhwaIndo", "https://manhwaindo.id", "id", isNsfw = true), - SingleLang("TurkToon", "https://turktoon.com", "tr"), - SingleLang("Gecenin Lordu", "https://geceninlordu.com", "tr", overrideVersionCode = 1), - SingleLang("PMScans", "http://www.rackusreader.org", "en", overrideVersionCode = 2), - SingleLang("Realm Scans", "https://realmscans.com", "en", overrideVersionCode = 3), - SingleLang("Skull Scans", "https://www.skullscans.com", "en", overrideVersionCode = 1), - SingleLang("Shooting Star Scans", "https://shootingstarscans.com", "en", overrideVersionCode = 3), - SingleLang("Azure Scans", "https://azuremanga.com", "en", overrideVersionCode = 1), - SingleLang("Patatescans", "https://patatescans.com", "fr", isNsfw = true, overrideVersionCode = 2), - SingleLang("Fusion Scanlation", "https://fusionscanlation.com", "es", className = "FusionScanlation", overrideVersionCode = 2), - SingleLang("Ace Scans", "https://acescans.xyz", "en", isNsfw = true, overrideVersionCode = 1), - SingleLang("Silence Scan", "https://silencescan.com.br", "pt-BR", isNsfw = true, overrideVersionCode = 5), - SingleLang("YANP Fansub", "https://melhorcasal.com", "pt-BR", isNsfw = true, overrideVersionCode = 1), - SingleLang("World Romance Translation", "https://wrt.my.id", "id", overrideVersionCode = 7), - SingleLang("Ozul Scans", "https://ozulscans.com", "ar"), - SingleLang("Tsundoku Traduções", "https://tsundoku.com.br", "pt-BR", className = "TsundokuTraducoes", overrideVersionCode = 9), - SingleLang("Komik Lab", "https://komiklab.com", "id"), - SingleLang("Arcane scan", "https://arcanescan.fr", "fr"), - SingleLang("Franxx Mangás", "https://franxxmangas.net", "pt-BR", className = "FranxxMangas", isNsfw = true), - SingleLang("Origami Orpheans", "https://origami-orpheans.com.br", "pt-BR", overrideVersionCode = 9), + SingleLang("Martial Manga", "https://martialmanga.com", "es"), SingleLang("Miau Scan", "https://miauscan.com", "es"), + SingleLang("Mode Scanlator", "https://modescanlator.com", "pt-BR", overrideVersionCode = 7), + SingleLang("Ngomik", "https://ngomik.net", "id", overrideVersionCode = 1), + SingleLang("Origami Orpheans", "https://origami-orpheans.com.br", "pt-BR", overrideVersionCode = 9), + SingleLang("Ozul Scans", "https://ozulscans.com", "ar"), + SingleLang("PMScans", "http://www.rackusreader.org", "en", overrideVersionCode = 2), + SingleLang("Patatescans", "https://patatescans.com", "fr", isNsfw = true, overrideVersionCode = 2), + SingleLang("Realm Scans", "https://realmscans.com", "en", overrideVersionCode = 3), + SingleLang("Sekaikomik", "https://www.sekaikomik.live", "id", isNsfw = true, overrideVersionCode = 9), + SingleLang("Sekaikomik", "https://www.sekaikomik.site", "id", isNsfw = true, overrideVersionCode = 8), + SingleLang("Shooting Star Scans", "https://shootingstarscans.com", "en", overrideVersionCode = 3), + SingleLang("Silence Scan", "https://silencescan.com.br", "pt-BR", isNsfw = true, overrideVersionCode = 5), + SingleLang("Skull Scans", "https://www.skullscans.com", "en", overrideVersionCode = 1), + SingleLang("Tsundoku Traduções", "https://tsundoku.com.br", "pt-BR", className = "TsundokuTraducoes", overrideVersionCode = 9), + SingleLang("TurkToon", "https://turktoon.com", "tr"), + SingleLang("World Romance Translation", "https://wrt.my.id", "id", overrideVersionCode = 7), + SingleLang("YANP Fansub", "https://melhorcasal.com", "pt-BR", isNsfw = true, overrideVersionCode = 1), + SingleLang("iiMANGA", "https://aresmanga.com", "ar", overrideVersionCode = 1), ) companion object {