nullIfEmpty
This commit is contained in:
parent
9e63f32a82
commit
33b6912c22
@ -247,7 +247,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getTrackingAndMangaInfo(track: Track): Pair<Track, MangaDexSearchMetadata?> {
|
suspend fun getTrackingAndMangaInfo(track: Track): Pair<Track, MangaDexSearchMetadata?> {
|
||||||
return mangaHandler.getTrackingInfo(track, mdList)
|
return mangaHandler.getTrackingInfo(track)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun updateFollowStatus(mangaID: String, followStatus: FollowStatus): Boolean {
|
override suspend fun updateFollowStatus(mangaID: String, followStatus: FollowStatus): Boolean {
|
||||||
|
@ -18,6 +18,7 @@ import exh.metadata.metadata.base.insertFlatMetadata
|
|||||||
import exh.util.dropEmpty
|
import exh.util.dropEmpty
|
||||||
import exh.util.executeOnIO
|
import exh.util.executeOnIO
|
||||||
import exh.util.floor
|
import exh.util.floor
|
||||||
|
import exh.util.nullIfEmpty
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import tachiyomi.source.model.ChapterInfo
|
import tachiyomi.source.model.ChapterInfo
|
||||||
@ -71,7 +72,7 @@ class ApiMangaParser(val client: OkHttpClient, private val lang: String) {
|
|||||||
val networkManga = networkApiManga.data.attributes
|
val networkManga = networkApiManga.data.attributes
|
||||||
mdUuid = networkApiManga.data.id
|
mdUuid = networkApiManga.data.id
|
||||||
title = MdUtil.cleanString(networkManga.title[lang] ?: networkManga.title["en"]!!)
|
title = MdUtil.cleanString(networkManga.title[lang] ?: networkManga.title["en"]!!)
|
||||||
altTitles = networkManga.altTitles.mapNotNull { it[lang] }
|
altTitles = networkManga.altTitles.mapNotNull { it[lang] }.nullIfEmpty()
|
||||||
|
|
||||||
val coverUrl = MdUtil.formThumbUrl(networkApiManga.data.id)
|
val coverUrl = MdUtil.formThumbUrl(networkApiManga.data.id)
|
||||||
/*val coverUrlId = networkApiManga.relationships.firstOrNull { it.type == "cover_art" }?.id
|
/*val coverUrlId = networkApiManga.relationships.firstOrNull { it.type == "cover_art" }?.id
|
||||||
|
@ -117,7 +117,7 @@ class MangaHandler(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getTrackingInfo(track: Track, mdList: MdList): Pair<Track, MangaDexSearchMetadata?> {
|
suspend fun getTrackingInfo(track: Track): Pair<Track, MangaDexSearchMetadata?> {
|
||||||
return withIOContext {
|
return withIOContext {
|
||||||
val metadata = async {
|
val metadata = async {
|
||||||
val mangaUrl = MdUtil.buildMangaUrl(MdUtil.getMangaId(track.tracking_url))
|
val mangaUrl = MdUtil.buildMangaUrl(MdUtil.getMangaId(track.tracking_url))
|
||||||
|
@ -3,6 +3,7 @@ package exh.metadata.metadata
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||||
|
import exh.util.nullIfEmpty
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import tachiyomi.source.model.MangaInfo
|
import tachiyomi.source.model.MangaInfo
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ class EightMusesSearchMetadata : RaisedSearchMetadata() {
|
|||||||
return with(context) {
|
return with(context) {
|
||||||
listOfNotNull(
|
listOfNotNull(
|
||||||
title?.let { getString(R.string.title) to it },
|
title?.let { getString(R.string.title) to it },
|
||||||
path.takeUnless { it.isEmpty() }?.joinToString("/", prefix = "/")
|
path.nullIfEmpty()?.joinToString("/", prefix = "/")
|
||||||
?.let { getString(R.string.path) to it },
|
?.let { getString(R.string.path) to it },
|
||||||
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it }
|
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it }
|
||||||
)
|
)
|
||||||
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import exh.metadata.MetadataUtil
|
import exh.metadata.MetadataUtil
|
||||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||||
|
import exh.util.nullIfEmpty
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import tachiyomi.source.model.MangaInfo
|
import tachiyomi.source.model.MangaInfo
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
@ -67,12 +68,12 @@ class HitomiSearchMetadata : RaisedSearchMetadata() {
|
|||||||
hlId?.let { getString(R.string.id) to it },
|
hlId?.let { getString(R.string.id) to it },
|
||||||
title?.let { getString(R.string.title) to it },
|
title?.let { getString(R.string.title) to it },
|
||||||
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
|
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
|
||||||
artists.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.artist) to it },
|
artists.nullIfEmpty()?.joinToString()?.let { getString(R.string.artist) to it },
|
||||||
group?.let { getString(R.string.group) to it },
|
group?.let { getString(R.string.group) to it },
|
||||||
genre?.let { getString(R.string.genre) to it },
|
genre?.let { getString(R.string.genre) to it },
|
||||||
language?.let { getString(R.string.language) to it },
|
language?.let { getString(R.string.language) to it },
|
||||||
series.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.series) to it },
|
series.nullIfEmpty()?.joinToString()?.let { getString(R.string.series) to it },
|
||||||
characters.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.characters) to it },
|
characters.nullIfEmpty()?.joinToString()?.let { getString(R.string.characters) to it },
|
||||||
uploadDate?.let { getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
|
uploadDate?.let { getString(R.string.date_posted) to MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import androidx.core.net.toUri
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||||
import exh.metadata.metadata.base.RaisedTitle
|
import exh.metadata.metadata.base.RaisedTitle
|
||||||
|
import exh.util.nullIfEmpty
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import tachiyomi.source.model.MangaInfo
|
import tachiyomi.source.model.MangaInfo
|
||||||
|
|
||||||
@ -70,7 +71,7 @@ class PervEdenSearchMetadata : RaisedSearchMetadata() {
|
|||||||
url?.let { getString(R.string.url) to it },
|
url?.let { getString(R.string.url) to it },
|
||||||
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
|
thumbnailUrl?.let { getString(R.string.thumbnail_url) to it },
|
||||||
title?.let { getString(R.string.title) to it },
|
title?.let { getString(R.string.title) to it },
|
||||||
altTitles.takeUnless { it.isEmpty() }?.joinToString()
|
altTitles.nullIfEmpty()?.joinToString()
|
||||||
?.let { getString(R.string.alt_titles) to it },
|
?.let { getString(R.string.alt_titles) to it },
|
||||||
artist?.let { getString(R.string.artist) to it },
|
artist?.let { getString(R.string.artist) to it },
|
||||||
genre?.let { getString(R.string.genre) to it },
|
genre?.let { getString(R.string.genre) to it },
|
||||||
|
@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.R
|
|||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import exh.metadata.MetadataUtil
|
import exh.metadata.MetadataUtil
|
||||||
import exh.metadata.metadata.base.RaisedSearchMetadata
|
import exh.metadata.metadata.base.RaisedSearchMetadata
|
||||||
|
import exh.util.nullIfEmpty
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import tachiyomi.source.model.MangaInfo
|
import tachiyomi.source.model.MangaInfo
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
@ -80,8 +81,8 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
|
|||||||
category?.let { getString(R.string.genre) to it },
|
category?.let { getString(R.string.genre) to it },
|
||||||
collection?.let { getString(R.string.collection) to it },
|
collection?.let { getString(R.string.collection) to it },
|
||||||
group?.let { getString(R.string.group) to it },
|
group?.let { getString(R.string.group) to it },
|
||||||
parody.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.parodies) to it },
|
parody.nullIfEmpty()?.joinToString()?.let { getString(R.string.parodies) to it },
|
||||||
character.takeUnless { it.isEmpty() }?.joinToString()?.let { getString(R.string.characters) to it },
|
character.nullIfEmpty()?.joinToString()?.let { getString(R.string.characters) to it },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
app/src/main/java/exh/util/ListUtil.kt
Normal file
3
app/src/main/java/exh/util/ListUtil.kt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
package exh.util
|
||||||
|
|
||||||
|
fun <C : Collection<R>, R> C.nullIfEmpty() = ifEmpty { null }
|
@ -14,7 +14,7 @@ fun Manga.shouldDeleteChapters(db: DatabaseHelper, prefs: PreferencesHelper): Bo
|
|||||||
val categoriesForManga =
|
val categoriesForManga =
|
||||||
db.getCategoriesForManga(this).executeAsBlocking()
|
db.getCategoriesForManga(this).executeAsBlocking()
|
||||||
.mapNotNull { it.id }
|
.mapNotNull { it.id }
|
||||||
.takeUnless { it.isEmpty() } ?: listOf(0)
|
.ifEmpty { listOf(0) }
|
||||||
|
|
||||||
// We want to return false if there is intersects
|
// We want to return false if there is intersects
|
||||||
// so we use isEmpty to return true if its empty
|
// so we use isEmpty to return true if its empty
|
||||||
|
Loading…
x
Reference in New Issue
Block a user