fix: some missing thumbnails

This commit is contained in:
aayush262 2024-05-30 23:11:34 +05:30
parent e52ea2628a
commit 5473ac8238
4 changed files with 37 additions and 39 deletions

View file

@ -102,7 +102,7 @@ class AnilistMutations {
?: (currContext()?.getString(ani.dantotsu.R.string.success) ?: "Success") ?: (currContext()?.getString(ani.dantotsu.R.string.success) ?: "Success")
} }
suspend fun postMessage(userId: Int, text: String, edit: Int? = null,isPrivate: Boolean = false): String { 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 query = "mutation{SaveMessageActivity(${if (edit != null) "id:$edit," else ""} recipientId:$userId,message:$encodedText,private:$isPrivate){id}}"
val result = executeQuery<JsonObject>(query) val result = executeQuery<JsonObject>(query)
val errors = result?.get("errors") val errors = result?.get("errors")

View file

@ -33,9 +33,6 @@ class CharacterAdapter(
binding.itemCompactRelation.text = whitespace binding.itemCompactRelation.text = whitespace
binding.itemCompactImage.loadImage(character.image) binding.itemCompactImage.loadImage(character.image)
binding.itemCompactTitle.text = character.name binding.itemCompactTitle.text = character.name
binding.root.setOnClickListener {
copyToClipboard(character.name ?: "")
}
} }
override fun getItemCount(): Int = characterList.size override fun getItemCount(): Int = characterList.size
@ -59,6 +56,7 @@ class CharacterAdapter(
).toBundle() ).toBundle()
) )
} }
itemView.setOnLongClickListener { copyToClipboard(characterList[bindingAdapterPosition].name ?: ""); true }
} }
} }
} }

View file

@ -214,11 +214,11 @@ class AnimeWatchFragment : Fragment() {
if (offline) { if (offline) {
media.selected!!.sourceIndex = model.watchSources!!.list.lastIndex media.selected!!.sourceIndex = model.watchSources!!.list.lastIndex
} else { } else {
awaitAll( val kitsuEpisodes = async { model.loadKitsuEpisodes(media) }
//async { model.loadKitsuEpisodes(media) }, if someday anify dies val anifyEpisodes = async { model.loadAnifyEpisodes(media.id) }
async { model.loadFillerEpisodes(media) }, val fillerEpisodes = async { model.loadFillerEpisodes(media) }
async { model.loadAnifyEpisodes(media.id)}
) awaitAll(kitsuEpisodes, anifyEpisodes, fillerEpisodes)
} }
model.loadEpisodes(media, media.selected!!.sourceIndex) model.loadEpisodes(media, media.selected!!.sourceIndex)
} }
@ -233,6 +233,18 @@ class AnimeWatchFragment : Fragment() {
val episodes = loadedEpisodes[media.selected!!.sourceIndex] val episodes = loadedEpisodes[media.selected!!.sourceIndex]
if (episodes != null) { if (episodes != null) {
episodes.forEach { (i, episode) -> 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 != null) {
if (media.anime!!.fillerEpisodes!!.containsKey(i)) { if (media.anime!!.fillerEpisodes!!.containsKey(i)) {
episode.title = episode.title =
@ -251,18 +263,6 @@ class AnimeWatchFragment : Fragment() {
episode.thumb = media.anime!!.kitsuEpisodes!![i]?.thumb ?: episode.thumb 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 media.anime?.episodes = episodes

View file

@ -10,37 +10,37 @@ import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.decodeFromJsonElement import kotlinx.serialization.json.decodeFromJsonElement
object Anify { object Anify {
suspend fun fetchAndParseMetadata(id :Int): Map<String, Episode>? { suspend fun fetchAndParseMetadata(id :Int): Map<String, Episode> {
val response = client.get("https://api.anify.tv/content-metadata/$id") val response = client.get("https://api.anify.tv/content-metadata/$id")
.parsed<JsonArray>().map { .parsed<JsonArray>().map {
Mapper.json.decodeFromJsonElement<ContentMetadata>(it) Mapper.json.decodeFromJsonElement<AnifyElement>(it)
} }
return response.first().data.associate { return response.firstOrNull()?.data?.associate {
it.number.toString() to Episode( it.number.toString() to Episode(
number = it.number.toString(), number = it.number.toString(),
title = it.title, title = it.title,
desc = it.description, desc = it.description,
thumb = FileUrl[it.img], thumb = FileUrl[it.img],
filler = it.isFiller,
) )
} } ?: emptyMap()
} }
@Serializable @Serializable
data class ContentMetadata( data class AnifyElement (
@SerialName("providerId") val providerId: String, @SerialName("providerId")
@SerialName("data") val data: List<ProviderData> val providerID: String? = null,
val data: List<Datum>? = null
) )
@Serializable @Serializable
data class ProviderData( data class Datum (
@SerialName("id") val id: String, val id: String? = null,
@SerialName("description") val description: String, val description: String? = null,
@SerialName("hasDub") val hasDub: Boolean, val hasDub: Boolean? = null,
@SerialName("img") val img: String, val img: String? = null,
@SerialName("isFiller") val isFiller: Boolean, val isFiller: Boolean? = null,
@SerialName("number") val number: Int, val number: Long? = null,
@SerialName("title") val title: String, val title: String? = null,
@SerialName("updatedAt") val updatedAt: Long, val updatedAt: Long? = null,
@SerialName("rating") val rating: Double? = null val rating: Double? = null
) )
} }