WP Comics - add xoxcomics (#2683)

This commit is contained in:
Mike 2020-04-16 23:18:32 -04:00 committed by GitHub
parent a37ad95ff0
commit a5a1405186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 6 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: WP-Comics'
pkgNameSuffix = 'all.wpcomics'
extClass = '.WPComicsFactory'
extVersionCode = 2
extVersionCode = 3
libVersion = '1.2'
}

View File

@ -44,7 +44,7 @@ abstract class WPComics(
}
}
override fun popularMangaNextPageSelector() = "a.next-page"
override fun popularMangaNextPageSelector() = "a.next-page, a[rel=next]"
// Latest
@ -137,10 +137,19 @@ abstract class WPComics(
// sources sometimes have an image element with an empty attr that isn't really an image
private fun imageOrNull(element: Element): String? {
fun Element.hasValidAttr(attr: String): Boolean {
val regex = Regex("""https?://.*""", RegexOption.IGNORE_CASE)
return when {
this.attr(attr).isNullOrBlank() -> false
this.attr("abs:$attr").matches(regex) -> true
else -> false
}
}
return when {
element.attr("data-original").contains(Regex("""\.(jpg|png)""", RegexOption.IGNORE_CASE)) -> element.attr("abs:data-original")
element.attr("data-src").contains(Regex("""\.(jpg|png)""", RegexOption.IGNORE_CASE)) -> element.attr("abs:data-src")
element.attr("src").contains(Regex("""\.(jpg|png)""", RegexOption.IGNORE_CASE)) -> element.attr("abs:src")
element.hasValidAttr("data-original") -> element.attr("abs:data-original")
element.hasValidAttr("data-src") -> element.attr("abs:data-src")
element.hasValidAttr("src") -> element.attr("abs:src")
else -> null
}
}

View File

@ -4,6 +4,7 @@ import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.Request
import org.jsoup.nodes.Element
@ -14,7 +15,8 @@ class WPComicsFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
ManhuaPlus(),
ManhuaES(),
MangaSum()
MangaSum(),
XoxoComics()
)
}
@ -53,3 +55,21 @@ private class MangaSum : WPComics("MangaSum", "https://mangasum.com", "en", Simp
* and MM/dd/yy; see about getting all 3 working (currently at 2/3)
*/
}
private class XoxoComics : WPComics("XOXO Comics", "https://xoxocomics.com", "en", SimpleDateFormat("MM/dd/yy", Locale.US), null) {
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/comic-updates?page=$page", headers)
override fun latestUpdatesSelector() = "li.row"
override fun latestUpdatesFromElement(element: Element): SManga {
return SManga.create().apply {
element.select("h3 a").let {
title = it.text()
setUrlWithoutDomain(it.attr("href"))
}
thumbnail_url = element.select("img").attr("data-original")
}
}
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
return GET("$baseUrl/search?keyword=$query&page=$page", headers)
}
override fun pageListRequest(chapter: SChapter): Request = GET(baseUrl + "${chapter.url}/all")
}