Lunar Scans: remove redundant overrides (#8649)

Removes `ts_reader.run(...)` logic, might fit better in parent class.
Search now allows special characters otherwise not encoded.
This commit is contained in:
Vetle Ledaal 2025-04-27 04:08:28 +02:00 committed by Draff
parent c9d562c63a
commit 0bf5c08f50
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 1 additions and 35 deletions

View File

@ -3,7 +3,7 @@ ext {
extClass = '.LunarScans' extClass = '.LunarScans'
themePkg = 'mangathemesia' themePkg = 'mangathemesia'
baseUrl = 'https://lunarscan.org' baseUrl = 'https://lunarscan.org'
overrideVersionCode = 3 overrideVersionCode = 4
isNsfw = true isNsfw = true
} }

View File

@ -6,17 +6,11 @@ import eu.kanade.tachiyomi.lib.randomua.getPrefCustomUA
import eu.kanade.tachiyomi.lib.randomua.getPrefUAType import eu.kanade.tachiyomi.lib.randomua.getPrefUAType
import eu.kanade.tachiyomi.lib.randomua.setRandomUserAgent import eu.kanade.tachiyomi.lib.randomua.setRandomUserAgent
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.ConfigurableSource import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page
import keiyoushi.utils.getPreferences import keiyoushi.utils.getPreferences
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import okhttp3.Request
import org.jsoup.nodes.Document
class LunarScans : class LunarScans :
MangaThemesia( MangaThemesia(
@ -37,14 +31,6 @@ class LunarScans :
.rateLimit(1) .rateLimit(1)
.build() .build()
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
return if (query.isEmpty()) {
super.searchMangaRequest(page, query, filters)
} else {
GET("$baseUrl/?s=$query&page=$page", headers)
}
}
override fun getFilterList(): FilterList { override fun getFilterList(): FilterList {
val filters = mutableListOf<Filter<*>>( val filters = mutableListOf<Filter<*>>(
Filter.Header("Note: Can't be used with text search!"), Filter.Header("Note: Can't be used with text search!"),
@ -78,27 +64,7 @@ class LunarScans :
return FilterList(filters) return FilterList(filters)
} }
override fun pageListParse(document: Document): List<Page> {
val scriptContent = document.selectFirst("script:containsData(ts_reader)")?.data()
?: return super.pageListParse(document)
val jsonString = scriptContent.substringAfter("ts_reader.run(").substringBefore(");")
val tsReader = json.decodeFromString<TSReader>(jsonString)
val imageUrls = tsReader.sources.firstOrNull()?.images ?: return emptyList()
return imageUrls.mapIndexed { index, imageUrl -> Page(index, document.location(), imageUrl) }
}
override fun setupPreferenceScreen(screen: PreferenceScreen) { override fun setupPreferenceScreen(screen: PreferenceScreen) {
addRandomUAPreferenceToScreen(screen) addRandomUAPreferenceToScreen(screen)
} }
@Serializable
data class TSReader(
val sources: List<ReaderImageSource>,
)
@Serializable
data class ReaderImageSource(
val source: String,
val images: List<String>,
)
} }