Various bug fixes.
This commit is contained in:
parent
cce1f2c20d
commit
5c942460f9
@ -82,7 +82,7 @@ class PreferencesHelper(val context: Context) {
|
|||||||
|
|
||||||
fun catalogueAsList() = rxPrefs.getBoolean(keys.catalogueAsList, false)
|
fun catalogueAsList() = rxPrefs.getBoolean(keys.catalogueAsList, false)
|
||||||
|
|
||||||
fun enabledLanguages() = rxPrefs.getStringSet(keys.enabledLanguages, setOf("en"))
|
fun enabledLanguages() = rxPrefs.getStringSet(keys.enabledLanguages, setOf("all"))
|
||||||
|
|
||||||
fun sourceUsername(source: Source) = prefs.getString(keys.sourceUsername(source.id), "")
|
fun sourceUsername(source: Source) = prefs.getString(keys.sourceUsername(source.id), "")
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import uy.kohesive.injekt.injectLazy
|
|||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import exh.ui.login.LoginActivity
|
import exh.ui.login.LoginActivity
|
||||||
|
import timber.log.Timber
|
||||||
|
|
||||||
class EHentai(override val id: Int,
|
class EHentai(override val id: Int,
|
||||||
val exh: Boolean,
|
val exh: Boolean,
|
||||||
@ -100,19 +101,21 @@ class EHentai(override val id: Int,
|
|||||||
}))
|
}))
|
||||||
|
|
||||||
override fun fetchPageListFromNetwork(chapter: Chapter)
|
override fun fetchPageListFromNetwork(chapter: Chapter)
|
||||||
= fetchChapterPage(chapter, 0).map {
|
= fetchChapterPage(chapter, "$baseUrl${chapter.url}").map {
|
||||||
it.mapIndexed { i, s ->
|
it.mapIndexed { i, s ->
|
||||||
Page(i, s)
|
Page(i, s)
|
||||||
}
|
}
|
||||||
}!!
|
}!!
|
||||||
|
|
||||||
private fun fetchChapterPage(chapter: Chapter, id: Int): Observable<List<String>> {
|
private fun fetchChapterPage(chapter: Chapter, np: String,
|
||||||
val urls = mutableListOf<String>()
|
pastUrls: List<String> = emptyList()): Observable<List<String>> {
|
||||||
return chapterPageCall(chapter, id).flatMap {
|
val urls = ArrayList(pastUrls)
|
||||||
|
return chapterPageCall(chapter, np).flatMap {
|
||||||
val jsoup = it.asJsoup()
|
val jsoup = it.asJsoup()
|
||||||
urls += parseChapterPage(jsoup)
|
urls += parseChapterPage(jsoup)
|
||||||
if(nextPageUrl(jsoup) != null) {
|
val nextUrl = nextPageUrl(jsoup)
|
||||||
fetchChapterPage(chapter, id + 1)
|
if(nextUrl != null) {
|
||||||
|
fetchChapterPage(chapter, nextUrl, urls)
|
||||||
} else {
|
} else {
|
||||||
Observable.just(urls)
|
Observable.just(urls)
|
||||||
}
|
}
|
||||||
@ -124,8 +127,8 @@ class EHentai(override val id: Int,
|
|||||||
Pair(it.child(0).attr("alt").toInt(), it.attr("href"))
|
Pair(it.child(0).attr("alt").toInt(), it.attr("href"))
|
||||||
}.sortedBy(Pair<Int, String>::first).map { it.second }
|
}.sortedBy(Pair<Int, String>::first).map { it.second }
|
||||||
}
|
}
|
||||||
private fun chapterPageCall(chapter: Chapter, pn: Int) = client.newCall(chapterPageRequest(chapter, pn)).asObservableSuccess()
|
private fun chapterPageCall(chapter: Chapter, np: String) = client.newCall(chapterPageRequest(chapter, np)).asObservableSuccess()
|
||||||
private fun chapterPageRequest(chapter: Chapter, pn: Int) = GET("$baseUrl${chapter.url}?p=$pn", headers)
|
private fun chapterPageRequest(chapter: Chapter, np: String) = GET(np, headers)
|
||||||
|
|
||||||
private fun nextPageUrl(element: Element): String?
|
private fun nextPageUrl(element: Element): String?
|
||||||
= element.select("a[onclick=return false]").last()?.let {
|
= element.select("a[onclick=return false]").last()?.let {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<item
|
<item
|
||||||
android:id="@+id/nav_drawer_catalogues"
|
android:id="@+id/nav_drawer_catalogues"
|
||||||
android:icon="@drawable/ic_explore_black_24dp"
|
android:icon="@drawable/ic_explore_black_24dp"
|
||||||
android:title="@string/label_catalogues" />
|
android:title="Galleries" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/nav_drawer_latest_updates"
|
android:id="@+id/nav_drawer_latest_updates"
|
||||||
android:icon="@drawable/ic_watch_later_black_24dp"
|
android:icon="@drawable/ic_watch_later_black_24dp"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user