Refactor as requested

This commit is contained in:
Mio.
2025-07-11 21:26:14 +02:00
parent 1ae29f12f7
commit 26044358d3
3 changed files with 23 additions and 42 deletions

View File

@@ -8,7 +8,7 @@ pref_group_tags_summary_on=Will prefix tags with their type
pref_group_tags_summary_off=List all tags together
pref_last_volume_cover_title=Keep cover updated
pref_last_volume_cover_summary_off=Keep current cover
pref_last_volume_cover_summary_on=Update cover to current Volume/Issue
pref_last_volume_cover_summary_on=Always show current Volume/Issue cover on refresh
pref_show_epub_title=Show EPUB (EPUB can't be read in Mihon)
pref_show_epub_summary_off=Hide EPUB titles in browsing
pref_show_epub_summary_on=Show EPUB titles in browsing

View File

@@ -162,8 +162,6 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
// Fallback - use original URL if we don't recognize the pattern
else -> manga.url
}.also { url ->
// Log.d(LOG_TAG, "Generated webview URL: $url (tracking URL: ${manga.url})")
}
}
@@ -180,11 +178,10 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
return client.newCall(request)
.asObservableSuccess()
.onErrorResumeNext { throwable ->
// Get Http code
val field = throwable.javaClass.getDeclaredField("code")
field.isAccessible = true // Make the field accessible
field.isAccessible = true
try {
var code = field.get(throwable) // Get the value of the code property
var code = field.get(throwable)
Log.e(LOG_TAG, "Error fetching manga: ${throwable.message}", throwable)
if (code as Int !in intArrayOf(401, 201, 500)) {
code = 500
@@ -351,13 +348,13 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
name = buildString {
append("${item.order + 1}. ")
when {
!item.chapterTitleName.isNullOrBlank() && !item.chapterTitleName.matches(Regex("^\\d+\$")) -> {
!item.chapterTitleName.isNullOrBlank() && !item.chapterTitleName.matches(Regex("^\\d+$")) -> {
append(item.chapterTitleName)
}
!item.volumeNumber.isNullOrBlank() && item.volumeNumber != "-100000" -> {
!item.volumeNumber.isNullOrBlank() && item.volumeNumber != UNNUMBERED_VOLUME_STR -> {
append("Volume ${item.volumeNumber.padStart(2, '0')}")
}
!item.chapterNumber.isNullOrBlank() && item.chapterNumber != "-100000" -> {
!item.chapterNumber.isNullOrBlank() && item.chapterNumber != UNNUMBERED_VOLUME_STR -> {
val libraryType = getLibraryType(item.seriesId)
when (libraryType) {
LibraryTypeEnum.Comic, LibraryTypeEnum.ComicVine ->
@@ -905,7 +902,6 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
} else {
manga.apply {
// description = helper.intl["error_reading_list_not_found"]
initialized = true
}
}
@@ -1024,21 +1020,17 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
val coverCandidates = mutableListOf<Triple<String, Boolean, Float>>()
for (volume in volumes) {
if (isComicLibrary && volume.number == -100000) {
// Issue: use chapter covers
for (chapter in volume.chapters) {
if (!chapter.coverImage.isNullOrBlank()) {
val isUnread = chapter.pagesRead < chapter.pages
val sortKey = chapter.number.toFloatOrNull() ?: 0f
coverCandidates.add(
Triple(
"$apiUrl/Image/chapter-cover?chapterId=${chapter.id}&apiKey=$apiKey",
isUnread,
sortKey,
),
// Issue: use chapter covers
if (isComicLibrary && volume.number == UNNUMBERED_VOLUME) {
coverCandidates += volume.chapters
.filterNot { it.coverImage.isNullOrBlank() }
.map { chapter ->
Triple(
"$apiUrl/Image/chapter-cover?chapterId=${chapter.id}&apiKey=$apiKey",
chapter.pagesRead < chapter.pages,
chapter.number.toFloatOrNull() ?: 0f,
)
}
}
} else if (!isComicLibrary) {
// Manga: use volume cover if it has a SingleFileVolume chapter
val hasSingleFile = volume.chapters.any { chapter ->
@@ -1250,24 +1242,6 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
}
// override fun chapterListParse(response: Response): List<SChapter> {
// try {
// val volumes = response.parseAs<List<VolumeDto>>()
// val allChapterList = mutableListOf<SChapter>()
// volumes.forEach { volume ->
// // Add all chapters from each volume as individual SChapter
// volume.chapters.forEach { chapter ->
// allChapterList.add(helper.chapterFromVolume(chapter, volume))
// }
// }
// allChapterList.sortWith(KavitaHelper.CompareChapters)
// return allChapterList
// } catch (e: Exception) {
// Log.e(LOG_TAG, "Unhandled exception parsing chapters. Send logs to kavita devs", e)
// throw IOException(helper.intl["version_exceptions_chapters_parse"])
// }
// }
override fun chapterListParse(response: Response): List<SChapter> {
try {
val seriesId = response.request.url.queryParameter("seriesId")?.toIntOrNull()
@@ -1872,6 +1846,9 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
}
companion object {
private const val UNNUMBERED_VOLUME = -100000
private const val UNNUMBERED_VOLUME_STR = "-100000"
private const val ADDRESS_TITLE = "Address"
private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaTypeOrNull()

View File

@@ -136,7 +136,7 @@ class KavitaHelper {
} catch (e: NumberFormatException) {
0f
}
-volumeNum - 100000f
-volumeNum - VOLUME_NUMBER_OFFSET
}
}
@@ -174,4 +174,8 @@ class KavitaHelper {
}
},
)
companion object {
private const val VOLUME_NUMBER_OFFSET = 100000f
}
}