Dynasty Doujins fixes (#1950)

Dynasty Doujins fixes
This commit is contained in:
Mike 2020-01-01 09:55:06 -05:00 committed by arkon
parent cfb03b5fd8
commit e1abb544e4
3 changed files with 51 additions and 10 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Dynasty' appName = 'Tachiyomi: Dynasty'
pkgNameSuffix = 'en.dynasty' pkgNameSuffix = 'en.dynasty'
extClass = '.DynastyFactory' extClass = '.DynastyFactory'
extVersionCode = 9 extVersionCode = 10
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -2,9 +2,14 @@ package eu.kanade.tachiyomi.extension.en.dynasty
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.FilterList 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.model.SManga
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Request import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class DynastyDoujins : DynastyScans() { class DynastyDoujins : DynastyScans() {
@ -12,20 +17,60 @@ class DynastyDoujins : DynastyScans() {
override fun popularMangaInitialUrl() = "$baseUrl/doujins?view=cover" override fun popularMangaInitialUrl() = "$baseUrl/doujins?view=cover"
override fun popularMangaFromElement(element: Element): SManga {
return super.popularMangaFromElement(element).apply {
thumbnail_url = element.select("img").attr("abs:src").let {
if (it.contains("cover_missing")) {
null
} else {
it
}
}
}
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
return GET("$baseUrl/search?q=$query&classes%5B%5D=Doujin&sort=&page=$page", headers) return GET("$baseUrl/search?q=$query&classes%5B%5D=Doujin&sort=&page=$page", headers)
} }
override fun mangaDetailsParse(document: Document): SManga { override fun mangaDetailsParse(document: Document): SManga {
val manga = SManga.create() val manga = SManga.create().apply {
super.mangaDetailsParse(document) thumbnail_url = document.select("a.thumbnail img").firstOrNull()?.attr("abs:src")
parseThumbnail(manga) ?.replace("/thumb/", "/medium/")
manga.author = ".." }
manga.status = SManga.UNKNOWN
parseGenres(document, manga) parseGenres(document, manga)
return manga return manga
} }
override fun chapterListSelector() = "div.span9 > dl.chapter-list > dd" override fun chapterListSelector() = "div.span9 > dl.chapter-list > dd"
override fun chapterListParse(response: Response): List<SChapter> {
val document = response.asJsoup()
val chapters = document.select(chapterListSelector()).map { chapterFromElement(it) }.toMutableList()
document.select("a.thumbnail img").let { images ->
if (images.isNotEmpty()) chapters.add(SChapter.create().apply {
name = "Images"
setUrlWithoutDomain(document.location() + "/images")
})
}
return chapters
}
override fun pageListParse(document: Document): List<Page> {
return if (document.location().endsWith("/images")) {
document.select("a.thumbnail").mapIndexed { i, element ->
Page(i, element.attr("abs:href"))
}
} else {
super.pageListParse(document)
}
}
override fun imageUrlParse(document: Document): String {
return document.select("div.image img").attr("abs:src")
}
} }

View File

@ -74,10 +74,6 @@ abstract class DynastyScans : ParsedHttpSource() {
.select("div#main").filter { it.hasText() }.first().childNodes() .select("div#main").filter { it.hasText() }.first().childNodes()
} }
protected fun parseThumbnail(manga: SManga) {
if (_valid.isManga) manga.thumbnail_url = baseUrl + imgList[_valid.pos].substringBefore('?')
}
protected fun parseHeader(document: Document, manga: SManga): Boolean { protected fun parseHeader(document: Document, manga: SManga): Boolean {
val elements = document.select("div.tags > h2.tag-title").first().getElementsByTag("a") val elements = document.select("div.tags > h2.tag-title").first().getElementsByTag("a")
if (elements.isEmpty()) { if (elements.isEmpty()) {