Respect the altTitlesInDesc preference (MD) (#1283)
* Respect the `altTitlesInDesc` preference (MD) * Replace hardcoded "Alternative Titles" with localized string
This commit is contained in:
@@ -43,6 +43,7 @@ class ApiMangaParser(
|
||||
statistics: StatisticsMangaDto?,
|
||||
coverFileName: String?,
|
||||
coverQuality: String,
|
||||
altTitlesInDesc: Boolean,
|
||||
): SManga {
|
||||
val mangaId = getManga.await(manga.url, sourceId)?.id
|
||||
val metadata = if (mangaId != null) {
|
||||
@@ -52,7 +53,7 @@ class ApiMangaParser(
|
||||
newMetaInstance()
|
||||
}
|
||||
|
||||
parseIntoMetadata(metadata, input, simpleChapters, statistics, coverFileName, coverQuality)
|
||||
parseIntoMetadata(metadata, input, simpleChapters, statistics, coverFileName, coverQuality, altTitlesInDesc)
|
||||
if (mangaId != null) {
|
||||
metadata.mangaId = mangaId
|
||||
insertFlatMetadata.await(metadata.flatten())
|
||||
@@ -68,6 +69,7 @@ class ApiMangaParser(
|
||||
statistics: StatisticsMangaDto?,
|
||||
coverFileName: String?,
|
||||
coverQuality: String,
|
||||
altTitlesInDesc: Boolean,
|
||||
) {
|
||||
with(metadata) {
|
||||
try {
|
||||
@@ -88,13 +90,14 @@ class ApiMangaParser(
|
||||
MdUtil.cdnCoverUrl(mangaDto.data.id, "$coverFileName$coverQuality")
|
||||
}
|
||||
}
|
||||
val rawDesc = MdUtil.getFromLangMap(
|
||||
langMap = mangaAttributesDto.description.asMdMap(),
|
||||
currentLang = lang,
|
||||
originalLanguage = mangaAttributesDto.originalLanguage,
|
||||
).orEmpty()
|
||||
|
||||
description = MdUtil.cleanDescription(
|
||||
MdUtil.getFromLangMap(
|
||||
langMap = mangaAttributesDto.description.asMdMap(),
|
||||
currentLang = lang,
|
||||
originalLanguage = mangaAttributesDto.originalLanguage,
|
||||
).orEmpty(),
|
||||
if (altTitlesInDesc) MdUtil.addAltTitleToDesc(rawDesc, altTitles) else rawDesc,
|
||||
)
|
||||
|
||||
authors = mangaRelationshipsDto.filter { relationshipDto ->
|
||||
|
||||
@@ -28,6 +28,7 @@ class MangaHandler(
|
||||
sourceId: Long,
|
||||
coverQuality: String,
|
||||
tryUsingFirstVolumeCover: Boolean,
|
||||
altTitlesInDesc: Boolean,
|
||||
): SManga {
|
||||
return coroutineScope {
|
||||
val mangaId = MdUtil.getMangaId(manga.url)
|
||||
@@ -53,13 +54,14 @@ class MangaHandler(
|
||||
statistics.await(),
|
||||
coverFileName?.await(),
|
||||
coverQuality,
|
||||
altTitlesInDesc,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun fetchMangaDetailsObservable(manga: SManga, sourceId: Long, coverQuality: String, tryUsingFirstVolumeCover: Boolean): Observable<SManga> {
|
||||
fun fetchMangaDetailsObservable(manga: SManga, sourceId: Long, coverQuality: String, tryUsingFirstVolumeCover: Boolean, altTitlesInDesc: Boolean): Observable<SManga> {
|
||||
return runAsObservable {
|
||||
getMangaDetails(manga, sourceId, coverQuality, tryUsingFirstVolumeCover)
|
||||
getMangaDetails(manga, sourceId, coverQuality, tryUsingFirstVolumeCover, altTitlesInDesc)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package exh.md.utils
|
||||
|
||||
import android.app.Application
|
||||
import eu.kanade.domain.source.service.SourcePreferences
|
||||
import eu.kanade.domain.track.service.TrackPreferences
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.track.mdlist.MdList
|
||||
import eu.kanade.tachiyomi.data.track.myanimelist.dto.MALOAuth
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
@@ -256,5 +258,15 @@ class MdUtil {
|
||||
return jsonParser.encodeToString(body)
|
||||
.toRequestBody("application/json".toMediaType())
|
||||
}
|
||||
|
||||
fun addAltTitleToDesc(description: String, altTitles: List<String>?): String {
|
||||
return if (altTitles.isNullOrEmpty()) {
|
||||
description
|
||||
} else {
|
||||
val altTitlesDesc = altTitles
|
||||
.joinToString("\n", "${Injekt.get<Application>().getString(R.string.alt_titles)}:\n") { "• $it" }
|
||||
description + (if (description.isBlank()) "" else "\n\n") + altTitlesDesc
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user