Mangadex description cleanup (#2545)

Mangadex description cleanup
This commit is contained in:
Carlos 2020-03-31 12:37:48 -04:00 committed by GitHub
parent 18206ed744
commit b3e0ef430a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 64 additions and 2 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: MangaDex'
pkgNameSuffix = 'all.mangadex'
extClass = '.MangadexFactory'
extVersionCode = 85
extVersionCode = 86
libVersion = '1.2'
}

View File

@ -33,6 +33,10 @@ abstract class Mangadex(
private val internalLang: String
) : ConfigurableSource, ParsedHttpSource() {
init {
}
override val name = "MangaDex"
override val baseUrl = "https://mangadex.org"
@ -45,6 +49,10 @@ abstract class Mangadex(
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val mangadexDescription : MangadexDescription by lazy {
MangadexDescription(internalLang)
}
private val rateLimitInterceptor = RateLimitInterceptor(4)
override val client: OkHttpClient = network.client.newBuilder()
@ -381,7 +389,7 @@ abstract class Mangadex(
val chapterJson = json.getAsJsonObject("chapter")
manga.title = cleanString(mangaJson.get("title").string)
manga.thumbnail_url = cdnUrl + mangaJson.get("cover_url").string
manga.description = cleanString(mangaJson.get("description").string)
manga.description = cleanString(mangadexDescription.clean(internalLang, mangaJson.get("description").string))
manga.author = mangaJson.get("author").string
manga.artist = mangaJson.get("artist").string
val status = mangaJson.get("status").int

View File

@ -0,0 +1,54 @@
package eu.kanade.tachiyomi.extension.all.mangadex
class MangadexDescription(private val internalLang: String) {
private val listOfLangs = when (internalLang) {
"ru" -> RUSSIAN
"de" -> GERMAN
"it" -> ITALIAN
in "es", "mx" -> SPANISH
in "br", "pt" -> PORTUGESE
"tr" -> TURKISH
"fr" -> FRENCH
"sa" -> ARABIC
else -> emptyList()
}
fun clean(internalLang: String, description: String): String {
val langList = ALL_LANGS.toMutableList()
//remove any languages before the ones provided in the langTextToCheck, if no matches or empty
// just uses the original description, also removes the potential lang from all lang list
var newDescription = description;
listOfLangs.forEach { it ->
newDescription = newDescription.substringAfter(it)
langList.remove(it)
}
// remove any possible languages that remain to get the new description
langList.forEach { it -> newDescription = newDescription.substringBefore(it) }
return newDescription
}
companion object {
val ARABIC = listOf("[b][u]Arabic / العربية[/u][/b]")
val FRENCH = listOf(
"French - Français:",
"[b][u]French[/u][/b]",
"[b][u]French / Fran&ccedil;ais[/u][/b]"
)
val GERMAN = listOf("[b][u]German / Deutsch[/u][/b]", "German/Deutsch:")
val ITALIAN = listOf("[b][u]Italian / Italiano[/u][/b]")
val PORTUGESE = listOf(
"[b][u]Portuguese (BR) / Portugu&ecirc;s (BR)[/u][/b]",
"[b][u]Português / Portuguese[/u][/b]",
"[b][u]Portuguese / Portugu[/u][/b]"
)
val RUSSIAN = listOf("[b][u]Russian / Русский[/u][/b]")
val SPANISH = listOf("[b][u]Espa&ntilde;ol / Spanish:[/u][/b]")
val TURKISH = listOf("[b][u]Turkish / T&uuml;rk&ccedil;e[/u][/b]")
val ALL_LANGS =
listOf(ARABIC, FRENCH, GERMAN, ITALIAN, PORTUGESE, RUSSIAN, SPANISH, TURKISH).flatten()
}
}