MangaDex: Add setting to include unavailable chapters in chapter list (#9208)
* MangaDex: Add setting to include unavailable chapters in chapter list * Remove redundant isUnavailable check
This commit is contained in:
parent
6022ef39be
commit
66f2a0ed6e
@ -5,6 +5,7 @@ block_group_by_uuid=Block groups by UUID
|
||||
block_group_by_uuid_summary=Chapters from blocked groups will not show up in Latest or Manga feed. Enter as a Comma-separated list of group UUIDs
|
||||
block_uploader_by_uuid=Block uploader by UUID
|
||||
block_uploader_by_uuid_summary=Chapters from blocked uploaders will not show up in Latest or Manga feed. Enter as a Comma-separated list of uploader UUIDs
|
||||
chapter_unavailable_prefix=UNAVAILABLE
|
||||
content=Content
|
||||
content_gore=Gore
|
||||
content_rating=Content rating
|
||||
@ -66,6 +67,8 @@ genre_tragedy=Tragedy
|
||||
genre_wuxia=Wuxia
|
||||
has_available_chapters=Has available chapters
|
||||
included_tags_mode=Included tags mode
|
||||
include_unavailable=Show unavailable chapters
|
||||
include_unavailable_summary=Include chapters that have been marked as unavailable by the source in the chapter list
|
||||
invalid_author_id=Not a valid author ID
|
||||
invalid_manga_id=Not a valid manga ID
|
||||
invalid_group_id=Not a valid group ID
|
||||
|
@ -1,7 +1,7 @@
|
||||
ext {
|
||||
extName = 'MangaDex'
|
||||
extClass = '.MangaDexFactory'
|
||||
extVersionCode = 201
|
||||
extVersionCode = 202
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
@ -148,6 +148,11 @@ object MDConstants {
|
||||
return "${finalChapterInDescPref}_$dexLang"
|
||||
}
|
||||
|
||||
private const val includeUnavailablePref = "includeUnavailable"
|
||||
fun getIncludeUnavailablePrefKey(dexLang: String): String {
|
||||
return "${includeUnavailablePref}_$dexLang"
|
||||
}
|
||||
|
||||
private const val tagGroupContent = "content"
|
||||
private const val tagGroupFormat = "format"
|
||||
private const val tagGroupGenre = "genre"
|
||||
|
@ -510,6 +510,7 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
|
||||
.addQueryParameter("contentRating[]", MDConstants.allContentRatings)
|
||||
.addQueryParameter("excludedGroups[]", preferences.blockedGroups)
|
||||
.addQueryParameter("excludedUploaders[]", preferences.blockedUploaders)
|
||||
.addQueryParameter("includeUnavailable", if (preferences.includeUnavailable) "1" else "0")
|
||||
.build()
|
||||
|
||||
return GET(url, headers, CacheControl.FORCE_NETWORK)
|
||||
@ -784,6 +785,21 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
|
||||
}
|
||||
}
|
||||
|
||||
val includeUnavailablePref = SwitchPreferenceCompat(screen.context).apply {
|
||||
key = MDConstants.getIncludeUnavailablePrefKey(dexLang)
|
||||
title = helper.intl["include_unavailable"]
|
||||
summary = helper.intl["include_unavailable_summary"]
|
||||
setDefaultValue(false)
|
||||
|
||||
setOnPreferenceChangeListener { _, newValue ->
|
||||
val checkValue = newValue as Boolean
|
||||
|
||||
preferences.edit()
|
||||
.putBoolean(MDConstants.getIncludeUnavailablePrefKey(dexLang), checkValue)
|
||||
.commit()
|
||||
}
|
||||
}
|
||||
|
||||
screen.addPreference(coverQualityPref)
|
||||
screen.addPreference(tryUsingFirstVolumeCoverPref)
|
||||
screen.addPreference(dataSaverPref)
|
||||
@ -791,6 +807,7 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
|
||||
screen.addPreference(altTitlesInDescPref)
|
||||
screen.addPreference(preferExtensionLangTitlePref)
|
||||
screen.addPreference(finalChapterInDescPref)
|
||||
screen.addPreference(includeUnavailablePref)
|
||||
screen.addPreference(contentRatingPref)
|
||||
screen.addPreference(originalLanguagePref)
|
||||
screen.addPreference(blockedGroupsPref)
|
||||
@ -875,6 +892,9 @@ abstract class MangaDex(final override val lang: String, private val dexLang: St
|
||||
private val SharedPreferences.finalChapterInDesc
|
||||
get() = getBoolean(MDConstants.getFinalChapterInDescPrefKey(dexLang), true)
|
||||
|
||||
private val SharedPreferences.includeUnavailable
|
||||
get() = getBoolean(MDConstants.getIncludeUnavailablePrefKey(dexLang), false)
|
||||
|
||||
/**
|
||||
* Previous versions of the extension allowed invalid UUID values to be stored in the
|
||||
* preferences. This method clear invalid UUIDs in case the user have updated from
|
||||
|
@ -461,11 +461,17 @@ class MangaDexHelper(lang: String) {
|
||||
|
||||
// In future calculate [END] if non mvp api doesn't provide it
|
||||
|
||||
val unavailablePrefix = if (attr.isUnavailable == true) {
|
||||
intl["chapter_unavailable_prefix"] + " - "
|
||||
} else {
|
||||
""
|
||||
}
|
||||
|
||||
return SChapter.create().apply {
|
||||
url = "/chapter/${chapterDataDto.id}"
|
||||
name = chapterName.joinToString(" ").removeEntities()
|
||||
date_upload = parseDate(attr.publishAt)
|
||||
scanlator = groups
|
||||
scanlator = unavailablePrefix + groups
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@ data class ChapterAttributesDto(
|
||||
val pages: Int,
|
||||
val publishAt: String,
|
||||
val externalUrl: String?,
|
||||
val isUnavailable: Boolean?,
|
||||
) : AttributesDto() {
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user