From 5473ac82385de0ff4b310840db50b1d74830fa4e Mon Sep 17 00:00:00 2001 From: aayush262 Date: Thu, 30 May 2024 23:11:34 +0530 Subject: [PATCH] fix: some missing thumbnails --- .../connections/anilist/AnilistMutations.kt | 2 +- .../ani/dantotsu/media/CharacterAdapter.kt | 4 +-- .../media/anime/AnimeWatchFragment.kt | 34 +++++++++--------- .../main/java/ani/dantotsu/others/Anify.kt | 36 +++++++++---------- 4 files changed, 37 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistMutations.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistMutations.kt index 0ba016bd..1ddfbbaa 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistMutations.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistMutations.kt @@ -102,7 +102,7 @@ class AnilistMutations { ?: (currContext()?.getString(ani.dantotsu.R.string.success) ?: "Success") } suspend fun postMessage(userId: Int, text: String, edit: Int? = null,isPrivate: Boolean = false): String { - val encodedText = text.stringSanitizer() + val encodedText = text.replace("","").stringSanitizer() val query = "mutation{SaveMessageActivity(${if (edit != null) "id:$edit," else ""} recipientId:$userId,message:$encodedText,private:$isPrivate){id}}" val result = executeQuery(query) val errors = result?.get("errors") diff --git a/app/src/main/java/ani/dantotsu/media/CharacterAdapter.kt b/app/src/main/java/ani/dantotsu/media/CharacterAdapter.kt index 13b8d3bb..2186791d 100644 --- a/app/src/main/java/ani/dantotsu/media/CharacterAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/CharacterAdapter.kt @@ -33,9 +33,6 @@ class CharacterAdapter( binding.itemCompactRelation.text = whitespace binding.itemCompactImage.loadImage(character.image) binding.itemCompactTitle.text = character.name - binding.root.setOnClickListener { - copyToClipboard(character.name ?: "") - } } override fun getItemCount(): Int = characterList.size @@ -59,6 +56,7 @@ class CharacterAdapter( ).toBundle() ) } + itemView.setOnLongClickListener { copyToClipboard(characterList[bindingAdapterPosition].name ?: ""); true } } } } \ No newline at end of file diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt index c72d1f3e..ecd8ee73 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt @@ -214,11 +214,11 @@ class AnimeWatchFragment : Fragment() { if (offline) { media.selected!!.sourceIndex = model.watchSources!!.list.lastIndex } else { - awaitAll( - //async { model.loadKitsuEpisodes(media) }, if someday anify dies - async { model.loadFillerEpisodes(media) }, - async { model.loadAnifyEpisodes(media.id)} - ) + val kitsuEpisodes = async { model.loadKitsuEpisodes(media) } + val anifyEpisodes = async { model.loadAnifyEpisodes(media.id) } + val fillerEpisodes = async { model.loadFillerEpisodes(media) } + + awaitAll(kitsuEpisodes, anifyEpisodes, fillerEpisodes) } model.loadEpisodes(media, media.selected!!.sourceIndex) } @@ -233,6 +233,18 @@ class AnimeWatchFragment : Fragment() { val episodes = loadedEpisodes[media.selected!!.sourceIndex] if (episodes != null) { episodes.forEach { (i, episode) -> + if (media.anime?.anifyEpisodes != null) { + if (media.anime!!.anifyEpisodes!!.containsKey(i)) { + episode.desc = media.anime!!.anifyEpisodes!![i]?.desc ?: episode.desc + episode.title = if (MediaNameAdapter.removeEpisodeNumberCompletely( + episode.title ?: "" + ).isBlank() + ) media.anime!!.anifyEpisodes!![i]?.title ?: episode.title else episode.title + ?: media.anime!!.anifyEpisodes!![i]?.title ?: episode.title + episode.thumb = media.anime!!.anifyEpisodes!![i]?.thumb ?: episode.thumb + + } + } if (media.anime?.fillerEpisodes != null) { if (media.anime!!.fillerEpisodes!!.containsKey(i)) { episode.title = @@ -251,18 +263,6 @@ class AnimeWatchFragment : Fragment() { episode.thumb = media.anime!!.kitsuEpisodes!![i]?.thumb ?: episode.thumb } } - if (media.anime?.anifyEpisodes != null) { - if (media.anime!!.anifyEpisodes!!.containsKey(i)) { - episode.desc = media.anime!!.anifyEpisodes!![i]?.desc ?: episode.desc - episode.title = if (MediaNameAdapter.removeEpisodeNumberCompletely( - episode.title ?: "" - ).isBlank() - ) media.anime!!.anifyEpisodes!![i]?.title ?: episode.title else episode.title - ?: media.anime!!.anifyEpisodes!![i]?.title ?: episode.title - episode.thumb = media.anime!!.anifyEpisodes!![i]?.thumb ?: episode.thumb - - } - } } media.anime?.episodes = episodes diff --git a/app/src/main/java/ani/dantotsu/others/Anify.kt b/app/src/main/java/ani/dantotsu/others/Anify.kt index d51639c8..cfe74824 100644 --- a/app/src/main/java/ani/dantotsu/others/Anify.kt +++ b/app/src/main/java/ani/dantotsu/others/Anify.kt @@ -10,37 +10,37 @@ import kotlinx.serialization.json.JsonArray import kotlinx.serialization.json.decodeFromJsonElement object Anify { - suspend fun fetchAndParseMetadata(id :Int): Map? { + suspend fun fetchAndParseMetadata(id :Int): Map { val response = client.get("https://api.anify.tv/content-metadata/$id") .parsed().map { - Mapper.json.decodeFromJsonElement(it) + Mapper.json.decodeFromJsonElement(it) } - return response.first().data.associate { + return response.firstOrNull()?.data?.associate { it.number.toString() to Episode( number = it.number.toString(), title = it.title, desc = it.description, thumb = FileUrl[it.img], - filler = it.isFiller, ) - } + } ?: emptyMap() } @Serializable - data class ContentMetadata( - @SerialName("providerId") val providerId: String, - @SerialName("data") val data: List + data class AnifyElement ( + @SerialName("providerId") + val providerID: String? = null, + val data: List? = null ) @Serializable - data class ProviderData( - @SerialName("id") val id: String, - @SerialName("description") val description: String, - @SerialName("hasDub") val hasDub: Boolean, - @SerialName("img") val img: String, - @SerialName("isFiller") val isFiller: Boolean, - @SerialName("number") val number: Int, - @SerialName("title") val title: String, - @SerialName("updatedAt") val updatedAt: Long, - @SerialName("rating") val rating: Double? = null + data class Datum ( + val id: String? = null, + val description: String? = null, + val hasDub: Boolean? = null, + val img: String? = null, + val isFiller: Boolean? = null, + val number: Long? = null, + val title: String? = null, + val updatedAt: Long? = null, + val rating: Double? = null ) } \ No newline at end of file