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'
themePkg = 'mangathemesia'
baseUrl = 'https://lunarscan.org'
overrideVersionCode = 3
overrideVersionCode = 4
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.setRandomUserAgent
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.ConfigurableSource
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page
import keiyoushi.utils.getPreferences
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString
import okhttp3.Request
import org.jsoup.nodes.Document
class LunarScans :
MangaThemesia(
@ -37,14 +31,6 @@ class LunarScans :
.rateLimit(1)
.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 {
val filters = mutableListOf<Filter<*>>(
Filter.Header("Note: Can't be used with text search!"),
@ -78,27 +64,7 @@ class LunarScans :
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) {
addRandomUAPreferenceToScreen(screen)
}
@Serializable
data class TSReader(
val sources: List<ReaderImageSource>,
)
@Serializable
data class ReaderImageSource(
val source: String,
val images: List<String>,
)
}