MangAdventure: update for extensions-lib 1.4 (#15333)

This commit is contained in:
ObserverOfTime 2023-02-12 20:27:41 +02:00 committed by GitHub
parent 1cddc25554
commit a3df32a6b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 20 deletions

View File

@ -1,10 +1,8 @@
package eu.kanade.tachiyomi.multisrc.mangadventure package eu.kanade.tachiyomi.multisrc.mangadventure
import android.net.Uri
import android.os.Build.VERSION import android.os.Build.VERSION
import eu.kanade.tachiyomi.AppInfo import eu.kanade.tachiyomi.AppInfo
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
@ -12,6 +10,7 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromJsonElement import kotlinx.serialization.json.decodeFromJsonElement
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Response import okhttp3.Response
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import eu.kanade.tachiyomi.source.model.Page as SPage import eu.kanade.tachiyomi.source.model.Page as SPage
@ -61,19 +60,22 @@ abstract class MangAdventure(
GET("$apiUrl/series?page=$page&sort=-views", headers) GET("$apiUrl/series?page=$page&sort=-views", headers)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = override fun searchMangaRequest(page: Int, query: String, filters: FilterList) =
Uri.parse(apiUrl).buildUpon().appendEncodedPath("series").run { apiUrl.toHttpUrl().newBuilder().addEncodedPathSegment("series").run {
if (query.startsWith(SLUG_QUERY)) { if (query.startsWith(SLUG_QUERY)) {
appendQueryParameter("slug", query.substring(SLUG_QUERY.length)) addQueryParameter("slug", query.substring(SLUG_QUERY.length))
} else { } else {
appendQueryParameter("page", page.toString()) addQueryParameter("page", page.toString())
appendQueryParameter("title", query) addQueryParameter("title", query)
filters.filterIsInstance<UriFilter>().forEach { filters.filterIsInstance<UriFilter>().forEach {
appendQueryParameter(it.param, it.toString()) addQueryParameter(it.param, it.toString())
} }
} }
GET(toString(), headers) GET(build(), headers)
} }
override fun mangaDetailsRequest(manga: SManga) =
GET("$apiUrl/series/${manga.url}", headers)
override fun chapterListRequest(manga: SManga) = override fun chapterListRequest(manga: SManga) =
GET("$apiUrl/series/${manga.url}/chapters?date_format=timestamp", headers) GET("$apiUrl/series/${manga.url}/chapters?date_format=timestamp", headers)
@ -113,20 +115,13 @@ abstract class MangAdventure(
SPage(page.number, page.url, page.image) SPage(page.number, page.url, page.image)
} }
// Return the real URL for "Open in browser"
override fun mangaDetailsRequest(manga: SManga) =
GET("$baseUrl/reader/${manga.url}", headers)
// Workaround to allow "Open in browser" to use the real URL
override fun fetchMangaDetails(manga: SManga) =
client.newCall(GET("$apiUrl/series/${manga.url}", headers))
.asObservableSuccess().map {
mangaDetailsParse(it).apply { initialized = true }
}!!
override fun imageUrlParse(response: Response) = override fun imageUrlParse(response: Response) =
throw UnsupportedOperationException("Not used!") throw UnsupportedOperationException("Not used!")
override fun getMangaUrl(manga: SManga) = "$baseUrl/reader/${manga.url}"
override fun getChapterUrl(chapter: SChapter) = "$apiUrl/chapters/${chapter.url}/read"
override fun getFilterList() = override fun getFilterList() =
FilterList( FilterList(
Author(), Author(),

View File

@ -9,7 +9,7 @@ class MangAdventureGenerator : ThemeSourceGenerator {
override val themeClass = "MangAdventure" override val themeClass = "MangAdventure"
override val baseVersionCode = 10 override val baseVersionCode = 11
override val sources = listOf( override val sources = listOf(
SingleLang("Arc-Relight", "https://arc-relight.com", "en", className = "ArcRelight"), SingleLang("Arc-Relight", "https://arc-relight.com", "en", className = "ArcRelight"),