Skip to content

Commit 56df21c

Browse files
author
RiskyN
committed
Fix search matching logic and uncluster homepage recent episodes layout
1 parent 530254b commit 56df21c

1 file changed

Lines changed: 18 additions & 8 deletions

File tree

AnimeVerse/src/main/kotlin/com/animeverse/AnimeVerseProvider.kt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,24 @@ class AnimeVerseProvider : MainAPI() {
133133
return response.items
134134
}
135135

136+
private fun getPosterUrl(seriesId: String): String {
137+
val url = "https://misc.nekkoto.app/poster_image/$seriesId.jpg"
138+
val b64 = base64UrlEncode(url.toByteArray(Charsets.UTF_8))
139+
return "$mainUrl/i/$b64"
140+
}
141+
136142
override suspend fun search(query: String): List<SearchResponse> {
137143
val items = getCatalog()
138-
val lowerQuery = query.lowercase()
139-
140-
return items.filter {
141-
it.title.lowercase().contains(lowerQuery) ||
142-
(it.alternativeTitle?.lowercase()?.contains(lowerQuery) ?: false) ||
143-
(it.searchTitle?.lowercase()?.contains(lowerQuery) ?: false)
144+
val queryWords = query.lowercase().split(Regex("\\s+")).filter { it.isNotEmpty() }
145+
if (queryWords.isEmpty()) return emptyList()
146+
147+
return items.filter { item ->
148+
val title = item.title.lowercase()
149+
val altTitle = item.alternativeTitle?.lowercase() ?: ""
150+
val searchTitle = item.searchTitle?.lowercase() ?: ""
151+
queryWords.all { word ->
152+
title.contains(word) || altTitle.contains(word) || searchTitle.contains(word)
153+
}
144154
}.map { item ->
145155
val isDub = item.slug.contains("-dub", ignoreCase = true) ||
146156
item.title.contains("(dub)", ignoreCase = true)
@@ -178,8 +188,8 @@ class AnimeVerseProvider : MainAPI() {
178188
val jsonText = signedGet("/api/v1/recent")
179189
val items = mapper.readValue(jsonText, RecentResponse::class.java).items
180190
items.map { item ->
181-
newAnimeSearchResponse(item.seriesTitle, item.seriesSlug) {
182-
this.posterUrl = if (item.thumb.startsWith("/i/")) "$mainUrl${item.thumb}" else item.thumb
191+
newAnimeSearchResponse("${item.seriesTitle} - Episode ${item.number}", item.seriesSlug) {
192+
this.posterUrl = getPosterUrl(item.seriesId)
183193
}
184194
}
185195
}

0 commit comments

Comments
 (0)