Selaa lähdekoodia

提交搜索的工具类

onecold 4 kuukautta sitten
vanhempi
sitoutus
55602f1bc6
1 muutettua tiedostoa jossa 36 lisäystä ja 0 poistoa
  1. 36 0
      entry/src/main/ets/common/util/RemoteMusicSearchHelper.ets

+ 36 - 0
entry/src/main/ets/common/util/RemoteMusicSearchHelper.ets

@@ -0,0 +1,36 @@
+import { NavidromeRestAlbum, NavidromeRestArtist, NavidromeRestPlaylist } from '../network/NavidromeRestApi'
+
+function normalizeKeyword(keyword: string): string {
+  return keyword.trim().toLowerCase()
+}
+
+function includesKeyword(value: string | undefined, keyword: string): boolean {
+  if (keyword.length === 0) {
+    return true
+  }
+  return (value ?? '').trim().toLowerCase().includes(keyword)
+}
+
+export function filterArtistsByKeyword(items: NavidromeRestArtist[], keyword: string): NavidromeRestArtist[] {
+  const normalized = normalizeKeyword(keyword)
+  if (normalized.length === 0) {
+    return [...items]
+  }
+  return items.filter((item: NavidromeRestArtist) => includesKeyword(item.name, normalized))
+}
+
+export function filterAlbumsByKeyword(items: NavidromeRestAlbum[], keyword: string): NavidromeRestAlbum[] {
+  const normalized = normalizeKeyword(keyword)
+  if (normalized.length === 0) {
+    return [...items]
+  }
+  return items.filter((item: NavidromeRestAlbum) => includesKeyword(item.name, normalized))
+}
+
+export function filterPlaylistsByKeyword(items: NavidromeRestPlaylist[], keyword: string): NavidromeRestPlaylist[] {
+  const normalized = normalizeKeyword(keyword)
+  if (normalized.length === 0) {
+    return [...items]
+  }
+  return items.filter((item: NavidromeRestPlaylist) => includesKeyword(item.name, normalized))
+}