WP Comics - add xoxcomics (#2683)
This commit is contained in:
parent
a37ad95ff0
commit
a5a1405186
@ -5,7 +5,7 @@ ext {
|
||||
appName = 'Tachiyomi: WP-Comics'
|
||||
pkgNameSuffix = 'all.wpcomics'
|
||||
extClass = '.WPComicsFactory'
|
||||
extVersionCode = 2
|
||||
extVersionCode = 3
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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")
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user