Fix fill info from trackers only looking for specific 'Art' or 'Story'
This commit is contained in:
parent
7d1ee6c587
commit
870d77ed1f
6 changed files with 22 additions and 29 deletions
|
|
@ -373,12 +373,12 @@ class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {
|
|||
thumbnailUrl = media.coverImage.large,
|
||||
description = media.description?.htmlDecode()?.ifEmpty { null },
|
||||
authors = media.staff.edges
|
||||
.filter { it.role == "Story" || it.role == "Story & Art" }
|
||||
.filter { "Story" in it.role }
|
||||
.mapNotNull { it.node.name.userPreferred }
|
||||
.joinToString(", ")
|
||||
.ifEmpty { null },
|
||||
artists = media.staff.edges
|
||||
.filter { it.role == "Art" || it.role == "Story & Art" }
|
||||
.filter { "Art" in it.role }
|
||||
.mapNotNull { it.node.name.userPreferred }
|
||||
.joinToString(", ")
|
||||
.ifEmpty { null },
|
||||
|
|
|
|||
|
|
@ -153,17 +153,13 @@ class BangumiApi(
|
|||
thumbnailUrl = it.images?.common,
|
||||
description = it.summary,
|
||||
authors = it.infobox
|
||||
.filter { it.key == "作者" }
|
||||
.filter { "作者" in it.key }
|
||||
.filterIsInstance<Infobox.SingleValue>()
|
||||
// KMK -->
|
||||
.joinToString(", ") { it.value },
|
||||
// KMK <--
|
||||
artists = it.infobox
|
||||
.filter { it.key == "插图" }
|
||||
.filter { "插图" in it.key }
|
||||
.filterIsInstance<Infobox.SingleValue>()
|
||||
// KMK -->
|
||||
.joinToString(", ") { it.value },
|
||||
// KMK <--
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -298,14 +298,12 @@ class KitsuApi(private val client: OkHttpClient, interceptor: KitsuInterceptor)
|
|||
thumbnailUrl = manga.posterImage.original.url,
|
||||
description = manga.description.en?.htmlDecode()?.ifEmpty { null },
|
||||
authors = manga.staff.nodes
|
||||
.filter { it.role == "Story" || it.role == "Story & Art" }
|
||||
.map { it.person.name }
|
||||
.joinToString(", ")
|
||||
.filter { "Story" in it.role }
|
||||
.joinToString(", ") { it.person.name }
|
||||
.ifEmpty { null },
|
||||
artists = manga.staff.nodes
|
||||
.filter { it.role == "Art" || it.role == "Story & Art" }
|
||||
.map { it.person.name }
|
||||
.joinToString(", ")
|
||||
.filter { "Art" in it.role }
|
||||
.joinToString(", ") { it.person.name }
|
||||
.ifEmpty { null },
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
|||
}
|
||||
|
||||
override suspend fun login(username: String, password: String) {
|
||||
val authenticated = api.authenticate(username, password) ?: throw Throwable("Unable to login")
|
||||
val authenticated = api.authenticate(username, password)
|
||||
saveCredentials(authenticated.uid.toString(), authenticated.sessionToken)
|
||||
interceptor.newAuth(authenticated.sessionToken)
|
||||
}
|
||||
|
|
@ -127,8 +127,10 @@ class MangaUpdates(id: Long) : BaseTracker(id, "MangaUpdates"), DeletableTracker
|
|||
it.title?.htmlDecode(),
|
||||
it.image?.url?.original,
|
||||
it.description?.htmlDecode(),
|
||||
it.authors?.filter { it.type == "Author" }?.joinToString(separator = ", ") { it.name ?: "" },
|
||||
it.authors?.filter { it.type == "Artist" }?.joinToString(separator = ", ") { it.name ?: "" },
|
||||
it.authors?.filter { it.type != null && "Author" in it.type }
|
||||
?.joinToString(separator = ", ") { it.name ?: "" },
|
||||
it.authors?.filter { it.type != null && "Artist" in it.type }
|
||||
?.joinToString(separator = ", ") { it.name ?: "" },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -215,14 +215,12 @@ class MyAnimeListApi(
|
|||
thumbnailUrl = it.covers.large?.ifEmpty { null } ?: it.covers.medium,
|
||||
description = it.synopsis,
|
||||
authors = it.authors
|
||||
.filter { it.role == "Story" || it.role == "Story & Art" }
|
||||
.map { "${it.node.firstName} ${it.node.lastName}".trim() }
|
||||
.joinToString(separator = ", ")
|
||||
.filter { "Story" in it.role }
|
||||
.joinToString(separator = ", ") { "${it.node.firstName} ${it.node.lastName}".trim() }
|
||||
.ifEmpty { null },
|
||||
artists = it.authors
|
||||
.filter { it.role == "Art" || it.role == "Story & Art" }
|
||||
.map { "${it.node.firstName} ${it.node.lastName}".trim() }
|
||||
.joinToString(separator = ", ")
|
||||
.filter { "Art" in it.role }
|
||||
.joinToString(separator = ", ") { "${it.node.firstName} ${it.node.lastName}".trim() }
|
||||
.ifEmpty { null },
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package eu.kanade.tachiyomi.data.track.shikimori
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.ui.util.fastAny
|
||||
import androidx.core.net.toUri
|
||||
import eu.kanade.tachiyomi.data.database.models.Track
|
||||
import eu.kanade.tachiyomi.data.track.model.TrackMangaMetadata
|
||||
|
|
@ -178,14 +179,12 @@ class ShikimoriApi(
|
|||
thumbnailUrl = manga.poster.originalUrl,
|
||||
description = manga.description,
|
||||
authors = manga.personRoles
|
||||
.filter { it.rolesEn.contains("Story") || it.rolesEn.contains("Story & Art") }
|
||||
.map { it.person.name }
|
||||
.joinToString(", ")
|
||||
.filter { it.rolesEn.fastAny { "Story" in it } }
|
||||
.joinToString(", ") { it.person.name }
|
||||
.ifEmpty { null },
|
||||
artists = manga.personRoles
|
||||
.filter { it.rolesEn.contains("Art") || it.rolesEn.contains("Story & Art") }
|
||||
.map { it.person.name }
|
||||
.joinToString(", ")
|
||||
.filter { it.rolesEn.fastAny { "Art" in it } }
|
||||
.joinToString(", ") { it.person.name }
|
||||
.ifEmpty { null },
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue