From e473b5db92487c0cd90ee0fbf05da7c41c0c0aea Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Tue, 11 Jan 2022 03:36:42 +0300 Subject: [PATCH] misc --- server/app/api.py | 5 +-- src/assets/images/null.webp | Bin 2286 -> 42276 bytes .../FolderView/{SearchBox.vue => Header.vue} | 0 src/components/FolderView/SongList.vue | 17 +++------- src/components/SongItem.vue | 4 +-- src/composables/perks.js | 31 +++++++++++++----- src/composables/state.js | 5 +++ src/views/FolderView.vue | 14 ++++---- 8 files changed, 43 insertions(+), 33 deletions(-) rename src/components/FolderView/{SearchBox.vue => Header.vue} (100%) diff --git a/server/app/api.py b/server/app/api.py index d1e8aa5b..50be6298 100644 --- a/server/app/api.py +++ b/server/app/api.py @@ -314,8 +314,9 @@ def getFolderTree(folder: str = None): song['artists'] = song['artists'].split(', ') or None except: pass - - song['image'] = img_path + song['image'] + if song['image'] is not None: + print(song['image']) + song['image'] = img_path + song['image'] return {"files": remove_duplicates(songs), "folders": sorted(folders, key=lambda i: i['name'])} diff --git a/src/assets/images/null.webp b/src/assets/images/null.webp index 985be000f1addef55c9dd7a307b34135109db552..94dd613cd402cdf18b1b126b1366366b54938fe1 100644 GIT binary patch literal 42276 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 z z$i{uq+m97={$z-05K2H9yyUFFjv?pMlw=^d$6;&*-0{vZu|#Ml8Keev>eGQ^i&g?u z`~b=yEsa6ZuxsFT=YmdMcz1KmOmSSxPlXU5e)6Lkb0mZesl0Ef z`UXRu8z1upQJ-rQkC-@7=`kwpfp+p?foScZS_l86Q)&X%vVx-VU-sl*>Xd!so{4d3 zcLp>oo1S5yY(|*CGjovVVq7 zYw4-1d~7{sGS5afrwYqj%DPXrak(5OiQwsk>CQ)76n&2Zo(=+YPSDkntZv3?re(Jm zG*t3dLOlj+X zRhtyh?jSuDUs^6K$6!gp@Hbr|Ueu$?D|J>cMsdDks86Xp&d30mYBHUyyA@WNIR7Ie zw8Z0|_}W^IQZ&1NcashO={9d}tt zVgDri(kL8#a(K4F3q^xPv%2ftJ&ep3y@hC2Z4s??Gayz(`rI2 z=(o5W%qe!YHuzc_+$CNo1@eBP4S44xsn&i^z2bj=Uh}s4kAx_JkP4X!pv3g{iO4-Oazf&S?w^w7` zyyI?AUi~@=Dx2eQTK^1~{EJj0&NLPyg+b|v5WtJ4T`uJ8(O-eB2hoLpLLOQ#1j;@y zJW76lp&~4hbwh<2g2)i%MI7PfwttZmxpP1A%kgvCS}jl;CPvWQ4L;Exrz?F=0Q2|+ zI{DIF16!pnjRXln^!6SJ@9Ocb}V>~4Xo?`EpZW*&Rk>w5#76-jC*|YSNl_YyeB& zNNeN(au#ho5=t12_F|JfQOk`}@@2QHl%pf5>)#RA%FMLJ#AyvngS2IL_8kYsE4nC; zwcTPH&6z1FTuAwyOz9fiz?5I-u)D{_eP5545hU#-?q_1u28d+%9IsPwtix`uS@d4X zD^_W@zf^LW$lK((0bGUX>yVZxCC?MQEIclppPI?TtMwnbQR1zT6RL2hUw$=(3LQUE zjx(QJ&;FK2-2GRQru^idXA>`*T%PFGjclURhoUx+#*N8^q}?&7faMqCR)&UcM=Aq{I?j^vRB2Mq8Y1Nqc#W%Zi-(K_2@SKxtD}$Mh zBBikLFMJ?7+ml2@(O>^Tq~CpYGY^Ypc5_SeZOgzC=tLj(HbXn9{GFG9LXlF z{tRi*#Bxy0v6+s<5~=+Mu+62!3jd#~(*9YH~E2*AC_Z z98wJc&BH!hV&&@^sux6`{H`av)^iM6xAHdS<2ruSrsR=vO_gw=6hG-benFQ2LyEbqX^A7PIo$8~6|%-c(UbNd6P8JtIiIGw0b10^b1AcVrl!}V(h7r&!o6v$ zhFt$s%oxIm&*Pu>izhwYrZ%S9me#wU$HC4VGWbMHd6%_bKGuN>_l*TeVX|*i!I1V% zW88>5v5e0tz&L*AUMXOBU#o})D(5zeMdNOql|w1E)c>IP`^}iU*E&zp5XKm#s@3@G zEvC4dmmIRcOi3f334(pao+^#OtviHW^pT(EDQQB}=CmWoE;^(3MSE4h@@c7gPZ2;~ z-jk_G7u`;ES*T!&boP2yS{X@6>R%p{j2ub#dFFJXrp$L8)I!vrbroHN9!Wv$LQ9yE zxWGu)s9&V_#))@F$mFv0dKQ-U){9F(E8q2%0jFBw|9{x$XHupm)1nC}=b9L#!ElLnoOhX!A*qe3K3 z7ozc5Q7Nz1gGm3Lm)sDq=?x zFMFIX%Ka1GCZ`d0E8IRILA%MucJFHmuO{}dOYJH}jx+Rz~(T1cLvg6OB^G(2Jg zt|@RN{RgqkKP^Xk2v4B7G3*uxYQo*ZddC>92z8Th>RLus25izL4-`L&8O~LBVS;&BCmo;ViIf8&Vd_7^^114{4jMbZ0sA#ljsWe z+x8v_6u?sI{)5CwZmetciyYYb%`OWzpYI3=oAo0)GA8|dqEY3HCUSmR(4vB(@uRvz z5~fE@^L$D6hzv96p6U*faNB*x4&vJye&2`TL8kO18b={pn-o8S}h!0 z5o>w;4ohPk=$Ll3&+U6A{~eTQg2j=VHkn(EiDkM;DaDI3N?Xn0_>_q5YpD1p%5 zY7i8t#SzayhESR1v&9Fru0YiDL8t94G=?1&XX>x$c&@MgD)6y<(vpMQudYgg@;y><)&LA%1xCRfx{S+tf1cL(9OEy=I)8;7r)<~wD_3;3yg$W8*~I`;ZWYS!l* zQC7T_3978!K!H1NC*3lEyGEs1OtN@kwy`p;0Sb+wK%)abb$eG9OmCU2u1v%-4#0J5 zS${%3CF+jxNMRO1Z&8G4ElMe~zZQUFvzAZcd#0I#ku511ux@;ENV2YbTP}lC%YVhn#2e2(W>j=!z(R9pc?=^9NYL;;9#u^iI^Pu95Uh6we zVESYiF$;mYrvIoAO4Q%qQ3=mZg~wnj!ceRJUJw*xm`5}ob_5F`4wwm??1xHN!@GJ` zN6nhtkuJPK^qVKPSCMyb6}e^~%X7J6vlJ7I+T8OGv|^P{E3x9AX?ZET*C#%38eWgF z$isA?+#6-2lSa1P5sd~p^nQW>3QkVf-{h0|)U!53?#^uS^>d8xS}`f40x;YU)T@CP zx0S*~j93c3lDf^Ee}P?79;m9ZC97-=V0kb?My0jG3wN9hZ}zilt-| zXDgOOE0{a(gSGVEUB+o@<*QJrWAMby77mrI_&_;b+qxBWhE5jUMxeE#S#&Zzo)q(; z5lRzm?{J&I@$TrZMhYFxuD48<4bU|@pBK;gInS+DLOPel3`vdEH6Jb;Rd3ExQZP8y zC{iDaj53v=kSP!9LT=P^gz#UShU5)~VT!dKylf^ida*a;Ev#QMi3m{u;X-(dYqNogP@(1 zpuf!Ug9xyMC@II~IJhB(s`M7pgS^z!dQKCmm34-x& zUn`=Pp&RAZ0COo}|m4PD* zjeITVTBHllSwY(WoKOMnudKrr;J;;TcVw_%uOluAtVLx^j2Fu{Y?f=@X_{nuZSyVt zM>Q7O1(+sap-YNtF*7odTPB)`W&xc$XUsweRMP^5u^UGx&yMvq3p4^BcCf{(M2qWtizgmMP;`vLkV&4N|c9~ z5k-R*+JkI#(V?In+lF_D1$HsCfBj}BDee!wQv1Tq^_G-dq2dHa|G-UD(*RR_xBGyHjaNJT}bFFE1)4WwM_LqKW&G!@QG$h>Zt*%bqQ^F~lw=D| zWVWs@NvGRy+h%!xs$-c>sbeFNE#Rb?y{V4u*v2Lr{gkO7)eV6PKK+%nMs>#9n282_ ztTq~q_ViASDRKeCI8Afi{i5yXHndgKoqhH^baa>Vn0c_x!E)-8dEoN7`7;5vu+urY+ZpA-^^E8$sDM5>5Mj!>i79t3w8p*@`xW;%p=n77BMnmbN zvxC0SZintSY^CCY!QiPgYGW=f4^Kaq?v&j=6jBmPSo`94FkpAKO>NE~T4(+QV5x=o zpjxm)m`BfmyoZ%O-!FbQrPj%lwJwu`6B;+qU-KIy_6_(srQN?6g`x9 zWvSy`0D+@qQ=QG-kZ(F)FD0l9GFb&tbGPEm8)+L6p%43?Xh@KyUXp244Jw*Ka{wt_ z*YD9o`Sc>>Uje?(h{pZWRGRJheP6a9MMP_W#}v!B^;**poUZ0IwBVXfvWQ{k=(WxY zZj624eor%M-nN6qt_((D1d1cHEIj=1xkXNhYtcNzY*S-c%{O+{%rxA|#?o^+Xw#9z zN_2wx>OUn?+ZWizp=Mj<%CNa0#-W!G@Gv48iuAGqUT27#`N?tHF^zTH$NrE6YhW|V z>6Bo?A5_af{1KDW;XyonNU;+$Yf|nKU|xC`cn!1k2Az4UMA4TdCutO$*wf7dU1RFz zG=|J41DRrjZ26%xulM!G7Vy1?|Gk*x7^Aq^??*pU9at(3q1OuX8K#d~J&&fnV+ap3 zOqJF}m`Xbsr7B#!;oLAh6k_sSmsQc(GOc$O$bPrfmVdg3FaJ?}nS zl*{iF(%j7;Lis~uPi5m|S3oA40lF*+;H!Un%tbC;0Tn>>7R%;Y`YFB8kH3PIRFzp4H3JQ)RwhZXaAfLXx+%RfsZK9=z6njnk1qlgz zY*xl{UnKR8=Zj!%Kg%wViP2=-3nFAsT5 z&sd?j4_!5v6B7AjuWz}sB2oZCdL*iA7nZ;@HuRt3iX+9!vuLMd1{71nvdtVv_s7T8CJwm$>*){~dynO#TBQ{r4F(OSqbKXm$c2Ckp zh4Fr;@k!d5;m5!vJ2r8sG1*-zT|Q->&veBYP-fJ$a`%8+nfbUck8Qau3D)L7ir`uj z4j>%5>m%%wls!T_=9==0kD$FAO4GJ&|9nmsurfWy(7h@`*%Sqc18Wd8PIej-@`!N? zC9ZBQ#q#<$87TZ9nR43_l*HB)+NC4XLlGiGe+Tu`K7`?8Ye9vME@s&=w@uKEu0gQ)9@~R7=WiA6?3>tf%I5F6za|dtjzPL6Ka3se z!!yCJc<8r@9!7FdL~E?(h9RZBoW6C(lO-aIR#UsgP```%s@fFy zL0829Ui2{k(*m-oxoMJz*V%Egs)Cjqd*j^FLHYx>lfe&Z+|S0&LRRU_^dk3k@+%2N z*$GI&9PA0BH~PV4!e6u2zVEulpC`9~ko~yx7MCv3ZK3%k?6i@9rs;Ao_Db?k+1Xhv z0`hyJFAs-La!8TXxi^HC7M3>>Ul9WV5&a*0!SAwYOv6>LCNohh*tT9V5mP}ae1D_` zC*1kSBHOjZNi1k8CcQ;9-m_2^Bm7PeQno*6=|IQp6*^L?F(3V5V%flPz&A=!@wkLJIcGE@)=W6B}pGNomBGT zLL0`iQDGBg))V5}UWpfDKV1g+V{OgI%;3vsH5O9iFpP}P3=)v=_cLnNTd_FOS}8zn!i+Y87>%9hJL zi6pSq=%Ki)keYb4hv)wX-ylE9J8Ec->wj36Bf9I zE_bpBnbf?Al^%IxgfS4E(v*K!>4=F8y3D!S5<{~Dxp#Z_o&tR%v94KU&|vv(W=+-y)5{nZ=zhW{AMxg4iPLvk34= z3HeKrVhKCo74Ryi^=XLKus8<<3B2I)Z8|3PGN37PvbsA)40d@S0P~))e1q(~ulMvk zFDS0a(%Hzf^aT3;RaB|Bso`n+K3Fs5cdj7Eg~nWQHmh2zw?qv+wu)G}D$P3361MwP zl1Bc+oW2>g@w{_*8M7=1uk8PgXZb+G-~7Lyhvp(;?8i(okq$Y(|`^%zmjB6QEbu$jbc12Cr%HG6+lbhW8~ ziyQqT)~|k@q7t{yNIqKNc~EqZ;U~JJoD~K~q#As?zgCdf98rbn99472*u1WMytzD* zn*=}dslbp47tpKsxBHK>A?4Xx=mxR;>i(CqWa2%krRSYUG*KOVWtK-U-{TiR+K{@2=nL&)hIH z-FSg(z#HSTp6j1S=R?d5HwOmoY3aWdYzk&hc~6W*YW~ch4D(x2TF*f4ki47KZK$kd7z|IzO< zAV{rEE(8q>N@yrIIlkA&B%7;$vv(*!Co;EZ5+sx&dQLD}M5{|g;~SX6q-;9LLSZg~ zA_cGYiPnv=b9~Qc!@i&>XL8!{s=^q_UA0~126rPA>>w)$Q%-?Rikb!-q&S>NrcuxQ zt$8X72<(6IlS1A|{_FG{pvMoLN1EebG=n=9ldIvj4Cu-px&1rCS*umOC&))z(t=PNfz*v^{o`Ys1ITm;^z`8X!E{i_bZS>m2MwH0=dqbFaW{Mx%{^IzQRAS-O4eF=`rD98k~?qX znGvUW%zEuVLV-AJH~5UA4}%m7>w9wg73x7`nWcH1o31MH2|?A|fKj`29C}UmwVPd= zj`r#c((-3cojn44jt1iD+&{PDNyaq#t%Uq{6QjqodNh~w`uP;zBBRt#wc^>D!N=){ zfWJ}=8yb$;6P^OnS09mka3$Jw8UIAGjE%7-Ug%G$_uUv+8&;?F`ox76oqQ3YhJP{?VzMI;_njz@K^fmRdfAXxeQ+uEf_{{^yMXhN(IM@hdoE`r=5*LPf9575QDs_Lp3?jLb(0vJks+D&zV|A1-<->7GK>_*=SNWla!Pe58h{vMa}Sg zh~IkAM!Cl=1v@lsXOk795U9|-8|L;v)$_ToZ!ZopCqgl%4*!b%uv8W?lVuA?2;BgG z>7wksCN7I;a~EY)C}4%&<5q#)&cmm#N9V2kbW-kK_Bt)f-#z3@eV0518CWF}CU%wU zW^}1;#%b)y2ON_i?WAp)Mon#I9dun)a+^oX9p>Rfh8S4Z6V}lY9}2mpG>IpXC|N}f z;RP?kI;mcJx`}BQx3vVH&jsbbzOw-TO1@H_va?0+hOmUoN^6;($yA6k_eAZ`= zzGmba(+qG1tF=kCS7C=Rc#jYY!fKlniu(C+cjuV64xmLb_~bsRvpc(W){vFwCvonk zA6!jAvPwq^NiS5l*pB8fl~FW&k$bl2@%GR~u><{3>)^@I<~vN1CO^8 z0*&e$S&E%ToQb?OAqGPKrN$;H#vvRL@=SCqE&47fWGB4H(L+V(0nr4lqAvb3GhWLu zjsN)B6LQm!@xAg!GPUnZ+oV5t(Gdz+oLEdNf}4Hq>v# zz)Dk#uMHSzLI6b|#Gpgqh0f_D$K@)`&rG*|ZpvZF|5%`7(nm-^M{kp5LJetGi-7Ac zo&3UfByAOEdWE*(Bb5Izoad{k3OVwpEI26GvD`O|x~jR2U{BOv))-AhpVZM3NN3Wv z0Fm$(aSdearip$7t5`kTMc8BtCU>5g1&gyHGO(yUB4L|(V4;7$y&(eA#DS4Q%kq(~ z#mLxv@_Gz;8Hd(Q8SE0P$4+V+>2kk>A;Z$6!2Cqk>sw`zjiOFpCU01)j(9 z8`0o&WQ>F%m4UPuC*yUvk~_QVNc$90Rfu7`r0-z{ahr+Bk^yB(K=+Ax7dETxOq+vW zxZF73-Ez+Il-S&k!Wp$2=qL|Bu1hSQ2Rt3N2L(+J zxB@2_Mt3IBn0dAU!SfJi;*<*m&SrY#j*Sl_*@s}5SkoEtd=kUog1HtUlbYVdp6=5+ z2|E;}tYDVQF9#f|vx!ILSV5F3?5c(g*vO%#)ytIR)blE~*(Jux3*44(L0@T|tN&5O z4hEuySHCHO1q2N7hR)A`XpXZsm(5qh9hmHbdP5?}2gDz8_IRm@meBaMC_O4KD7&9- zibgGB$2{dV5=^%Gfnmvl-+-%$52g5L{|R=*co4)o(Q&nG!dU`*VM33pIMUPnCP5&H zn$G~p>DM0Ozuc$AIpo;Z%0J6t%C#ua)v^Fma6X*Isnfdt z>uixXSU6Lh5I1YXqnB_@{)MLMRpmvQHpmYtc%M-VP!;plcugWUGL+H?beI~d-D~lJ zeJ~U^9GWmDQSX~7#qULvbaLP37`AnLP5SGD7S%CNT%6|VdFqy;cKz;bb;{MHdMAJ=bh zIV>5#yJ!iM0U3~;I(F-@Hy4A(NR63>p~K9ex&G{5<82Z11kcm+NI_U|zt0)KoAy4CJ+j0GOaQvi8j}43*yrj!vsApr%EiTIxdE+MZt!SUW)+r5dk-Gj z7zB>ty9_YelR{YZt}_p}lC27S=driC-}dR5UkUfk@nVLu@YQ<5Ak=z?%3ay?vxvso zU^!MePfO{+T2lc>m0A5U0A53Tk@todIl4wISJN7pHw%kzeO9$w?zh!_bl%AA^fXVu&Xh-_0b6vr_)%Ha;|_UP6V!)~<-815@RLHE;CI#Zb0%u3xx z6?%`))Poj(X{>dlmsJmo$Ks;LK+Z1>^6$Jt(aC|SwCME`TG24X+qm)@=x@nMT~5f? z>kUJlkgiI^aOt)#55ODcbyx(!APpr6^-hr3qTOs&1^G8ifw94;Tj5NLfei|QV^+xT zSSbFTpV8ffkrZ>D-X*39PNbpuZGeyn{`oQa)ExqLSBO-I<;J2Ldxk5oY$hA_m+>WI zXinzQ;3%zC@Gptg?^2CagR(mCj`V5MMpIRT-^B*BV~6@TESP(7wIdSZGV#AU0@zau zXVlDc`Mj@CEp<%h4QVvF+*2^2POi)uiB%xlT%7go1*Vt6JBpRK|uF0 zsm#DfNf5D|)ee27&py(N%B>~C|6I?5_s>>L^8H0wP<7eK-;9o=gQ z=lV|ei*Tw*F8YE)l*e7o_Sstc%y+vmQ(?igwFg@fbG|0JuLIoiQtkoZQKNDMvtcCu zJPD_70Xz8w-X6(niiy#_&4{#$Yh%8fRc7)o!24|J;sMY~BWVa0d;v(->J2^D|43_} z)2iOPlenY-KSXoBZk(Gxv-J@StV+@#9jy4y4aW|d<*0aX2n*wc?GJ)%z}T< z=#m%R%#lKHhhe461!kUpwgfuv*&>)c~)2yfq`%1?@w+ zwpH41!dMS=+k3g!lFoJCqSc?bM=F8q^fU9$KFxaBXRyKCPqL=Faabx+;-)&<)mvTKL=JOv;Y z@D#b9{>cNlzy894YqrU?uCh0SrS7#5x7@x$pMlRT8ctxC`6r_B)|Nxkt-hCc^;=%r zI@H4`8$=Gx9RyTkpac0isYM)Kh8FfX%K&&~*sd0`34L{I^%#_361y#4_?eM_(~8D) z(@B>V0)A1_{#|GwZ@f4PyIBUTgo4e2w6$ug;@mP*=-R_d2Txjw1oulgxYKHFaYPfN zmONMjl!ARG{qk3^X}b`a=>WV-`peRCbtaf0Ze{c1>tZOUi~fG5hW}*Yncqx(BVWI6 zf+-nvaXIk0{%%Y?@PE}yQ~vsC11{SI~BDIV$C%{@ZoBHvt52$ zUg`d|kb2XyR8Z57!fEsdv}b(ZRQvvcr7}q!dXq#j0O3MW9?9KE(R%-;Srctdk7+6~;-LCc&*q(>+K z1UCU(=75K17vBFk6gwd}JDZNI z5gbECijrL8Q+7Z|5%6*rdLibw9#c@Qu4mYs?SmqTHF=BZ!6TgUUaSpZsZ}>oJRaH@ z==Gp6Lh)W$41b{ch_ne7Lj}|iRR8Ia^u3czwY^I$Z;uHUP0c}H%Z~JKhloe&1KUil zy5pS_H%gUguv{+HgoF%la_!#EI|5=Zr5=*=8(lG}E{_Z=#FGC%J-a0e1rVZau<#`= zKIMb@`sM*i^uN^TASzWNT?udy*=WW00}-FBY>l^of_g>UZ)oG2;V3J6Oh3N6vb?*5 zCRjwdS6j586yRZ571-&v@Rr6Pvi!=-4?@$G`T3wQee>gIrE*lhpi|>-#K%HNmV}$Q zL!lS9%=O0bYc+;-h7l>c36QWlNN@Y)Mxocof3%MDvsIxKn#ax-Kh`v_5Qq7DA`luC zlN-Lggt(m)6KTmSvWaK%)%w4=KsNxWrR0)r+v%f^$q<_uO#}W%C#CJ5A*5lf2vGAI zHz1}T-0OKO57n(7f~l;`f;DhZ=DaLS_ghy=U+`RW@|9Tp&Ixhw(r`RaxM>MKuUuhy zj|_|guGXnxBPx?}Tm0Uiaf;}-IK&O|_FNQ5>aH+QMX9w%!2)*ig=gDjN`*u0XkJ_Y z15Z!<7R_?!Xxb?(M5S)Nzu4>|?L`=@yJ|wAhjYH@{eHG@7t`fYjs=`$lM7;QQ$DflIh{G5zYsIg}L(qI>#=D=CQ5?vH>`V?n{#<%{5 zeY7&g`(gy!l4#n`hiYs5NU4}#$54=-$$VS6yno&B){wkcHEB9;u3tm)A4cr>Ourny z_E_0&ukXi4edr#+G(zQT<}c0&a)0vi-bz)2q%(~0aS2upWakP$!t9)f(RXNCFPG1HC{8unfQ4ta-; zQ7#eq0M2L@B_$bvw?zu|YZeNunBM5xOF^ zYv7fCGWNEa7IeOvZ|_0PdhF!}V)?iHPxyrfQ$O>CZdYevRE+8O*bJ7G*-zD}F_M;k zW7R+@_b{z`G4u5;*4tkQ%7(KKHRW(+tj`An8bn^RSeJCTB?dfgvOe+>B2dlfM=_P$ zT?77;I8Cwf9DLRc>&Dx9sr9ynPU}Zv_5253meUnV%+y6>d71A2LE3@SsACD#q>g^r za3iI|8lGexr9ST@xbx-0U<#ds9nfn6dAbgWTC1Zn9OOBIkFPQ7m1$*_2@DE=NK|6@-jA`5rg_;3YM|Tuqpjz1ZiSvwkZn z>@H(F^wz@0;nfUK>7N_0@oZRal}mBtRmx5G^JSf@@&A%}7Rbf2(7qN80QpJ#BT9&^ zv`}#fPFqh@-lZAfuAO6fxXXVNl#7MrB@mlBeYzaB1TgFXpm!vyhu7oIG96@i$P}Eh zk1nYZ2!mLb+&`YKIJ5C*7h&lf5Quxg7iSlk=w;9M>-FHL=GeoRQfMTMKLl_s#7aU+iYo5}WQy-KGU*8$cl+ssvzN4YJMs>vp&bUc64udWjN%XjW;e_TU1gS*aLK3lH}<&PcBq=3*TDlFpb=4<*ER7H(F?|@#jC85mf zWn*#$VC(>r@Setnrj8y)wBN0nXuF{*61BwcJJk|ri+Eb3$ZR>D!yh$!gm82bFRRLu z>(#%gIsuf8xrg#+#~z2g&W(mZ@KQg<VoLbZg(9XGePfe|CD&FW<;DPSTR4QY@3xX{P2$ zhCB~ik*f;Joq=NJFc8p302R@FU^*dmCBlyODU(v?Qdk+vE#=l^CAgpF3c$alDU4|`XPIlk}K zcd0BX7O7sBx68Z4l;$8u_p7aBzUE@%VN~S@^N|0QK@#da4l6`KGn}>|o}%kjpSZdJ z(8_+aHD!Uwg5A(mA!C-GbbvwVbzmUm9Z!5qpu@QUnR(L%cYRhkU6Nq)7V@sdKl@Ql zzJjH_xx;S;lWC3xjIU<@rU>*)X(>riT<@_}nx4Edu%+aHaNFeaWoa?oF zq>%wUNeLCN0shGkaa82>w>S=RB&VK3F?u4QX!-@~<~)4GyNTuPy$Ee7_{*#mvZ=vmkwwvdPiG7H%u>8zk^k2mJe@NJfx|$GLz#GZmCW>c%t88 z3AT;n^qG*h#f~nwUNBet56qCRGkW1M?(!vyCNg2=Ha{6?7Eb_hJ&o-P z9q^thIA~C<6hLw~;ITYXkvm?YBL52NMO|at=BhB7X$j2&?zOnHH#kL&ZGJITopY1; z+l?{ImGNEh^M=S+7sW_A)A!i+;sw3RTppRo@Ik68ClUR=ON~%Jv9^h~{!j(@NhFEC z5AolVBWi0fJH~N4rDVN|`EjmJvr~v;Zq71mfah^owSYb+V$aaG1yR0SF%JRT!m9W8 z6*(VC-Su+Y#yh_6lRU$(hu*uf!zCsQ*ft0AzL#k97y)aM)r zzlG&|*LZ{iREe2FCZ*^qG?Kxl?P@!8WZ!TOR3+J3nN8K4V0*cG5`eID zxm#hFeoJG4)8`h?*_ElKf_`Nvi0FsA0H6E~Y#r#tT5wvBei*BY(lY$<= zm=4u6+>-9^PU43IM#16HKZ%aPfWo$ zW2M)-Jtjk6{)E!-3q50q*f(S#=ledofr4TfB**=xNEw5GeXA#kO}*AOZGG#uYXx*i zC3aKKyrD1CutWc#vXO6==>sl;0XVuXbo0p{6B<44TEQdz-nP|UdkkliZ;zpB>TIb{ z%T{3`kRRpa_TTPk>O4vm-kVE`>7A~e(E)r04qZO~MWt)Pwdx4N3K02WgDDNo4* zXdADEruv|de@)|~+=MIe-Iw!McI*F^!z4d;Y8PoP77tYdg2hb2%on_kJ%;dc!=gkd z*@=07H!k|1mee0(nFs<<$|G4pn~d9~!2s7mer+>+E^Zzlem&&XYug^>aQ0s4`qvJQ zHBKNdBG0!Rg9gzuhb@PM&5i@Y?#46g*JgzHYx9+Ex9SUTViy8IX$YNMRR{=C~0)AB+Bnxn{~))>@MToG`H_c~mc;y;2T8G0$2V+k5jmd<5LM0DP8Dr|bKx zeK^P%3g(m^YC);yhkzWjjARTto+5_@ks>8z~nY9NvFsMv{a&;?i{6p*QZ$ZE%gDPk|afpi^mRK zq%w0mNUn)U-BrrX0L8|eDdp#y5VV~FzCL*j@2N`63cdeM02b^&(FI@9xHJ+4U?l|l zECc`ytS1is5oM*9QsXv&!?4a(wP>d0Z9#BnVwkD~l%|Ju4+3lDRIYy?sb-EHkFZ1R zkU_IJ-HxvY$)f&n&=u-)FVS7}9CQRZm}fV*i~Hl(V?%74tZ^G(CBNNUN)IkT`H+-4OWz6EH4+6In>+oWbS!H4ACm`-J( zBt)ZOM1PXlZB*Fc0Zg^{%GimWaZ}pveOplt`kBt()gB-R11AC2uqcT1im#@I+X@S{ zHyM}U1CP)ccbuzBo^~q00yD@lqh9x)fhv#?^p_>~pbx-vc6rY$5006R(_X_|3 literal 2286 zcmbtUc~nz(77oK&)KDmk7R6K!MwaA}uq81G1q7sR5FrABs4p)sB;;iwd65JJQQJxj zvRR=51uQctgCb5*5QHwm6cv#wBdAcN0xl>bpp3HEm%xeG(?8}+&&fL{_x`^7-Tj7# z1O*M7;c!ub{$Y_}v}ki24rhdYhjl+pLx{%2+*P=53|tCu1vvKRb$Njm6(4*Rn?<7; z8&!_lIa@q#k`c~v-JaR0s8oEL_Dvj3h6 z!yhUO*h97unAD$$Ctmda<%HrykXT+GNXL<+XctChQ`sm zXKGAc@zZCFJEnef5|H5K_a6G}=0gk`ZzKP#@i z^N#MLN-4U%_VDEWdu91ZI&SWD@d{kzWU=~uZHUGY2#3y2-nHSEh-3O%mt9Wq^>yGp zztEIFastS(i#!`=x3Tvl6V1}S*H_a6+8|fu^0h)&Avb!CTSvIoo6h(;kHpT)`8R1` zHDlbxNZ^}Ua>e12r{@jca0L(>Z8j#hFF7a_4}8aN`WvVBM}dz&`^od-6aEjHoXQM| z4OPyuV~w|uzQ1+NGiBk>#riJ?K28?2$z;L5vf9e4W;PpD@QjLuw&ktE1rcO?Mz`zk zvR_B?QaaYQuZga+NlCoe)UiI75%zt5rg`e9C9UUROshW8iE6}9$HeP%eG!KhuETeLMTV#A}vVRB~c?&2e4fjyZVy zn9$wvG0U3Wh7FXP?`Afze1Sr5=B38Gf8J7;Yi^sA`X^ZqL*u9X>c3uDhiqD@nckh{ zoG^E9hXysg^ZZcFzKq>Jnh()}3V7{BX8fd`hGfg0_3ba4U0+&$lRMNQ{^kC*>-{U+ zokENA4Q@$Kwl=5A_QV8OzA)?*2s;bPE5m(+bDv6`Pc@Vr4ZKV~kbUm7cucO&wLCV6 zJ64z8$}LA;^#+Fo`5WI{+WqaWf$n&Yk@>rLgB=O>52tBqWoCsPS?^?-a<0S<+zjd5 zHX75nRUABfH&B&VnZgbD9sqt|) zi8!G{ezmLQ^UH&qCgWWkx3^nZIWP(WqMFZ}E%jB`r~KSx)j8+y>G&biVLXv2T$kUQ zz4M1i{K$TKb~rrt_*qG)%?sMS4QZ$URk=EQ$odv=oPLmsL)JJPui$t+bSdBWI=&|O z(NN{%ptzqYHc8lx!QrAgVT5?>zA$~&au5>3D1isZi=-^#)28o<1QDM_jPl~RbL0WA zP_!{w0Y@Z%C5TkXP_u|2U&ezO*nh1WAYvc|U%&|8 z5VQcnBomk8t__PoV9w(i zete}?oOcodC+dWG2@&Z$$w7q@=4#|Hix>_oWhw;(>lm~~3nT#w7(`({o9a%bkSJ6V zg~kN_@TB$e#vo9QhVa=QG@2*HgGMKTRBw>v>FG%$(P-Xuk_YS!38;{VkGGFNPc(1x zHcb!@WAUPTQN6wB6iEKwDizG+z{*uuv7f z#eB);fs5Mmzqg7H>Dwe%DG=QV@F4(3UH!}P!Wp2Z(8Jspl`Pbn>_{s zO5<5XHHi-kKox=#*%Fmf1gQxm0*LTb5(20|333F4V4)1*!-_x2ae { - if (state.queue.value[0]._id.$oid !== song_list.value[0]._id.$oid) { - const new_queue = song_list.value; - localStorage.setItem("queue", JSON.stringify(new_queue)); - state.queue.value = new_queue; - } - - state.current.value = song; - localStorage.setItem("current", JSON.stringify(song)); - }; + function updateQueue(song){ + perks.updateQueue(song) + } const searchSongs = computed(() => { const songs = []; if (search_query.value.length > 2) { state.loading.value = true; - + for (let i = 0; i < song_list.value.length; i++) { if ( song_list.value[i].title @@ -162,7 +155,7 @@ export default { width: 3rem; height: 3rem; margin-right: 1rem; - background-image: url(../../assets/icons/file.svg); + background-image: url(../../assets/images/null.webp); display: grid; place-items: center; } diff --git a/src/components/SongItem.vue b/src/components/SongItem.vue index b87bee50..030487e9 100644 --- a/src/components/SongItem.vue +++ b/src/components/SongItem.vue @@ -3,7 +3,7 @@
import perks from "@/composables/perks.js"; import state from "@/composables/state.js"; -import audio from "@/composables/playAudio.js" export default { props: ["song", "current", "songTitleWidth", "minWidth"], @@ -69,7 +68,6 @@ export default { putCommas: perks.putCommas, emitUpdate, is_playing: state.is_playing, - playAudio: audio.playAudio }; }, }; diff --git a/src/composables/perks.js b/src/composables/perks.js index 8278ddaa..e0960dea 100644 --- a/src/composables/perks.js +++ b/src/composables/perks.js @@ -80,6 +80,19 @@ const readQueue = () => { } }; +const updateQueue = async (song) => { + playAudio.playAudio(song.filepath) + + if (state.queue.value[0]._id.$oid !== state.song_list.value[0]._id.$oid) { + const new_queue = state.song_list.value; + localStorage.setItem("queue", JSON.stringify(new_queue)); + state.queue.value = new_queue; + } + + state.current.value = song; + localStorage.setItem("current", JSON.stringify(song)); +}; + function focusCurrent() { const elem = document.getElementsByClassName("currentInQueue")[0]; @@ -92,21 +105,21 @@ function focusCurrent() { } } -function getElem(identifier, type){ - switch(type){ +function getElem(identifier, type) { + switch (type) { case "class": { - return document.getElementsByClassName(identifier)[0] + return document.getElementsByClassName(identifier)[0]; } case "id": { - return document.getElementById(identifier) + return document.getElementById(identifier); } } } function focusSearchBox() { - const elem = getElem('search', 'id') + const elem = getElem("search", "id"); - elem.focus() + elem.focus(); } setTimeout(() => { @@ -135,7 +148,7 @@ window.addEventListener("keydown", (e) => { setTimeout(() => { key_down_fired = false; }, 1000); - + playAudio.playNext(); } } @@ -151,7 +164,6 @@ window.addEventListener("keydown", (e) => { setTimeout(() => { key_down_fired = false; }, 1000); - } } @@ -174,7 +186,7 @@ window.addEventListener("keydown", (e) => { if (!key_down_fired) { if (!ctrlKey) return; e.preventDefault(); - focusSearchBox() + focusSearchBox(); key_down_fired = true; } @@ -190,6 +202,7 @@ export default { putCommas, readQueue, focusCurrent, + updateQueue, current, queue, next, diff --git a/src/composables/state.js b/src/composables/state.js index d4b0318a..61b7b94b 100644 --- a/src/composables/state.js +++ b/src/composables/state.js @@ -12,6 +12,9 @@ const queue = ref([ }, ]); +const song_list = ref([]) +const folder_list = ref([]) + const current = ref({ title: "Nothing played yet", artists: ["... blah blah blah"], @@ -41,6 +44,8 @@ const search_artists = ref([]); export default { search_query, queue, + song_list, + folder_list, current, prev, filters, diff --git a/src/views/FolderView.vue b/src/views/FolderView.vue index d022684a..1c36fbce 100644 --- a/src/views/FolderView.vue +++ b/src/views/FolderView.vue @@ -1,7 +1,7 @@