From 2b345938c1182a794fb47e1c0a1a95fb957ed914 Mon Sep 17 00:00:00 2001 From: 2weiEmu Date: Mon, 25 May 2026 23:42:26 +0200 Subject: [PATCH] updated: meh just some super basic stuff, can't focus rn --- public/index.html | 10 ++++++--- public/js/index.js | 50 +++++++++++++++++++++++++++++++++++++++++++-- songmanager | Bin 11691100 -> 11691100 bytes 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/public/index.html b/public/index.html index 221578d..d4de36d 100644 --- a/public/index.html +++ b/public/index.html @@ -13,9 +13,13 @@

Song List

- - - +
+ + + In DB + Image Exists + +
diff --git a/public/js/index.js b/public/js/index.js index 6c18802..16bf3e5 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -1,3 +1,9 @@ +let songList = [] + +/** + * SONG FILE LIST SECTION + */ + let songFileList = [] /** * Get the list of all named song files (raw filenames) using the API @@ -12,8 +18,6 @@ async function getSongFileList() { } getSongFileList() - -let songList = [] let innerSongList = document.getElementById("innerSongList") /** @@ -78,12 +82,30 @@ function NewSongElement(exists, songName, artistName, imageUrl, id) { /** * Check if the songs exists, withtout trying to download the full file + * @param {*} url - The URL that should be checked for in the song file list */ function SongURLExists(url) { console.log(url) return songFileList.indexOf(url) != -1 } +/** + * Make the song list and append them to the elements, given the list of songs + * @param {*} listOfSongs - The list of songs, obviously should be a list of songs + * @param {*} appendElement - The element to which the list should be appended + **/ +function makeSongList(listOfSongs, appendElement) { + for (let i = 0; i < listOfSongs.length; i++) { + let song = listOfSongs[i] + + let fileAvailable = SongURLExists(song.PreviewURL) + + appendElement.appendChild(NewSongElement( + fileAvailable, song.DisplayTrackName, song.DisplayArtistNames, song.ArtworkURL60, song.Key + )) + } +} + /** * Get all the songs **/ @@ -115,8 +137,32 @@ function getSongList() { **/ let songFilterInput = document.getElementById("songFilterInput") +/** + * FILTERING SECTION + **/ +let songFilterName = document.getElementById("songFilterName") +let songFilterArtist = document.getElementById("songFilterArtist") +let songFilterInDB = document.getElementById("songFilterInDB") +let songFilterImageExist = document.getElementById("songFilterImageExist") +/** + * Get the current state of filters, with fields NameFilter, ArtistFilter, DBFilter, ImageFilter + * @returns filterstates with fields mentioned above + **/ +function getFilterStates() { + let filterStates + filterStates.NameFilter = songFilterName.value.toLowerCase() + filterStates.ArtistFilter = songFilterArtist.value.toLowerCase() + filterStates.DBFilter = songFilterInDB.checked + filterStates.ImageExist = songFilterImageExist.checked + + return filterStates +} + +/** + * SETUP / RUN AT START SECTION + **/ getSongList() // ============================================================== diff --git a/songmanager b/songmanager index 635b639d702224facb2020d8d86a73a08b6d97ea..d2b0a64e37f80c50538b476c61348cadafdbacc4 100755 GIT binary patch delta 1029 zcmca};v_2wZ^+@V&yUJ+Da-ISk0{eEC~)+QbaM>0)K9bUuM7`%F?Gugt&GS^sdRDn z3)RmpEiNuC2`li;_Q~)JFe*1JDyh&<4s*{hHTQ`R&r0)4O$^N~jm&dpU}0cj5Mf|o zU}j)oaQ6#kxN7?AUBK^ymY+7xh^#xX@WW=`s|)pWGLy_q^qXJvx4-6RY=6zq)c%^E zx&1XiOZ#hn*7n!@Z0)c4+1p?9bF{za=WKt?&(;2#pS%4vKTrE>e%|)i{Cw@N`9XRG z+F$bvw!h{VYJbfy-2R$hr2RF&X!~n^vG&*e;_a{bCE8!}OSZq}mui2_FWvr{U#9&v zzij(!e!2G7{POLu`4!q<^DDN$=2vQe&9B`4nqQ^;HNR^6Yksx%*Zk`3ulY6FU-N6W zzvkC!f6cGm{+eH>{WZUC`)hu^_SgLS?XUR_+F$b84twm{_Kz8CjYcS#IxaDB)$+ zKo&|iPBk=2Of^ikNJ>ghF)}f+OiQ#hO0qOaF-e`iuen5;-N?Yo*uctY`h(^Yv-SlU z9_gz91vEeL+TC`+|)4_5~RU?F%vz z+ZSXcwJ*p>ZeNg*(!L-gwS7TGTKj^G^!5cA8SM))GTRqqWVJ8I$ZlVdk<-2)Be#7) zMqc}ZjQsWm83pYNG78%lWE8b8$SB^vAfx1(IJJYK{Xug{`-A4v_6N;n?GKvE+aEMn zv_ELBY=6*P)&8Kly8S_OP5Xo9+V%&{b?pzD>)RhRH?%)!Zft+h+|>S{xw-v8b4&Y! z=GOKH&28-un%mnSGwf#Z!wDt$h)7u|3&uD+pJhS~l^Q`s<&9mDdG|y>&&^)*O zLG!%!2hH=_A2cs$f6%w}cUeAC4 delta 1029 zcmca};v_2wZ^+@VHx2SN^v)?xtc*7(HZRO_@iQ}s&@ZjZ3d%9cGDtNmGBWlIEcK77 z2-43jEiNuC2`li;_Q~)JFe*1JDyh)dO%E_}DXTPc^p7-hbt!btC@J)3U}0cj5Mf|o zU}j)oaQ6#kkT%`2<3Z-9;5XIlnA)Fzn5*T%}U!naqzhe7qex>%;{L1aG`BmCq^Q*SM=2vTf&9C16nqQ;+HNR&2 zYksZv*ZkV;ulaS_U-Rp>zvkC#f6cGo{+i#Q{WZT~`)huq_SgKz?XUSw+F$dVw!h{# zYk$pe-u{~3qWv|$W&3M>tM=FY*6pwPZQ5V++qS>vw`+gRZ{Pl!-=Y0AzhnDrey8@= z{LbyK`CZyy^Sidc=67p<&F{YbHNS^wsIZ}lk)^4Tu2GVSp@BtGnxUCV^7hV#5?*Ev zWFbS#M3dCS6eCm1R7+FylvGO#6C+deq@+X>OQY%gnoFeF4Na_!EUiqZKWHv7YhRGz z(Y_$VvwcB^SNnnt@Ad^5KJ5!KeA^df__Z&{@NZv`5zxLMBd~ozMo{~LjNtYK86oWp zGD6!IWQ4UZ$Ovy=kP*?oAS1GUK}J;jf{f_)1sO5z3o>Hc7i7e>FUW{*UyzZ|z91v9 zeL+T2`+|(*_5~R!?F%we+ZSY{wJ*p>Z(op+(Y_!fvwcBER{MgC?Dhp2IqeHFa@!YV z5qG_Pxa(7e9=LGy;~51KdDJOBWLyUL{i -- 2.54.0