From 0af8c4f953636cd3fbc8ca407c1723c8d436a1fe Mon Sep 17 00:00:00 2001 From: lqtmcstudio Date: Sat, 20 Jun 2026 22:05:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(chore):=20=E9=87=8D=E6=9E=84UI=E3=80=81?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=8A=9F=E8=83=BD=20-=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95(=E6=94=AF=E6=8C=81=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95)=20-=20=E4=B8=80=E8=B5=B7=E5=90=AC=20-=20?= =?UTF-8?q?=E5=90=AC=E6=AD=8C=E8=B6=B3=E8=BF=B9=20-=20=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C=20-=20=E6=9C=AC=E5=9C=B0=E9=9F=B3=E4=B9=90=20-=20?= =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE=20-=20=E4=BA=91=E6=AD=8C=E5=8D=95/?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E6=AD=8C=E5=8D=95=20-=20=E6=AD=8C=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA=20-=20=E5=96=9C=E6=AC=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- native/taglib_reader/build.ps1 | 54 + .../taglib_reader/build/taglib_reader_cli.exe | Bin 0 -> 794112 bytes native/taglib_reader/taglib_reader_cli.cpp | 403 +++++ package-lock.json | 217 ++- package.json | 6 + src/main/authStore.ts | 380 +++++ src/main/index.ts | 312 ++++ src/main/localMusicStore.ts | 235 +++ src/main/playlistStore.ts | 412 +++++ src/main/pluginSystem.ts | 108 ++ src/main/settingsStore.ts | 7 +- src/preload/index.ts | 86 ++ src/renderer/src/App.vue | 52 +- src/renderer/src/assets/long_width_bg.png | Bin 0 -> 703818 bytes .../src/components/FullScreenPlayer.vue | 54 +- src/renderer/src/components/LoginDialog.vue | 307 ++++ src/renderer/src/components/Settings.vue | 243 ++- src/renderer/src/components/Sidebar.vue | 709 ++++++--- src/renderer/src/components/SongTile.vue | 425 ++++++ src/renderer/src/components/TopBar.vue | 472 +++--- .../src/components/player/MusicInfo.vue | 2 +- .../src/components/player/PlayerBar.vue | 1268 +++++++++++----- .../src/components/player/PlayerQueueList.vue | 299 ++++ .../src/components/player/TextMarquee.vue | 2 +- src/renderer/src/layout/MainLayout.vue | 32 +- src/renderer/src/main.ts | 40 + src/renderer/src/stores/auth.ts | 90 ++ src/renderer/src/stores/listenTogether.ts | 296 ++++ src/renderer/src/stores/player.ts | 356 ++++- src/renderer/src/stores/playlists.ts | 163 ++ src/renderer/src/stores/timeCalibrator.ts | 43 + src/renderer/src/styles/main.css | 58 +- src/renderer/src/styles/variables.css | 17 +- src/renderer/src/types/electron.d.ts | 203 ++- src/renderer/src/types/song.ts | 1 + src/renderer/src/utils/lyricUtil.ts | 31 +- src/renderer/src/views/Home.vue | 1072 +++++++++---- src/renderer/src/views/ListenRank.vue | 365 +++++ src/renderer/src/views/ListenStats.vue | 606 ++++++++ src/renderer/src/views/ListenTogether.vue | 579 +++++++ src/renderer/src/views/LocalMusic.vue | 689 ++++++++- src/renderer/src/views/Playlist.vue | 1338 ++++++++++++----- src/renderer/src/views/PlaylistSquare.vue | 393 +++++ src/renderer/src/views/Search.vue | 40 +- src/renderer/src/views/UserProfile.vue | 625 ++++++++ 45 files changed, 11420 insertions(+), 1670 deletions(-) create mode 100644 native/taglib_reader/build.ps1 create mode 100644 native/taglib_reader/build/taglib_reader_cli.exe create mode 100644 native/taglib_reader/taglib_reader_cli.cpp create mode 100644 src/main/authStore.ts create mode 100644 src/main/localMusicStore.ts create mode 100644 src/main/playlistStore.ts create mode 100644 src/renderer/src/assets/long_width_bg.png create mode 100644 src/renderer/src/components/LoginDialog.vue create mode 100644 src/renderer/src/components/SongTile.vue create mode 100644 src/renderer/src/components/player/PlayerQueueList.vue create mode 100644 src/renderer/src/stores/auth.ts create mode 100644 src/renderer/src/stores/listenTogether.ts create mode 100644 src/renderer/src/stores/playlists.ts create mode 100644 src/renderer/src/stores/timeCalibrator.ts create mode 100644 src/renderer/src/views/ListenRank.vue create mode 100644 src/renderer/src/views/ListenStats.vue create mode 100644 src/renderer/src/views/ListenTogether.vue create mode 100644 src/renderer/src/views/PlaylistSquare.vue create mode 100644 src/renderer/src/views/UserProfile.vue diff --git a/native/taglib_reader/build.ps1 b/native/taglib_reader/build.ps1 new file mode 100644 index 0000000..7e32353 --- /dev/null +++ b/native/taglib_reader/build.ps1 @@ -0,0 +1,54 @@ +$ErrorActionPreference = "Stop" + +$root = Split-Path -Parent $MyInvocation.MyCommand.Path +$repoRoot = Resolve-Path (Join-Path $root "..\..") +$outDir = Join-Path $root "build" +$cliObj = Join-Path $outDir "taglib_reader_cli.obj" +$cliOut = Join-Path $outDir "taglib_reader_cli.exe" + +$taglibRoot = "D:\1Music\taglib\taglib\build-win\install" +$taglibInclude = Join-Path $taglibRoot "include" +$utfcppInclude = Join-Path $taglibRoot "include\utf8cpp" +$taglibLib = Join-Path $taglibRoot "lib\tag.lib" + +foreach ($path in @($taglibInclude, $taglibLib)) { + if (!(Test-Path $path)) { + throw "Missing dependency: $path" + } +} + +New-Item -ItemType Directory -Force -Path $outDir | Out-Null + +$vsDevCmd = "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" +$cliClArgs = @( + "/nologo", + "/std:c++17", + "/EHsc", + "/MD", + "/O2", + "/DTAGLIB_STATIC", + "/I`"$taglibInclude`"", + "/I`"$utfcppInclude`"", + "/c", + "`"$(Join-Path $root "taglib_reader_cli.cpp")`"", + "/Fo`"$cliObj`"" +) -join " " + +$cliLinkArgs = @( + "/nologo", + "/OUT:`"$cliOut`"", + "`"$cliObj`"", + "`"$taglibLib`"", + "Advapi32.lib", + "Shell32.lib", + "Ole32.lib", + "User32.lib" +) -join " " + +$command = "`"$vsDevCmd`" -arch=x64 && cl $cliClArgs && link $cliLinkArgs" +& $env:ComSpec /d /c $command +if ($LASTEXITCODE -ne 0) { + throw "Native build failed with exit code $LASTEXITCODE" +} + +Write-Host "Built $cliOut" diff --git a/native/taglib_reader/build/taglib_reader_cli.exe b/native/taglib_reader/build/taglib_reader_cli.exe new file mode 100644 index 0000000000000000000000000000000000000000..5050b946afa5c2731adbec46382794846b5017cf GIT binary patch literal 794112 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

>{%us`8E?5TTNN39Lq@IE;i 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

5HDUE?EheF|lf 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

  • n_s2lYefRsnOS(C)S9VFFZGqHiTpz!<%EJPRMM)o{M&~<5+W57s1 z2Rub-QvbG__EOIX>(^DUhz5IN<8FL8S6leRs%}S4H)SmgXKG6r+fwO^;yx3 zF%OzzMc;BB>#Y=*bidju{T&c{8*C4mAk48%fZ-INOiG zf$$396~e1I;g^3I{G{!ek8NiwrWhvlJvvb%M0v)Mo-Nm*axu5%V&2Xz%Sn3TXT?O% z3%ps>0iQSZdEz$aH;eAw@>0kLmT!TKV2g51Ig@glCEr0rO12O8WOTru59t!&!*0Ub zVnbek6@*R)K>dU`aY`*Z8@7---Rf+d|D4^&(uVO=*nda3T$HgCVac^+WvHy$43r#Y zCY}~#ZkB`QS`OL25&N}f(5U5^%A13F zTx3&=I`9odYxfDQZCgTTEOgI@J!)H;2|eRS)Kc3+*d|jgA*?vlE_tKvXm9-f3qNvw zfQdh&r`f-u)#A4<%46aGGnFSm^9FvYeiXp-&;sR2&W2Lnr8>ng32=t^{qbe5+^vdu}7@{vRFcaN2*bJ&pgKP7C)Q z{)^+kiL`Lu%NMJCPvYMAv~cD4uNC1M*36{03I9zYoJxy(4gNcha7WYP-huzZ_-`uh zzsK?4QT(^i@7^ZK<9_;9{Elk(fOfZQw@JH|+Rf9hL%Z*NQ{w+hyN_u19_=2{?mq2q z)^1q4#oBdg_mnQzueJNQc5m12LGAWwcZ+r#wHwxMsdoL^b!hivv^V|U(e7*7eO9}V zYxjh9k7@T7?H$g?^f+rY4_u=%l{{}+oIioc7MB0-ruL)TJ64aiTrbQd$o2qX}3zde(io5k$7X;?bNPEyN`x- zxwN}kyEWR)*Y3xFv~-LQ6>w7Xfm z+q4_k?$z48Ub}Z_H9RFJ_lFw_}O@$lQ{*gKVJ1&#(#oFz`oJc>9_NU^v=>JoG zrQbJecVbSuPw4Q+wfmxee@d74i2mQNFOeyh7byt}_M9KLjIBob~2Z&K>}c(-c)yVgzW|1s9IwRW_3 zwzc>4?Aj{vE|0Y0%}w;Cr>pnM{_SmDeSN$7re8+a*49y~e@P*B?dfmZwXLnMz4ywl zc_H#M*X-%t+P>$??fq?C`?hw)`@47brb4xCKrXwH#y9ux<_y|)w#QR1DGw_8b$EYS zckjIS4g6g%*w(att*igao?RVW{`Q`(Fg}AEu7Qgq(Y28l`ta_Z@$f2axi>+2eocGN zRqgwCxApGYx~q3@cu8s*t&MQ$KFV0r-5Xw0q=SU(>Nd8m@7Uen z-rv<94oe;sxFNDOlKzHDzY716ixSj*m7gPAYhN|jpw9mPP4r7t&%3vGZ~N2Ijp)L1 z0e>uYy0!hY()wnk?d$kBd}GVD_N}N8UGrsO`m4MwOnoF|TeIfRx_9kfsCJ*sSaapB zU7g|6yjE9ctl8Gne&y~30yLl@)x+kR-Ch0L=Dm(Y8n}DZWUjfYyR(1$yZ~t3bx2_K z>E1{1zHJ?f{}mcjYl_e_y0^CN?(ger-`TNeTexl`y2SSOzPA3p_U``O;X3IFf-j*_ zht$7IWA1at-KgUxP%~ZqG$21`0@NATL|Ud>0_FHMYAL>_|4&E?^~gPTQc|FS@VRP& z=AX88GzPdb)%uJzT^;RPzx8?3xdb0Yqlnu4Db!57zwZkqQDd%&^HBesUz1*nuOW>u zR*ER<;tPI=`WEVDS|k*rF@8C|BMR)vj`QO;R zZQpdu{ZX;GgJH}%Ks#2X+We1>2~xWSV>DV3p(j+Rke;i;f8m?{N0`g&yLZLArni#l)*IWpchMX{1!}vD z>HiO~djq{b^KGBq<9Vde6x|xZ9%h=1rkeT$W!wMxX$wk>cPkI_x1~>GpQAW5Zn?7c zvZ2nwj&EDfuB)bN`*S2l#d!gx*}m&4RPFxHO)kk2M%4IUV0>@vMKyhHnx19|;xbrB zq45jEe}~rf&bF<+{o(G;)DDzeG1L%IKSdAdL=~NB|6bM-nr`Qadcat-mA2=c#8;>1 z%Fh}Vm|c`QhPYr<{7G@IKs_|I_jc~u+1A;$w|na}FXa-d=k?!gxj4G2JQVEg=}}PG zS-+>Jzq@vSe^>La%ep(eF2-I|echgVY~D5f9(2k#yZSHQ)w_FFPuDm0^n=p480VP3 zQ5Rz`+uv2+-P3iMy2=0#g&x1zeRbE`ed@T`)YaZee<-z);;-%P{Khu%Zzn%JMt61h z_ILFmxN5UsMpFm}xIV{#lo+uDh>mYyYmk{g)|qhpoQ5x06#F?Uj;f`?r?YsNe5_?OjyUD+PSLdD{U4Eq1mx@az zq~e2tRl8q4kG}oJ45CWE(Yv*)w(H97Uh;Ie_n;otP1A2K-nBE{)76jKd=oX>(*-`$ zH=8b_UcYwVR!o`Qd+|y|wtjmLK6~DqQu}4?-|C9=^q>_xk@~LQmiE5x_6};DpJslu zr>iSI?+p@Bj?AY1o{QV#{d@Yl5TGB`p*-|oy|3NBeedMU$)l zmD$|Yx3jw!-7fW)`umJac5BbBzIyaXlr`GdwHwjYfO+YjuD<=zu0F1K)bPc-_E49D zVBx&fFX@DZn3;c@x1)P^;!m|a1OI}-*x$9YxqD|`$%Jbv$1=3e*>bZ zzd?!Wx;pk;d1Y5$sw7`u+q7YA<5$aM^qr^LzzXVYLrLUoAPFM>OmjHfw(g3fP7CM# z-`Ry}de?r)4zyjoZy!pz>#FIRB|dK({axSJzEgL=zH*W!XlrX~uG`<+zO#Gl#ptc- z&(+SZom+Rtm8#|^%4;<}?c9Z)R6|d@yZV)?P;GHkCYRgZM)-LTf4V`|0P`kZQpWn)5ZGt**AK+WU9! z>Q(9@)pli9zviR0VI|zw)z=o6d1SZhSKGGI)B!6AY8z7$O6^nI5M!&_&u)CzZuJ*x z8!@xg|Do<&;G~-W|Nq(hv=x&=2qVd&GF@bmI$dpS8Qm;4O_!}*Z8f%wr7#G&kA$R{ zt=(;RD~50UqGHgOs2C)RFsMYuAgnI>Ki}tkrnc>D#qaU|KOTRN$IJ88XW!@Zd4F!_ zoH;YIdzTt5Q>M<0-VI=Bdd%qUKO_f*Qsd zf9$Z)<{7S)8aCOygz10JQIjUz#FbT6`2&ji;u*M73)D>`Cz>vz3PCvH=o>anvS7^lyP)R3ZZeZ%21Z)P9*?t*zElk>;uOkG<+-Z4 ze`S`27s>z(k?fj zB0q1qulA4Y*1+kcU_$MHI>*aGooJrJY6l%!OHsl2F^7wgwQ{(hGon-S=u!PWvBtS} zK>Y2gdg)&6Fyu2+^7$9}&!_**Z@V-9i$$!Thd!~Wi&ciVp?O?LH82@3pOJ9zzdiA| zvkoq=X?O6yi*;PQ9{KEx{1^W`SG>F~JIw#O?NjH~Ej{{wuN&(6X!QDh`zFuc|9Km~ z9Bs93wJ)D>ku|OVGyfUSE6(^2Gp8QhuXa4|-+$$??mf*=yEyZWzM`VxH=A3;dUG#+ zNWJj~-WaU6UcCiszfY*@t8XNiuy~tNpVwt$7C0bFbuQR!^HK;?%uOjaJ}_i z-F=8Lpl_c(wPFw3em_s|%WB2i)+?84qi?T{Q##a&v=X+9=LU56$o#xfo`R8bt7Bg2 z>mF`*oH-u-Je_JcQg7Ul2}L6cCe{u$6S9jRJYHVXavL(9JJwOzHy0I*oM@XAHP{`0 zVBJlgG&<9oD!Vvt1h^^YWg2H;>xyseKj3ij1hwycAhh0ojGw^!%i|~TKJ&1m2@}R0 zbi@(r&x{A##c}5@7s-0ZL=v()ZV)%yeMfPm+&G!98R{EV`{M_XA3J`+P2+73vTN_M zJl-K6Uf7%W+I)Z~cnM`&gE@@0c@O4>;%IZX%R`PITvV7{Fn(;kE!!S9 zzTn2m<_pO9sO1&aSApH}{Wz!aTC^}vX3OZ^qhI!c-W(3+#V>Cw^B%hSAi|ol`sb}y{YUc_b?xd7 zo3A|fAYuMbwf{0_yYYfdXD(moF3a9zyIlQt%mI4cnaBf!o(4Ln5I^s z9!2|j>y2``aXZXx+tg;C=l<~;efX)UU7=lGyik}>#9j2HyfHjnsU2gZTAvp=Xtmns$^0BRa>9rkIv9f~;PtLNTNyU0 zfLBrDCyyJ(hky!=12@xF{|_F8qphEfI>mfMW%R1EXU!F2U$xm2yYV_S{~-g-o#!bk zn8Ius*1z_j)N1E!SD)Q|#*hvj>fUP9n@`^>X;8L&oqI4jz^*-;{JXW1XDadhb$9mH z$1_>^v2jRwyukxKJj(Xu7Kt?wZ&3g9K!f`??orlPC;x7(`tjkky6FxvAH{LW;Y7VZ z^LW?(!6EyP-Jhj7HTBNV5yx9Tfh9vQh^GYu@_6{m>pJ6*G0~YGU2xqT?Z#2x*BW(h z$?NS$zr0DqM-87eyoWrGsdJQV{YAX%Q^Z@&6YB)mvo5<&=7lv67~==U`*2`%|G|1@ z0mN6=;nu-Fn0A}l{s;Ng-e2^24ypfe#~;=B*xhZ`9vIu7$Fq;mj{SJp zwqJX_%6mmatm{?0MlM_CDOgs9ZPT37^jiLxN5@+_kb8ae*?p9CKQ1r(yLERLcgh>t zp~Hv^I?F3cyZN%|Z%>|m7j-Y%f5nOa+o=7r`QS{f89mDS`*J@M-~Qt3t@kMFt8;y^ zPd9!kvH$7Ok1vr2^{ezJ(W zPvVvTL9<UP%px4FOSACZHD{@3}`z8(y**|PC-jqT44ZQX7h zateI;`k9Dv<(M)1?|JH5N3|}!^*nvE-`{elQukS%T|V-bo!r>iJ%+Q3mwFlXgYInW zi!-{*v%*6k7}g)}>0Nt3>W%B?sr|Up_WWk{|LWmWJo0Jj_|)i4TW`JH2Ojij(=M(D zZ#`QNhRmD6_;xm%t8=(+&3=CL^Qoh%$}SIS@W9$Qs%j3Kk2Rg!$1bE8ptqy9Jb#s|Qzerq3?txV)S{i9EoO6}_FDPM_^^T|J|$;!~K zzW6=gzo^bOzj%GTKTtHh=;nV^tzCY$*Sp&1Q@Oqz?dFM}XaCVL@lAf<4#h4{bE6LQ z<>eJ0a{9F$Co{gziMrl;%@=KTg6mlyR=vK-6Aw+J{yh2)I_OkZUmh~d2A{$?DEM%B z)QPRHUL&X9K~>tt4X~~!atnH4=Zi*m?l9VY*!Q2TEBN7#vfp3bS`8UqIGI=G=H;vI z-IRF?d{phrRldH~?fQ3cyS;52vO8{Y`_A<>V>{p7TJ@hiZbV*@KIk&LhV0roI6vFN zY}*^$vBUo+zbpP-ezu3%=EpjjJaUqKigx2*?emTYFIemJYFqyi&tF6IJ07<8$M!$0 zdq%1^&p}0#^UMb=2W>CgJk5UfI`Vyrj_Y;kyS4WF$r`VGK5oNjg5!xFX1vV!e#7}J z*2J;H>l|R$&m)g-{6S#6@%Tkx{}aOfKiF^d)1QCUo?KhvZ+9Kik9gaM52~Ao9xmH? zJ97Vf6-@LM4!_yhzs~9oZak?WM~IKh zm*u-5a(gC26lH>zDd zGB)w;SNos?qhUXPN1Ttr@;t5A@JYjMZz$^dsa@~?LHo7l!|oB*)t#ib`rIM!dl_|m zzki{rHJx}qDd|chrmt9`9+NtwY?}+su@^tSA_1E`!?r7(m zI|=K%FY!yj{sNca8m{_G|CIx=T6! zMoT^I*1rdid|=(2?dI9`d{KM6IJL>jpjaT2=CxrbK zTQ@lNKieM^zdYHtTWkN+^Hj?|-&)5V@@ZGQ{?&@V(*CKHeLM8xkVjERsK3rrF8g|G z{}J=5^AzAH;_EyOu**y4t5@H?{f%A& z>qH;1{(*I$9@JO=A%WJmI@0<+&fBzd*poL=h?&MwZF}HaGXbV(Eg(j^IV3@1E1eFKN4=#H=%ax zMn7AaXm^lZ{E^2)*VxZ6jwZjJlleqgJrnY;#+To&pcfCWZU)v$wySqw-Wc-}=ys{t#mD#g!Jk;K zzy864`ea(SF7+R2*UsUNv5T+$d8qnYvO8{Y-|>_FNqoPt@ew<81nlbP+tYkfYf9db z35Ao#*?)b;_Izr)9&6p-T-}LnGJbqsq4~P;$gK?4;pQvg_>-RhWhHf2nO*-q6MTHT zqlj-C*7xlN`~9fz`H%W@5?9{D$G-V}fR+D&kNVq0@vDJ-zP9sK`+j(^*;3vp z`Lc>}bgjlW^uIZ@?%YWBcJtGF3SST5+vR*`Lf%3@?DvM^BVbq0QTN|$&^VfA>vsPi z9BJ2k`~G_-jFPYS9cI)RBYKHJCdzau%g@_P1Vzp>^W!XdHst(QK96NcA!A+yiNd^&a1 z^)tUke6-7^xAyx(zVy$x@Oc1c=vDCl5%_}?51>}3q^lr&56R!zi@;slt0qdFi=^BQ zuhrfQAJRSmS85-IJG76%Q;)Nbb-{kxd*H3w`{5GpL-0%Oqp)#P>sTkeRC@!C)7}T? zX&;0iXdi{?&GfPGV(kt1D4MZ4U4`J-la<;NNmqXOb_>Q~FMWsn86mZ7PXlGZGSr5? zhu|a^Kl`hJ^204Ci}D!keg=P51}}UNtxrogS%Ke*4?$N;%2U%#4#IE63+JFc_#kw& z;u!6sV5@T%TZ=q~Q@;Bb(@29l6 z(DL%PN#<%Vf4_x4wrj@7-$cpQ-UFXRPI8vNE%m%E7j8y=#zD9Z&5|*>NU07;=GTD7 zUQFBc%MDX6p)WOf*c)XKFZ82Mc;Pyfg^$ADk;DkyUHDxJDd{F}#ZSlk;j>8k6@p<@ z%^V5S_}ep4ys$5-!F%9ss1aixhQA`&gZvU1bs1_!xd$%m#`+=8Fg&F@YXI+pw;^fE z55Lf!Usj^dLsIUBqmcC72lt?C*1YP;T0-Ija21l62>b=fv8tC+J&=@p;2&8^6)M(7 zU-sAK#L(X$yeV6$#q23R{JB4Wf+>M@1%DpMI49!a<{|tYmEFuWyeo%sBR&8#hq7O& z(||WmW&q%AKz<_X4@awq%|MVR*( zZ1<#KDF(vhl*Nkry9@yXUbs@ah@PfkDn) z%&8B)fn;7Huty2!PsYIyUq_O27=DM$d4a}!YfOYUqiT*79=CvVA70oUDUS8PH<270 zfh|k*IRS1#KH74Yacx45eGN>Omn+o*FIkM|k!k`iK{{MN9F*j%YRBfVn7&7fwRk@xq>q=@&T*vru!q@G6vn z7cNJcc;P473%^0xl*izEOIRn;FL=}Qv`7Aa=nk=FC>QQT#gq##dx7PP7Z#%miHBjd zlX&6a7s-viAiN$m!+YU9OX&-99e~wH<{}CM%a}`!6*hXsno}qI1exctS2-u3>BI=1 zL9_9~bC!0n1T5Fz{(Btk<=-C4h_N!x1)T#@Yr|B1Mh^hk&JB+p7|d8h-v7fwLxc=Ck1ko+xZ^&|Ul8{>nIz#F!+Zt=p0 z(1Up4S`@?!f6-o;@Dt-hxdFGLQua;^7XQpV;{EWPUpN=@=P%u`1iA4cc;>I{K`DpJ zP%=IYKSky_2e$al^741+#v=3D3cu7|{(f3El5+W*ZHtk4?SSKcx8~OeOOWgl;bv6I zpUV{fhL+*gADmxN4PKb{CuMkM9#zxey=$SjAS?qUrzWgg)@ zdzcq|05;pp`oX*4{m6`mYqgKSzqMC?bI*e$#sjA!>6ahAsmmiUrpulCIF};Xj}h2b zC79=AH+(-KK{aEJBCwjjCE2M7xxu$n5>zYli9vU2f@%Eqf>6V!dq1eJ>qz+;;v zs8YPJHwxi}gU~9x7v9}8L9L~&0DPfYf?7{`7+!ol@vI*Mb~_VX~3W4`!1r3PGwqVz?z zNl-J;(&mgUT!*IPBXAFrdQ{s4bvly%8t^J4>tA>S>O}p*Cr}n%_%zDJ3xlW-FMJDy zXjk|LT7effZkM1UGPZCqlD32opq=C+d=xpzKL}q$5+gk2eA*>OcnOlR(JK--VM7ipipk|}y(k@KxWQ~av7G02_7Sk_3EJcx1 z(@my#W*y>%EzwTA8(xPb2QPd;`v6?7eHi|LWbX*mFXZpP@^|Njr=sR~Hyn$k9v}P) zDV`}sr99JGdp_9q(gao0f_V61ALf9VFr0Q-g38AS;LAwnF$~*fS@pQ#OUQ9L@i2xm zXjeF{uT_5lzKCRPgyFZ^J1391)$`rxxj@(;p> zS6Ov>V7mdFE6yQj=s|%D);TOiLA>xKvv<2l) zUALh;2wy5&7Vq(2Zm*2?tF|P+`h_ zFx#J?wzgyqz-IR_K8%|Sp7aR&`V2gL1ywWG5%^$$ai*;R3_MDFXFPlkZMuMaewaCv zHH{bcK#hp;z^unOo^lWT63MwS3J1<&3}t@dXULpic+BILcfzjP8*l)Uc^6)XR(DD_ z`5}HIUU>Qw$~7ESt-kBqjt`l{4<`7*F_61?6oSLpY(znqMFMaS>~R zJY(?XSGZ1eARew?o}jv%%e<^eP(6{%sRy3*I@bbX+;A0|)`oak`UYb~c?f>{CUZ=A z49E;tCuUiQMTki4dj!v0%1XI@DDaNIV|ftln9mm`_$ zFuZUFb4`o^pG4*wfVn?&o|j|crWj+0k3r`zdfed3-EGP95Fds~`xu8t=_W73 z`zRL+vD@aeAT(_M$D=u%T7I6JDad0q;jLRsmRoO37JRfkJrUHna*aG#VwU zYP@h9+KTtV4viC4bJ`LnA48pZ;VH<#yWn}qgBN~#Ed9X?Uu=@7it)n#q5wW{T%y|1 zG*LC`!rF%Yj<>uAjzL{$SGWje4|D~S8{-Vx)N0uUY(Js zoXkFuAmU!wEK7yL#g^gR&N4yh`JKJh205>9eRv(40WhAQn z?(7SA{JG5CrQ`r_K(dB?aFClA)`l1E>cGF5JJpeOa#5n1(Sx~z=UtqrwlfZHI8}Q; zT%&yi-rk*cX|R{!8YJ-%cv&y{NV^`m8@b7c#jUPD661kseV7YkoNya*;$yI1mL7B1 zzi*;iA@Q(df7Ua(8L*LubwZs^=)a2bCq{Vv0M>tB`UU++?)QZ2Q5NOG&B%+7!RrUn zuEfK=NbddA;6(K_iuU1L0lyxSs9Idcn7}KpW}GPxz;}`Coe2C}dzF)@#v)nUKKT2! ziE3IFbzVn1NbZq@7bA%=;K*F+r%oSy4doCYhP%;v+EqiD3nXp1;V|vJu;umE`WNm* zHLML`!(ogObsBIcl6eoqiC)$lb^771;jDjR)QCitiDbPAZ%2bD7w$#*5;KzdMLRh* z0vn97a&y8{^B8l=-S9^w_i{0~YYh8W`kv1mBDs$W!zT;qFXcga#|`9@&3M8dg^9|A z_rNgPdIj+?V;ni)-SAnonE49A7m#`H4c|k#94q_-`S8NsXgXe~#&iC}3(rJye=8h< zg48b@hnC`f@C77e9){brkHK*htnu{2KYZj#KI%s16Up-m;c~Q!dW3JFYJ3E4EF#a# zSxd0-WZK0$;le5GBVxkPeG})he)JbUi6Z12gspC&UxO%zU6I@q3bRoL<-$8r7rgK} zA+)2CW%&j}sV7(?1}LdUJzLpPH8g)`9H0qG_m$A|DixcfHBIhH?Gq+Y#? z_3fd4m^q!jb0upJjzBVoKA3;ERlg6Ob`Rx^I4{Ab53n}};^AN<*Elb{4Vl+CSc0UU z5X^jpu_Xrsjt;Pf`!iqgiAOCTgul#W%~7r%;~F}LF}aE{hpBU|7$^Mu*+eyoJXJ7J zwJx#B-SE5lv`cvmE-1Bp2v(F?`G??^a>j@HW3Y9F<=wCxZDgDy@T^L`$KfrDsb?_z zPPl|Uel=qbi_j=3hwG8_F$#UpS!*l+$34${455!OfMiUBJ6_~`MR^QPTS^Yp8Gw_P zkt=lu;VG|h4Z^$OQWVT#j^K%}vLEGr6BtHW*HR8^kmR72C#rTxyc6`vX{}G;b!Zd$3-eJ8-Uok1SrQK)TE#hswgT|^|8gEwW#Zj%B$E7nuoSJQ{s`>7&Kh$MdoJ65ki3uJgR_y;6NH^Vq`%j(FW@XB$A(}vl9(vmr@iZ=MAZvPj0f)fnDxf7&h?3^ zCz9)q2i}XMtq9zUYI4&}W^ds9GnDfQ9Dp+L!W@)|_rl(vvX-dR18+ytmLL9&U@npvFT4{;&H=bDN`Ht^-*8R&mU{#0bioPValWG52UjBV`UQVOQjgli z&ykc1OOW&{1W(&+-3z(kRmf}?Hrc}Yko;Y+5J|ZY)*v(I@43g=%9s*kKrfO!g}Z)W zuCHede`E}{k+Z}=FOnD^OxvEQ9vnst9E0+S_rW`nv?csN%83zvf~Mi4@R%J|j1yjq zq%U6h1u~y+z>*kikN6P$@>i}4)E|Ybeq#;eBk=5rwWYbd$62qwvBds2DGN3(desV3Rbf9v6HG$#b(X9Op<<)#T%cFQVj;yiS2z zP&2%+NrNPnfp@`u>GZ2LW7055oq=R7-0&*xz3>k01Mmgy!|)sJW3Wjh>sS};uDu7| zsJ$OPqkRzWK(Yp6aB|}$6(S!$9C<8bM<0Fg>n2I6`6$*ZeC)U+)rI*A!j4Tjmi=qM z(I+ISUd*WvwmvaQZ6(GHw`d=O{K+wEpF$UsJ_@&=M!Unw0WLnBF(ijD?BhyO8}S~v zre%_vP7V<`^UNeQO>%&)vlwUE74AY_;#F(r@jU9MPA~L}r>y{N(uN#Zw=OsqndcDr zrnnaBcA?7V5pl_kMN@I#FK*ooAyXj2Hpi%qD}ZP{1Zt&s%Mg# zh@_qX?3kUT))sOs9CcNaa^wB*)B#DVVjT6rtC6`k;m1ghjlw<19K(T0YD7+w${J5! z;Az*=t{e-yAc-;Hm#BuAC``JJKAgz2BWR#jMdSdlMwxgod{WBg90)(uJ_-lsS~+;( z9Y|sVa5a+iMg-nIl>Bd`FYrgC@G;nVEa$`tv;{vw8-3&huPWqxBJINeA{X%y*l8Sl z1aH7GH}Y?e4Zsb^Tzf@H>J5}H@$jyR^c^37JttY-19zY->W{&*CtEqY;Q}P}gy8E_ zlhg`g!m#F6<`l1POH$9FP7_%V@M9$7CQQAZv6_@_@>F~_-Ua(3850j2p}lY^YDSE3 z1IoZhVMD(a?}XPP^ZEtIhJyv3q6PzW}qP64gW&9 zw56sesUFD84Ze@0?-6+F-FVJvF4*Z_)+F%;%)O6#@LqVu{md!PFg@^3x9+vZ&{x(>p{*<#CV_&$vPD7dYJm<*he_$1z7juAEiDdF>ZLxW9-$bv8V)1i9h;@Np!c8x%&+Aj*ZOKFRvQyP<*P zGp@pWQ6}vQ-$fpL1fD!wU%y~`B(KLk@LlmzCtUIrdzsfMA^0(pennwMRg%iNnYQ4t z#q|Fs`Usy~!ubRrhC^QDx+eXCJ6>YUi|GqIeHnS;UGOdBBPIf;FK6s14+z8bi+bGf z5+tA3626BT(XQ~aHy9JV(2Fwh!tYTQJ_fhH$$9%0JRJWP>x#bn;Gan5*SU%@Ml!#C zc+!_iY85dq_z|kOmHC1(B;zA|`774*z4Q_OfIN8NeP6TA@WMt><_s@%qX1rb1q$Ll zF!5V*!#m-d-!Yyu7zcRg<|NeuAAmi+XMB1S55Gj_y%rp|)$%@g@()RBJ$brddn9=Z zFGsEJOE){8fYzEI1O3Up2RFP0$vzFi-aj$6 z8O#yfi{#!<{hXu*$Cwv#^TIj%lGM)IxW2=O6OvU0J^&{qC7bttJ~&szIv1XooUHOW zR@fd*!yB*=NsMqe3Q;ahNJ&n#Y|Uuby)zJm%WkHF&0WEIBy z;a5oJD+&uPN>;Ne_rbrkR~M7}CCMsCTLGBg#mdW1-hdCI_4oj6l7**E7ks#XGSAN_hrc5^ z534JaRSzU}df@wLr_>35K^YIFo4m-AtUBR^*&@6bjz;ntM|dAv{4nPz_z_x#7ygJg z;)Uv}WVIbH955hRHOG75ivukmhQ|%IybI14lB`zHRsf!Jb+UR8?}m5gSTOe^&=B@*v}FCz0g2v53Bk2Abe`v6>qWKpV3b06sG1f7v$`O zMaW!-@H6eBu-j0p+BD@(*r%vGuXf|H>mi7^Ntk;Sc_C>kG z2=72XyznvYgD`hEYv~cj7H%Dpto9HSgEx+34^r-jpN`^OfsaCW9&;05Y~fTS@0kYS z5+r*{_%3QgjBve_<72SdXlwnr;jA&t8RbE^I6ql=@T!2Zn!x^oUDh{AS{ zBrEf~Mew*slT|=s;Ppsy@WZ`mqvSR-S+zvwzJs5j*-{TY_Ax8o38x}iw|+PuNqh+Y zh@?*EEXEkE=UCx_#~G8^j0wzmf*8CTHhz*dOpFs=iOhE4ugKgZvpN5u*i-4s5BEGp zK6o{U`jC7s(F?1PdG3OppVngtM<8JuvrK);alj;rYR2?g7aS zeuRSa=sV0SVGQT62H+3KjgP@4^U0xve!=MrnB!+TC&1T{eB3bS`DE4NY5D@M z53!!f#|uAyf!w%WM`7ZN)|fb9)BkWzp-vZU`Es(_#IbJpF4|6c1a4VIIpYw6f4$1S zeunX1P7bdzzvSkEyOEa|^?I_Jf_BO{z<1DG>Wsj9!;F>W4=;Pe@*WsOtB4V9eUmvJ9FHzYm?%im|7s6PZ7 zMHmO_bix)NTDiI4AheYjFYNy@{VXLnI3Ag672dg?eo-EQTalES`u&j9@OGtOhu_sF@Kq#z4@;T$#tyC*KXI;jfqI~Uo@NAkX+-0m!laRE1ZJn;)PRD2ru-bFkbiylJN<{ z?~q*6g(vJ}oM~6s7RB&x*cHkBk}w<1c%JuD;GJkLUN{eh@WKTsj1R$&f9HHiJyF>3 z535}#yhM8g-j8JO1mOp|JOXF_$$5bDp>R|UIZ%&qDstid@T0$&_vfe|`gb$tjFr%} z*Yd*f-`$Uh3( z9hahJ5$}e#Y43;cYafAMpOm7KmkGk7z6P$DrqQa-fgGXOPqxgxy^99dE#| zwU0u7ORF!!C1<9nF2sajVXGALGY>vE?<}i42s^h`$U#_y^6|pyXc}I4KY9=!fkQhn zzU1SDE0L_>2yAcxb4-7Q1CfLLg?`imFTABQ<<#Sc&t|foC=bE6FQOiN1kS#gwM9%2 zo_9%#3Q_Kc8<4D-D15C8WB4BH6GoAoXM~+DO;NqxO*h#apNsdv38)Y+d>Ku{3*SZo zd<4eCQ;)D$*A(7EPB%FizYOn%ZU|oAlX=H`;p@Fp)Z*3T10U{_qW0he(3!>f z;yrLUl5>~v7POi=g_UR{Uich};f4P}O8N+YM6w2A@Z`Rhcfo74_rkl7oYRCaqiWg} zu0z}L5%?{Vc^A&ToPNE-a|SpcMerf`5t2Nkut_%KOL+h;N9G!a+q93tQ~K$A;1$|? z;Un4y;Op9l;m_K~;0;%@9>~oHn_k6UTh3g=rGuEGW%M1k$YC$P!n%cbT$7?QUnL)y zb3JPm?}e8Xrl{sC*n{x33DmiYV_~;R%*z{;!@p6dH#z@IX5HSDqSoWXFz5CZwTkuT zg-iXce<_EX@1*{>SPyXWbj~g0;D=A&Lr#oI5a!NEQ8Q@E3wJ$4UH_&2huJGA`ZjsO zoX5%Se~5u?p5VMnj2o_)jn>i@%zTQUts_sk8Wl6|5tul~+FwrC4axW$@ERn~eue)* zv#Cdz^fdj&J7Erzz3GKMB+r3`%TY3I3HPEFcr`agjYZ}?8|*WWwL}g9_$xBc`OmP2 zO2}`G-1Bp8Lo@KgOBQgR!3%q#Wq6O2p=7);gc{+6-y;`Zct$Df4KMVdL3rULGzu@g z1r_51uGz51fHyE&?$518Yq> z;j~9j$|LZbYUV)7KTA=0 z$edrec_aIl@)#T&WzFDya2IlIpzq&s9zYWBhj)I@+*2NaXK&>kf_KAGWZv8Sz0-aZhKNxUnKqVz!6C9RfIm2@iq0pa?}Mc+=M)M;g86RkHItk=6Z^E z!-4y_F0=2v@Bw756S!RaFytKpbB>&_8J2PZul)q{(}19juTQ}xw#|l@X^^!CE8A&}cnAR!P z{9b_Y3N)7(;cOJb2jT6VnbX#C@0zN1U6`u!DOZ`PY9DGt-_=EUWcrI!)eo1@mh355 zb18k4n69a6J1WG-;04{7BfJ5(_hkJr4l!8ND^+DN{(krgl72;D+GUJ0hxF7XX?t*=hjDrW>rF{TyMrNI`Xa7{yVheS` zuTc%hMq&Fa88^xe7(lsr;Tp7zm)#FU7|1+I{qVyftk3Vs0bYJJ>l^QZcOmIZ0B%N7Pb4Q*oq0{F3KHXnBay`T;D3?C zMB(Mv>U!W^$gBr$MiS$`E|t%aSTRBPF_M@lydc+#G2o|YmE;C57^=(RCM2H;iNVQv zsVYW{AAW_FZ6zKK8J()8X=vhZx}y zREQT|hx~Y<7X|RbnMgj9CVU%3X;=6Q+KE>;&?b`i5QWQ8@(L*n5Y zyJ4r5tX1a7fWN=SIfNMXda4?XWF7ipgE!cZHN?Zak(3AF>^D=@ zAj*UAcO>Pmw^G$JXoi%-rmL(y<${j?vQ{Z~!kO-%3(Fip&sG= zKeE^G!YVW!AA)E9$+#(wg%6-CITmiyJ_fI-vC2L0?UXc?v5)zJ=cT5Z@ou=gL7Ljm zvCi}~^?JiJ6=STz@RUYYj0=8&3WT90H zXOf|(a%PGX9HB^4M88yeppsz)ms^(bXZAhLS2_F;@ zBYYDD@xt|JDPH(FT7{3o6Hm3;HQ+}`+Ks|Cr*jN3ZrBw`{laYIbTl-1C%zS4I16Rs zg>z6AJ_7GNgZT7@Dgg6ZTI1$}cOcno!Z|3L7~$K2XpyaC4|8Gj#q70LNF0`G5S%~1fhJ_|pUH2`ywTu+7D(01w({(=Jhq-8!zmSq%9A;UdqW?ScsMp zBb<-c;)P356fb-g#qbgMHIjOS$6w0vlnYNme!L4_fy}nx9Aw^Cz%Y`vA^Z_3#zD9j zHN&f}>_OzF?*Z7PTN=ODi8|pz6rlbPe55;L+M0U|_*4&a<-1Ek_~{j#YdF@Eou;no z$NI;6;m4?u`lIl){#HINn297$0~YFXA3Xa?&PBw#;Q%D}BwjcL$$20Izd&+q6jl$X zFHKl8BRC%*i4is($@*_f{%|FVQfC;RGm2yIK6n!fH*07zDUUUb7Y;`|@xmF%aePCQ zzu=qWg^fqk7kpq0{mv&J;)N*%^d0Yn9dBSS;|=HLaKI$45ybo8Ba_)*_z?UXNgve|uDNJbb8>+9 z-elDifX5ee{-N9j%d`){NjF>N0XXOu%X{J9s1xyOYMQzm$+01L{C%`_B00bz_jCNo ztUY);lII@6caev3;b&+RJ_?_IfU(1eVD>|tCr_dtSc#IoF9buqfx{QUqQuq;cMtYyznhFSL%enA@g1Wwyq$CI)#^_Al`ue zk*pJ8F6u?Oa3;#Z3tvWsc;N~(4IhTvkj!HYUR-Id4G)}#A z*D!n!nQIt6ztp-egkZaunM=ma4ZlX4@KG4~AKE*U@q}5+Slf6H9DyVs;csX?<-)(v zcD#Cp9FVl-fg@j~t(L4Y_~{DvEHP1d?Q8S}?}h3O`b^HkKais}{!Qi?Ek28N2xlUh zFJYUv(o~dkVFy%$H{kt9+6};^Z_^g#VYu%d<_51;GdAzhpH}P_*m;e$Hx0NQ<+g|t$S}f%-YaRW?2Vm0=sQ+x{3qFZfWl$$PJ;GX*ayS`v!u#QqNai94ztKJh z=X}VTBqj(yKoS#yzaaCR{85@ZAIV-2-iYSXmhe^-!u#PLAF~ed+~BL08@LalPB*+6 z$zBkaqqUR^SEDFC3h(-qKFaSQhc6&$Hw;Hsvj(Ws2cJe}{_tJxBk>C|vL@ z`;?dvd}tFnv|$Y48YI74Rd~#1>LNyX3Yw00!LeId2Y5fcdmHuBZUB0AaIT}=2cJQ* zmV$7_Pt-~MVfa3h^)K9rX18r<^0=QFL%gsR3gd<6q6pp#FN|@$!+YR#B)_*I0I&Xy zdliX+pYCLiXv_UO_n%1mE}VrbC>PE_DrmT|bEviW7<4tY;)R2?_rm7KJ5*+S)(rF@ zsZ)5j_5pb1Ne(rg7!RC`q%VHB6iHvy$quyuZ6zio{uGCDbil(XGWPto?Q zG?y54iG%Odumq{MK1?5}e#a*rPZ1_BqwHkukwHIb|v&y{& zbB!V#>xcKCYJ3Q8LoK*=7~LIeC~CvsXz;@qw0HGjk02@cz}vMC!uPe0!P9zLF)r9w z`xrc}msK8sFKe%QGv-L@G+=@D5%`z(st++pV%+c=?S1eW?St@r?IZAS?bT%t)ef1* z!t1s7!iTjFz}K`7!=JQ|!PBy=V_mSn_8xef_I~)B_F?#&_U^u{A0+Jt;LF;(E@%HD zDR*7rP*)-GLHMrr-fV|z+0Vf_l4oCV8d{C_!+FSzhby%Y!!6pY{tk62GV6zzYHz@y z+I!)x+6Ukg?V~XDN_{NstGx$K(cTX?Az3HN!+uAznvfeTN78Nt{-M3PihPinGhC^C z7;e$tHNc_zAc^t7DcbvCx%MIWx%M&W9B9S6VL$EtaGv%dxIz0UOdX`-VL$CXaGdsj zI8XZ!T&KNjFk^@$H$R-GeFW~%-ZO;rH!}NvHG3S17oLz~c^5Ra_rm+M55SQ2!gboa zui-j{%rSvJ?IUo9_Reb^%8eu@bREYc@vdBQM&kXjQu`2$XfKRuFKj&2iZ|c{?S1fB z?St?G?IUoX_Ud|vIv+_}UigUi5g5~6c)~C%#tnyPAAqlDABIuwh01HiJ7E{?4d~V0 z2LswiU`%`GaK;2lJ_a1By%*l9eF(18UX9?~g3Ne0TKfPDX)lauAB7D@TJb>`);OpK0&B zfxaU-)(^|I55W!EN1+;P#Ryw#?}kIP_rZs>55l$DN8ldqRUyYBGfy}~doR3I`w(2G zeGE1pXT>{VXYCC*T6-USLi-?GseKGK9fUhUNc<_Jk{E_kW-2J~w0 zhvnLbU_^UiO#6V3djTZ%gyDAWW3a`Ix_+3geE`0$eXxl9ksKR=JG6ICB=H{T(_R?RUbsa25L~By1n$t@c?)Y2Nj+|utGyRKsC@vg&^`>eYafFxrdr3k zU?1&$@CogM@NMlQ@DJ_PG}b3F+l524_rr4SLvVxkQK)XU;!SGrhPm2%;e*--;0o=- z@JsEZu+eQ+Jxg55u3ekHHqV>%PM)wfDf=wGY78wGYGX+Q(ok zzjdquZ`9ro7i%Aa8?}$Zz1q9(V4RUT?{JFteps%31n$s222Z$C$HQB+_rr4SU3YQM zgUmYN?b-)nSbO0X?bURyeaM_Un5%sdzOB9MZuT{jm=N5ceH5nNW0gDMMcM~oNPA&K z`zTDk*NS(+Z0)`9LG7b3b%xFd4$i3 z0SmNuJ;)wJ(#L3km`8P;u(S5YMewuZN%=mf4Bk^8%pY|ab(LM_IYVUf6b&e$71E**og6p)8!oAu%pJgo} zi8o+@_CENO_Cffr_A%HvsB?oJ?S)gc_rprt+5x7J97Zpb_q7HIE-4{7gQNDMM#V1f1l7}8!C(OwwSUg)f_jupDK7kac8`m`4Yv=@f7 z7e=%f#{7L&5JZ-Vg6ZY5M18>vb56iU=!OygJEnzPpY1ad%Xzz#R+B=_P z-yt(M*iU=c^W3W-DHnRR7y7jq2DKN4wHHRU7pjm|PZ&nE7pfPma-mCmp`pFdtG&># zeE^2E7e=%f#sS};qrC@C(cTZswGYFn_QD3QTE}{zPx}CT zMf)gJ%dHrb+P8uCqV+tV6qf07;Yu`!XKunDba@OWuCSg53Nul!Q}~_auq(>JM^`%3 zuSlMe3Nv2g98r>PvK_t@AA~O=i4kr^o%rsL@F$cd-|d2luj{s8CUR0P>?-AW0}c>R zJ;E8{`Aoj>VU&pv!0)A;nE&Vhg_$QBb(S|Tca>+9yUUGoPkBzcw>-bxS6*E1FP~8! zD4$&(EUzdJl`ks~m#;35lvkHW%eR)t%4^EiLdQbq!sZKI3o{oQ3;hdcEDS6REnK!R zym0lx$inJ{jtXZ*^NNfLcSUA}QIS>QsmQ6wukckASNJPtR0Jw!S1hXtSFEmxRn%0d zN=K!$vU#PeGNaO6nOSL6W>tDBb1J=+`IWxP;!0;#^D0+WMwPoNv&yK-s`6CjRC%lN zt9(_(RsO0ORe`G6Rn<$POSUeFEvZ?u_4(NIHP5RE=LCLjy9zpj89{e2GiU^}f}Wr+ zSRC{RX9t79ieNanIv5G65=V)%qXJxFbxE{jYe}r6rbNwm%y-UjKHoJzW4?QS=6qv*)_l+WocUP`JPUFbco*a^ z@GU4_;9oFfL14k`1;GUs3qlK)EeJ1Iy&$rndO>u-)&;QzH49X!qtsd2yfmxSQ<_ui zEzK|Wl@^!!OJ|e@N@th4%QDN1vaB*sSx%X^EWgZGR$S&Un^6`hn_U(xt0)VVEh`I` ztuBj{RhLD}wwA@pYRXi(qujZFRx_E`tXebcH0La1q1&9dtc9M1ISaQgj4iBLs4A>E zbJdwOZ=HDyR#a4k^z20{sw<)uTaRiM{gpE+1C_HYgOwGPp~_{I;mXyOk;>}IXyw+* zSY=J6s&Z60t7@v$BF7@L9Y!q$x*L5GZ?*4?Toq1J8Cy#@ln48D~}r9vWB&+W4kBRoV^yWt*c1H(AK%8Iye-On$#tg6KP6I+Hxu%DQ#F`!>WSk zbsG5xTKb%3F1_zfE$yK9P4~{%Ys622But_tPUZ@6j+6_mhJxwR6nOdoRBllUFrNfHXmip3I(&c1net9>ze?q#8*7w{gd7KK~z8m(1 z6buY61=?YaZqcC~>S%_|MN2U5c0rbBd6Ad-Ca>~3-{wu;=G{QEXpW8X;Kv`e{`HxU z8>27%zak|kA2qHT|=B8vezH_ z*XJ^BRC_1He%W`fF?kh#bAR7qW$M_NedhFuGsDjGu`(lU%-#k1X4UtqzEzQ>w$GP7 zUHaYWVs-YLGsfcVePDymwZ+!#urxL7ObT{j9oc~gau9+W%s~wbFoO!jp!vWHo=J}B zo*TH|xkYX2GU^&iy5eF<{4j4^_j<`Hg26;!E!~15{X(d`Nh$O^hkAAJkPr&(emdB%1av9_(P%OgtSLj&FhH1! zTnBMrxGEdOzy=Y}u+=>5e-ry1*W%;ze|WL6%VSU^=T!#*V%Rr6SdWSJW`oVNOA7iD z;5^i5PZYEz03jn#HAAy;z(TseZSX4#Y$L`l?bZf}g%3heae~GkfJrpMz&;GY96CwC z6sn$X5fb8a%Xp!95+V98#hQ1puzV1vc46S216;!d=eNLV)xq*8mOEQf+@}xPVnWq( z^rKxq!F`q>C@$BrRyFKVAB>|0(J(g}Cby_e{aI znnnMdx2Xo_@Ij}x@COTyV1XAf5J8HCPr-Y1WXcA8jN<3staUINA1beLzox(&{QvbW GPvBpnic)U? literal 0 HcmV?d00001 diff --git a/native/taglib_reader/taglib_reader_cli.cpp b/native/taglib_reader/taglib_reader_cli.cpp new file mode 100644 index 0000000..6af180b --- /dev/null +++ b/native/taglib_reader/taglib_reader_cli.cpp @@ -0,0 +1,403 @@ +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace fs = std::filesystem; + +namespace { + +constexpr unsigned int kMaxCoverBytes = 8 * 1024 * 1024; + +std::string WideToUtf8(const std::wstring &value) { + if (value.empty()) return ""; + const int size = WideCharToMultiByte(CP_UTF8, 0, value.data(), static_cast(value.size()), nullptr, 0, nullptr, nullptr); + if (size <= 0) return ""; + std::string result(size, '\0'); + WideCharToMultiByte(CP_UTF8, 0, value.data(), static_cast(value.size()), result.data(), size, nullptr, nullptr); + return result; +} + +std::wstring Utf8ToWide(const std::string &value) { + if (value.empty()) return L""; + const int size = MultiByteToWideChar(CP_UTF8, 0, value.data(), static_cast(value.size()), nullptr, 0); + if (size <= 0) return L""; + std::wstring result(size, L'\0'); + MultiByteToWideChar(CP_UTF8, 0, value.data(), static_cast(value.size()), result.data(), size); + return result; +} + +std::string ToUtf8(const TagLib::String &value) { + return value.to8Bit(true); +} + +std::string Trim(const std::string &value) { + const auto start = value.find_first_not_of(" \t\r\n"); + if (start == std::string::npos) return ""; + const auto end = value.find_last_not_of(" \t\r\n"); + return value.substr(start, end - start + 1); +} + +std::string JsonEscape(const std::string &value) { + std::ostringstream stream; + for (const unsigned char ch : value) { + switch (ch) { + case '\"': stream << "\\\""; break; + case '\\': stream << "\\\\"; break; + case '\b': stream << "\\b"; break; + case '\f': stream << "\\f"; break; + case '\n': stream << "\\n"; break; + case '\r': stream << "\\r"; break; + case '\t': stream << "\\t"; break; + default: + if (ch < 0x20) { + stream << "\\u"; + const char *hex = "0123456789abcdef"; + stream << "00" << hex[(ch >> 4) & 0x0F] << hex[ch & 0x0F]; + } else { + stream << ch; + } + } + } + return stream.str(); +} + +std::string Q(const std::string &value) { + return "\"" + JsonEscape(value) + "\""; +} + +std::string DetectMimeType(const TagLib::ByteVector &data) { + if (data.size() >= 4) { + const auto *d = reinterpret_cast(data.data()); + if (d[0] == 0xFF && d[1] == 0xD8 && d[2] == 0xFF) return "image/jpeg"; + if (d[0] == 0x89 && d[1] == 0x50 && d[2] == 0x4E && d[3] == 0x47) return "image/png"; + if (d[0] == 0x47 && d[1] == 0x49 && d[2] == 0x46 && d[3] == 0x38) return "image/gif"; + if (data.size() >= 12 && d[0] == 0x52 && d[1] == 0x49 && d[2] == 0x46 && d[3] == 0x46 && + d[8] == 0x57 && d[9] == 0x45 && d[10] == 0x42 && d[11] == 0x50) { + return "image/webp"; + } + } + return "image/jpeg"; +} + +std::string CoverExtension(const std::string &mime) { + if (mime == "image/png") return ".png"; + if (mime == "image/gif") return ".gif"; + if (mime == "image/webp") return ".webp"; + return ".jpg"; +} + +std::string HexHash(const std::string &value) { + uint64_t hash = 1469598103934665603ull; + for (const unsigned char ch : value) { + hash ^= ch; + hash *= 1099511628211ull; + } + std::ostringstream stream; + stream << std::hex << std::setw(16) << std::setfill('0') << hash; + return stream.str(); +} + +std::string WriteCoverFile( + const TagLib::ByteVector &cover, + const fs::path &filePath, + const fs::path &artworkDir, + const std::string &mime) { + if (cover.isEmpty() || cover.size() > kMaxCoverBytes || artworkDir.empty()) return ""; + + std::error_code ec; + fs::create_directories(artworkDir, ec); + if (ec) return ""; + + const auto id = HexHash(WideToUtf8(filePath.wstring())); + const auto outPath = artworkDir / fs::path(Utf8ToWide(id + CoverExtension(mime))); + std::ofstream out(outPath, std::ios::binary | std::ios::trunc); + if (!out) return ""; + out.write(cover.data(), cover.size()); + if (!out) return ""; + return WideToUtf8(outPath.wstring()); +} + +std::string Base64Encode(const TagLib::ByteVector &data) { + static constexpr char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + std::string output; + output.reserve(((data.size() + 2) / 3) * 4); + + const auto *bytes = reinterpret_cast(data.data()); + for (unsigned int i = 0; i < data.size(); i += 3) { + const unsigned int b0 = bytes[i]; + const unsigned int b1 = i + 1 < data.size() ? bytes[i + 1] : 0; + const unsigned int b2 = i + 2 < data.size() ? bytes[i + 2] : 0; + output.push_back(table[(b0 >> 2) & 0x3F]); + output.push_back(table[((b0 & 0x03) << 4) | ((b1 >> 4) & 0x0F)]); + output.push_back(i + 1 < data.size() ? table[((b1 & 0x0F) << 2) | ((b2 >> 6) & 0x03)] : '='); + output.push_back(i + 2 < data.size() ? table[b2 & 0x3F] : '='); + } + return output; +} + +std::string FormatDuration(int seconds) { + if (seconds <= 0) return "00:00"; + const int minutes = seconds / 60; + const int rest = seconds % 60; + std::ostringstream stream; + stream << minutes << ':'; + if (rest < 10) stream << '0'; + stream << rest; + return stream.str(); +} + +std::string BuildQuality(TagLib::File *file, int bitrate, int sampleRate) { + if (auto *flac = dynamic_cast(file)) { + if (flac->audioProperties()) { + std::ostringstream stream; + stream << (sampleRate / 1000.0) << "kHz " << flac->audioProperties()->bitsPerSample() << "bit"; + return stream.str(); + } + } + + if (auto *wav = dynamic_cast(file)) { + if (wav->audioProperties()) { + std::ostringstream stream; + stream << (sampleRate / 1000.0) << "kHz " << wav->audioProperties()->bitsPerSample() << "bit"; + return stream.str(); + } + } + + if (bitrate > 0) return std::to_string(bitrate) + "kbps"; + return ""; +} + +TagLib::ByteVector ReadCover(TagLib::File *file) { + if (auto *mp3 = dynamic_cast(file)) { + if (auto *id3 = mp3->ID3v2Tag()) { + const auto frames = id3->frameList("APIC"); + if (!frames.isEmpty()) { + if (auto *frame = dynamic_cast(frames.front())) return frame->picture(); + } + } + } + + if (auto *wav = dynamic_cast(file)) { + if (auto *id3 = wav->ID3v2Tag()) { + const auto frames = id3->frameList("APIC"); + if (!frames.isEmpty()) { + if (auto *frame = dynamic_cast(frames.front())) return frame->picture(); + } + } + } + + if (auto *flac = dynamic_cast(file)) { + const auto pictures = flac->pictureList(); + if (!pictures.isEmpty()) return pictures.front()->data(); + } + + if (auto *mp4 = dynamic_cast(file)) { + if (auto *tag = mp4->tag(); tag && tag->contains("covr")) { + const auto covers = tag->item("covr").toCoverArtList(); + if (!covers.isEmpty()) return covers.front().data(); + } + } + + if (auto *vorbis = dynamic_cast(file)) { + if (auto *tag = vorbis->tag()) { + const auto pictures = tag->pictureList(); + if (!pictures.isEmpty()) return pictures.front()->data(); + } + } + + return {}; +} + +std::string FirstProperty(TagLib::File *file, const std::vector &keys) { + if (!file) return ""; + + const auto properties = file->properties(); + for (const auto &rawKey : keys) { + const TagLib::String key(rawKey, TagLib::String::UTF8); + if (!properties.contains(key)) continue; + const auto values = properties[key]; + if (!values.isEmpty()) { + const auto text = Trim(ToUtf8(values.front())); + if (!text.empty()) return text; + } + } + return ""; +} + +std::string ReadLyrics(TagLib::File *file) { + if (!file) return ""; + + if (auto *mp3 = dynamic_cast(file)) { + if (auto *id3 = mp3->ID3v2Tag()) { + const auto frames = id3->frameList("USLT"); + for (auto *rawFrame : frames) { + if (auto *frame = dynamic_cast(rawFrame)) { + const auto text = Trim(ToUtf8(frame->text())); + if (!text.empty()) return text; + } + } + } + } + + if (auto *wav = dynamic_cast(file)) { + if (auto *id3 = wav->ID3v2Tag()) { + const auto frames = id3->frameList("USLT"); + for (auto *rawFrame : frames) { + if (auto *frame = dynamic_cast(rawFrame)) { + const auto text = Trim(ToUtf8(frame->text())); + if (!text.empty()) return text; + } + } + } + } + + return FirstProperty(file, { + "LYRICS", + "UNSYNCEDLYRICS", + "UNSYNCHRONIZEDLYRICS", + }); +} + +bool IsAudioPath(const fs::path &file) { + const auto ext = file.extension().wstring(); + const std::wstring lower = [&]() { + std::wstring out = ext; + for (auto &ch : out) ch = static_cast(towlower(ch)); + return out; + }(); + return lower == L".mp3" || lower == L".flac" || lower == L".m4a" || lower == L".mp4" || + lower == L".aac" || lower == L".ogg" || lower == L".opus" || lower == L".wav" || + lower == L".aiff" || lower == L".aif" || lower == L".ape" || lower == L".wv"; +} + +std::string ReadFileJson(const fs::path &filePath, const fs::path &artworkDir = {}) { + const std::wstring nativePath = filePath.wstring(); + TagLib::FileRef fileRef(TagLib::FileName(nativePath.c_str()), true, TagLib::AudioProperties::Average); + if (fileRef.isNull() || !fileRef.file()) { + throw std::runtime_error("Unsupported or unreadable audio file"); + } + + auto *tag = fileRef.tag(); + auto *file = fileRef.file(); + auto *props = fileRef.audioProperties(); + const int seconds = props ? props->lengthInSeconds() : 0; + const int bitrate = props ? props->bitrate() : 0; + const int sampleRate = props ? props->sampleRate() : 0; + const int channels = props ? props->channels() : 0; + const auto cover = ReadCover(file); + const bool includeCover = !cover.isEmpty() && cover.size() <= kMaxCoverBytes; + const auto mime = includeCover ? DetectMimeType(cover) : ""; + const auto coverPath = includeCover ? WriteCoverFile(cover, filePath, artworkDir, mime) : ""; + const auto lyric = ReadLyrics(file); + + std::ostringstream json; + json << "{"; + json << "\"path\":" << Q(WideToUtf8(filePath.wstring())) << ","; + json << "\"title\":" << Q(tag ? ToUtf8(tag->title()) : "") << ","; + json << "\"artist\":" << Q(tag ? ToUtf8(tag->artist()) : "") << ","; + json << "\"album\":" << Q(tag ? ToUtf8(tag->album()) : "") << ","; + json << "\"comment\":" << Q(tag ? ToUtf8(tag->comment()) : "") << ","; + json << "\"genre\":" << Q(tag ? ToUtf8(tag->genre()) : "") << ","; + json << "\"year\":" << (tag ? tag->year() : 0) << ","; + json << "\"track\":" << (tag ? tag->track() : 0) << ","; + json << "\"durationSeconds\":" << seconds << ","; + json << "\"duration\":" << Q(FormatDuration(seconds)) << ","; + json << "\"bitrate\":" << bitrate << ","; + json << "\"sampleRate\":" << sampleRate << ","; + json << "\"channels\":" << channels << ","; + json << "\"quality\":" << Q(BuildQuality(file, bitrate, sampleRate)) << ","; + json << "\"coverMime\":" << Q(mime) << ","; + json << "\"coverPath\":" << Q(coverPath) << ","; + json << "\"coverDataUrl\":" << Q("") << ","; + json << "\"lyric\":" << Q(lyric); + json << "}"; + return json.str(); +} + +std::vector CollectAudioFiles(const std::vector &roots) { + std::vector files; + for (const auto &root : roots) { + std::error_code ec; + if (!fs::exists(root, ec) || !fs::is_directory(root, ec)) continue; + fs::recursive_directory_iterator it(root, fs::directory_options::skip_permission_denied, ec); + fs::recursive_directory_iterator end; + while (it != end) { + if (!ec && it->is_regular_file(ec) && IsAudioPath(it->path())) files.push_back(it->path()); + it.increment(ec); + } + } + return files; +} + +} // namespace + +int wmain(int argc, wchar_t **argv) { + SetConsoleOutputCP(CP_UTF8); + if (argc < 3) { + std::cerr << "Usage: taglib_reader_cli.exe read | scan [--artwork-dir ] \n"; + return 2; + } + + try { + const std::wstring mode = argv[1]; + if (mode == L"read") { + std::cout << ReadFileJson(fs::path(argv[2])); + return 0; + } + + if (mode == L"scan") { + fs::path artworkDir; + std::vector roots; + int startIndex = 2; + if (argc >= 5 && std::wstring(argv[2]) == L"--artwork-dir") { + artworkDir = fs::path(argv[3]); + startIndex = 4; + } + for (int i = startIndex; i < argc; i++) roots.emplace_back(argv[i]); + const auto files = CollectAudioFiles(roots); + + std::cout << "{\"songs\":["; + bool first = true; + for (const auto &file : files) { + try { + if (!first) std::cout << ","; + std::cout << ReadFileJson(file, artworkDir); + first = false; + } catch (const std::exception &error) { + std::cerr << "Failed to read " << WideToUtf8(file.wstring()) << ": " << error.what() << "\n"; + } + } + std::cout << "]}"; + return 0; + } + + std::cerr << "Unknown mode\n"; + return 2; + } catch (const std::exception &error) { + std::cerr << error.what() << "\n"; + return 1; + } +} diff --git a/package-lock.json b/package-lock.json index 03418ba..aafd19c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,11 +21,13 @@ "@pixi/filter-bulge-pinch": "^5.1.1", "@pixi/filter-color-matrix": "^7.4.3", "@pixi/sprite": "^7.4.3", + "@types/qrcode": "^1.5.6", "@vitejs/plugin-vue-jsx": "^5.1.5", "element-plus": "^2.13.7", "jss": "^10.10.0", "jss-preset-default": "^10.10.0", "pinia": "^3.0.4", + "qrcode": "^1.5.4", "url": "^0.11.4", "vite-plugin-wasm": "^3.6.0", "vue": "^3.5.33", @@ -3762,6 +3764,15 @@ "xmlbuilder": ">=11.0.1" } }, + "node_modules/@types/qrcode": { + "version": "1.5.6", + "resolved": "https://registry.npmmirror.com/@types/qrcode/-/qrcode-1.5.6.tgz", + "integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz", @@ -4391,7 +4402,6 @@ "version": "5.0.1", "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4401,7 +4411,6 @@ "version": "4.3.0", "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -5300,6 +5309,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001768", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001768.tgz", @@ -5461,7 +5479,6 @@ "version": "2.0.1", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -5474,7 +5491,6 @@ "version": "1.1.4", "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/colorjs.io": { @@ -5908,6 +5924,15 @@ } } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz", @@ -6057,6 +6082,12 @@ "dev": true, "license": "MIT" }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, "node_modules/dir-compare": { "version": "3.3.0", "resolved": "https://registry.npmmirror.com/dir-compare/-/dir-compare-3.3.0.tgz", @@ -7056,7 +7087,6 @@ "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/empathic": { @@ -7578,7 +7608,6 @@ "version": "2.0.5", "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -8157,7 +8186,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9698,6 +9726,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -9740,7 +9777,6 @@ "version": "4.0.0", "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -9913,6 +9949,15 @@ "node": ">=10.4.0" } }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -10088,6 +10133,141 @@ "node": ">=6" } }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/qrcode/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qrcode/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/qrcode/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmmirror.com/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/qrcode/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.14.1", "resolved": "https://registry.npmmirror.com/qs/-/qs-6.14.1.tgz", @@ -10224,12 +10404,17 @@ "version": "2.1.1", "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, "node_modules/resolve": { "version": "1.22.11", "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.11.tgz", @@ -11106,6 +11291,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz", @@ -11437,7 +11628,6 @@ "version": "4.2.3", "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -11468,7 +11658,6 @@ "version": "6.0.1", "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -13097,6 +13286,12 @@ "node": ">= 8" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, "node_modules/which-typed-array": { "version": "1.1.20", "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.20.tgz", diff --git a/package.json b/package.json index 22d6fc1..ceed200 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,13 @@ "@pixi/filter-bulge-pinch": "^5.1.1", "@pixi/filter-color-matrix": "^7.4.3", "@pixi/sprite": "^7.4.3", + "@types/qrcode": "^1.5.6", "@vitejs/plugin-vue-jsx": "^5.1.5", "element-plus": "^2.13.7", "jss": "^10.10.0", "jss-preset-default": "^10.10.0", "pinia": "^3.0.4", + "qrcode": "^1.5.4", "url": "^0.11.4", "vite-plugin-wasm": "^3.6.0", "vue": "^3.5.33", @@ -72,6 +74,10 @@ { "from": "core/libfftw3f-3.dll", "to": "core/libfftw3f-3.dll" + }, + { + "from": "native/taglib_reader/build/taglib_reader_cli.exe", + "to": "native/taglib_reader_cli.exe" } ] } diff --git a/src/main/authStore.ts b/src/main/authStore.ts new file mode 100644 index 0000000..30771d3 --- /dev/null +++ b/src/main/authStore.ts @@ -0,0 +1,380 @@ +import { app, shell } from 'electron' +import fs from 'node:fs' +import crypto from 'node:crypto' +import os from 'node:os' +import path from 'node:path' +import QRCode from 'qrcode' + +export const API_BASE_URL = 'https://api.qz.shiqianjiang.cn/app' +const AUTH_LOGIN_URL = `${API_BASE_URL}/auth/login` +const UPLOAD_ENDPOINT = 'https://picgo.re-link.top' +const UPLOAD_TOKEN_SECRET = 'pm9K2nBSseKihywiDH3hiaGJwzyTGQwj' + +export interface UserInfo { + id: string + username: string + avatar?: string | null + nickname?: string | null + gender?: string | null + region?: string | null + intro?: string | null + birthday?: string | null + subscribing?: boolean +} + +export interface AuthState { + accessToken: string + refreshToken: string + exp: number + userInfo: UserInfo | null +} + +export interface AuthCallbackPayload { + status: string + message?: string + user_info?: UserInfo + access_token?: string + refresh_token?: string + exp?: number +} + +export interface QrLoginSession { + status: string + session_id: string + poll_token: string + qr_payload: string + qr_data_url: string + expires_at: number + expires_in: number + message?: string +} + +export interface QrLoginPollResult extends AuthCallbackPayload { + state?: AuthState + device_name?: string + expires_at?: number +} + +const EMPTY_AUTH_STATE: AuthState = { + accessToken: '', + refreshToken: '', + exp: 0, + userInfo: null, +} + +let authCache: AuthState | null = null + +function getAuthPath(): string { + return path.join(app.getPath('userData'), 'auth.json') +} + +function normalizeAuthPayload(payload: AuthCallbackPayload): AuthState { + const rawExp = Number(payload.exp) || 0 + const exp = rawExp > 0 && rawExp < 10_000_000_000 ? rawExp * 1000 : rawExp + + return { + accessToken: payload.access_token || '', + refreshToken: payload.refresh_token || '', + exp, + userInfo: payload.user_info || null, + } +} + +export function loadAuthState(): AuthState { + if (authCache) return authCache + + try { + const authPath = getAuthPath() + if (fs.existsSync(authPath)) { + const raw = JSON.parse(fs.readFileSync(authPath, 'utf8')) + const nextState = { ...EMPTY_AUTH_STATE, ...raw } + if (nextState.exp > 0 && nextState.exp < 10_000_000_000) { + nextState.exp *= 1000 + } + authCache = nextState + return nextState + } + } catch (err) { + console.error('[Auth] Failed to load auth state:', err) + } + + const nextState = { ...EMPTY_AUTH_STATE } + authCache = nextState + return nextState +} + +export function saveAuthState(nextState: AuthState): AuthState { + authCache = { ...EMPTY_AUTH_STATE, ...nextState } + try { + fs.writeFileSync(getAuthPath(), JSON.stringify(authCache, null, 2), 'utf8') + } catch (err) { + console.error('[Auth] Failed to save auth state:', err) + } + return authCache +} + +export function clearAuthState(): AuthState { + authCache = { ...EMPTY_AUTH_STATE } + try { + if (fs.existsSync(getAuthPath())) fs.unlinkSync(getAuthPath()) + } catch (err) { + console.error('[Auth] Failed to clear auth state:', err) + } + return authCache +} + +export async function openLoginPage(forcePrompt = false): Promise<{ success: boolean; url: string }> { + const url = forcePrompt ? `${AUTH_LOGIN_URL}?prompt=login` : AUTH_LOGIN_URL + await shell.openExternal(url) + return { success: true, url } +} + +async function authQrFetch(pathname: string, body: any): Promise { + const resp = await fetch(`${API_BASE_URL}${pathname}`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(body), + }) + if (!resp.ok) { + const message = await resp.text().catch(() => '') + throw new Error(message || `Request failed: ${resp.status}`) + } + return resp.json() as Promise +} + +export async function createQrLoginSession(): Promise { + const deviceName = `${app.getName() || 'QZMusic'} on ${os.hostname() || process.platform}` + const payload = await authQrFetch>('/auth/qr/session', { + device_name: deviceName, + client: 'qzmusic-electron', + platform: process.platform, + }) + if (payload.status !== 'success') { + throw new Error(payload.message || 'Create QR login session failed') + } + const qrDataUrl = await QRCode.toDataURL(payload.qr_payload, { + errorCorrectionLevel: 'M', + margin: 1, + width: 256, + }) + return { ...payload, qr_data_url: qrDataUrl } +} + +export async function pollQrLoginSession(sessionId: string, pollToken: string): Promise { + const payload = await authQrFetch('/auth/qr/poll', { + session_id: sessionId, + poll_token: pollToken, + }) + if (payload.status === 'success' && payload.access_token) { + const state = acceptAuthCallback(payload) + return { ...payload, state } + } + return payload +} + +export async function cancelQrLoginSession(sessionId: string, pollToken: string): Promise { + return authQrFetch('/auth/qr/cancel', { + session_id: sessionId, + poll_token: pollToken, + }) +} + +export function acceptAuthCallback(payload: AuthCallbackPayload): AuthState { + if (payload.status !== 'success') { + throw new Error(payload.message || 'Login failed') + } + + const nextState = normalizeAuthPayload(payload) + if (!nextState.accessToken || !nextState.refreshToken || !nextState.userInfo?.id) { + throw new Error('Invalid login response') + } + return saveAuthState(nextState) +} + +export async function refreshAuthState(): Promise { + const state = loadAuthState() + if (!state.accessToken || !state.refreshToken) return state + + const resp = await fetch(`${API_BASE_URL}/auth/refresh_token`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + access_token: state.accessToken, + refresh_token: state.refreshToken, + }), + }) + if (!resp.ok) { + throw new Error(`Refresh token failed: ${resp.status}`) + } + + const payload = await resp.json() as AuthCallbackPayload + if (payload.status !== 'success') { + throw new Error(payload.message || 'Login expired') + } + const refreshed = normalizeAuthPayload(payload) + return saveAuthState({ + ...state, + ...refreshed, + userInfo: refreshed.userInfo || state.userInfo, + }) +} + +export async function getValidAccessToken(): Promise { + const state = loadAuthState() + if (!state.accessToken) return '' + + if (Date.now() > state.exp - 60_000) { + const refreshed = await refreshAuthState() + return refreshed.accessToken + } + return state.accessToken +} + +export async function qzFetch(pathname: string, init: RequestInit = {}): Promise { + const token = await getValidAccessToken() + const headers = new Headers(init.headers) + headers.set('Content-Type', headers.get('Content-Type') || 'application/json') + if (token) headers.set('Authorization', `Bearer ${token}`) + + const resp = await fetch(`${API_BASE_URL}${pathname}`, { + ...init, + headers, + }) + if (!resp.ok) { + const message = await resp.text().catch(() => '') + throw new Error(message || `Request failed: ${resp.status}`) + } + if (resp.status === 204) return null + return resp.json() +} + +function mimeForImage(filePath: string): string { + const ext = path.extname(filePath).toLowerCase() + if (ext === '.png') return 'image/png' + if (ext === '.webp') return 'image/webp' + if (ext === '.gif') return 'image/gif' + return 'image/jpeg' +} + +function uploadToken(userId: string, timestamp: string): string { + return crypto + .createHmac('sha256', UPLOAD_TOKEN_SECRET) + .update(`${userId}.${timestamp}`) + .digest('hex') +} + +export async function uploadImage(filePath: string): Promise<{ success: boolean; url?: string; message?: string }> { + const state = loadAuthState() + const userId = state.userInfo?.id + if (!userId) throw new Error('Not logged in') + if (!fs.existsSync(filePath)) throw new Error('Image file not found') + + const timestamp = Math.floor(Date.now() / 1000).toString() + const form = new FormData() + form.append('userid', userId) + form.append('timestamp', timestamp) + form.append('token', uploadToken(userId, timestamp)) + form.append( + 'file', + new Blob([new Uint8Array(fs.readFileSync(filePath))], { type: mimeForImage(filePath) }), + path.basename(filePath), + ) + + const resp = await fetch(UPLOAD_ENDPOINT, { + method: 'POST', + headers: { + Origin: 'https://re-link.top', + }, + body: form, + }) + const text = await resp.text() + if (!resp.ok) { + throw new Error(text || `Upload failed: ${resp.status}`) + } + const data = JSON.parse(text) + if (!data?.ok) { + throw new Error(data?.message || 'Upload failed') + } + const url = String(data.url || data.display_url || '') + if (!url) throw new Error('Upload response missing url') + return { success: true, url } +} + +export function getListenTogetherWsUrl(params: Record): string { + const query = new URLSearchParams(params) + return `wss://interface.qz.folltoshe.com/ws?${query.toString()}` +} + +export async function sendPcHeartbeat(duration: number, timestamp = Date.now()): Promise { + return qzFetch('/heartbeat/pc', { + method: 'POST', + body: JSON.stringify({ duration, timestamp }), + }) +} + +export async function getListenTime(detail = 1, userId?: string): Promise { + const state = loadAuthState() + const targetUserId = userId || state.userInfo?.id + if (!targetUserId) throw new Error('Not logged in') + return qzFetch(`/user/${encodeURIComponent(targetUserId)}/stat/listen/time?detail=${detail}`) +} + +export async function getListenTimeRange(start: string, end: string, userId?: string): Promise { + const state = loadAuthState() + const targetUserId = userId || state.userInfo?.id + if (!targetUserId) throw new Error('Not logged in') + const query = new URLSearchParams({ start, end }) + return qzFetch(`/user/${encodeURIComponent(targetUserId)}/stat/listen/range?${query.toString()}`) +} + +export async function getListenRank(period: 'week' | 'month' | 'year' = 'week', limit = 200): Promise { + const query = new URLSearchParams({ period, limit: String(Math.max(1, Math.min(200, limit))) }) + return qzFetch(`/user/stat/listen/rank?${query.toString()}`) +} + +export async function getUserProfile(userId: string): Promise { + if (!userId) throw new Error('Missing user id') + return qzFetch(`/user/${encodeURIComponent(userId)}/info`) +} + +export async function getUserPublicPlaylists(userId: string): Promise { + if (!userId) throw new Error('Missing user id') + const result = await qzFetch(`/user/${encodeURIComponent(userId)}/playlists`) + return Array.isArray(result) ? result : [] +} + +export async function getUserPublicFavSongs(userId: string): Promise { + if (!userId) throw new Error('Missing user id') + const result = await qzFetch(`/user/${encodeURIComponent(userId)}/fav/songs`) + return Array.isArray(result) ? result : [] +} + +export async function updateCurrentUserProfile(payload: Partial): Promise { + const state = loadAuthState() + const userId = state.userInfo?.id + if (!userId) throw new Error('Not logged in') + await qzFetch(`/user/${encodeURIComponent(userId)}/info`, { + method: 'PATCH', + body: JSON.stringify(payload), + }) + const userInfo = await getUserProfile(userId) + saveAuthState({ ...state, userInfo }) + return userInfo +} + +export async function getLibraryPrivacy(): Promise<{ status: string; allow_public_library: boolean; allow_public_profile: boolean }> { + const state = loadAuthState() + const userId = state.userInfo?.id + if (!userId) throw new Error('Not logged in') + return qzFetch(`/user/${encodeURIComponent(userId)}/privacy/library`) +} + +export async function setLibraryPrivacy(payload: { allow_public_library?: boolean; allow_public_profile?: boolean }): Promise<{ status: string; allow_public_library: boolean; allow_public_profile: boolean }> { + const state = loadAuthState() + const userId = state.userInfo?.id + if (!userId) throw new Error('Not logged in') + return qzFetch(`/user/${encodeURIComponent(userId)}/privacy/library`, { + method: 'PATCH', + body: JSON.stringify(payload), + }) +} diff --git a/src/main/index.ts b/src/main/index.ts index fff436b..676bd20 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -7,6 +7,53 @@ import { QzpController } from './qzpController' import { startProxyServer, cleanupCache, getCacheDir, getCacheSize, setPersistCache, clearCacheNow, refreshCacheDir } from './proxyServer' import { PluginSystem } from './pluginSystem' import { loadSettings, saveSettings, getSetting, AppSettings } from './settingsStore' +import { + acceptAuthCallback, + cancelQrLoginSession, + clearAuthState, + createQrLoginSession, + getLibraryPrivacy, + getListenTogetherWsUrl, + getListenRank, + getValidAccessToken, + getListenTime, + getListenTimeRange, + getUserProfile, + getUserPublicFavSongs, + getUserPublicPlaylists, + loadAuthState, + openLoginPage, + pollQrLoginSession, + refreshAuthState, + sendPcHeartbeat, + setLibraryPrivacy, + updateCurrentUserProfile, + uploadImage, + type AuthCallbackPayload, +} from './authStore' +import { + addSong, + copyPlaylistToLocal, + convertPlaylistScope, + createPlaylist, + deletePlaylist as deleteStoredPlaylist, + exportPlaylist, + getPlaylist, + importPlaylist, + listCloudPlaylists, + listLocalPlaylists, + listPublicPlaylists, + removeSong, + updatePlaylist, + type PlaylistScope, +} from './playlistStore' +import { + clearMissingLocalSongs, + getLocalMusicLibrary, + removeLocalSong, + scanLocalMusic, + setLocalMusicRoots, +} from './localMusicStore' // @ts-ignore const require = createRequire(import.meta.url) @@ -26,6 +73,65 @@ function notifyPluginsChanged(action: 'installed' | 'updated' | 'uninstalled', p win?.webContents.send('plugin:changed', { action, pluginId }) } +const gotSingleInstanceLock = app.requestSingleInstanceLock() +if (!gotSingleInstanceLock) { + app.quit() +} + +function decodeAuthCallback(url: string): AuthCallbackPayload | null { + try { + const parsed = new URL(url) + if (parsed.protocol !== 'qzmusic:' || parsed.hostname !== 'auth_result') return null + const hexData = parsed.searchParams.get('data') + if (!hexData) return null + const jsonText = Buffer.from(hexData, 'hex').toString('utf8') + return JSON.parse(jsonText) + } catch (err) { + console.error('[Auth] Failed to decode callback:', err) + return null + } +} + +function handleAuthCallback(url: string): void { + const payload = decodeAuthCallback(url) + if (!payload) return + + try { + const state = acceptAuthCallback(payload) + win?.webContents.send('auth:changed', { status: 'success', state }) + } catch (err: any) { + win?.webContents.send('auth:changed', { + status: 'error', + message: err?.message || 'Login failed', + state: loadAuthState(), + }) + } + if (win?.isMinimized()) win.restore() + win?.focus() +} + +if (process.defaultApp) { + if (process.argv.length >= 2) { + app.setAsDefaultProtocolClient('qzmusic', process.execPath, [path.resolve(process.argv[1])]) + } +} else { + app.setAsDefaultProtocolClient('qzmusic') +} + +app.on('second-instance', (_event, argv) => { + const callbackUrl = argv.find((arg) => arg.startsWith('qzmusic://auth_result')) + if (callbackUrl) handleAuthCallback(callbackUrl) + if (win) { + if (win.isMinimized()) win.restore() + win.focus() + } +}) + +app.on('open-url', (event, url) => { + event.preventDefault() + handleAuthCallback(url) +}) + // === Electron 窗口逻辑 === function createWindow() { @@ -65,6 +171,16 @@ ipcMain.on('window-minimize', (event) => BrowserWindow.fromWebContents(event.sen ipcMain.on('window-maximize', () => win?.isMaximized() ? win.unmaximize() : win?.maximize()) ipcMain.on('window-close', () => win?.close()) ipcMain.handle('window-is-maximized', () => win?.isMaximized() || false) +ipcMain.handle('window:setProgressBar', (_event, progress: number, mode: 'normal' | 'paused' = 'normal') => { + if (!win) return false + const value = Number(progress) + if (!Number.isFinite(value) || value < 0) { + win.setProgressBar(-1) + return true + } + win.setProgressBar(Math.max(0, Math.min(1, value)), { mode }) + return true +}) // --- qzplayer IPC Handlers --- ipcMain.handle('qzplayer-command', async (_, command: any[]) => { @@ -102,6 +218,16 @@ ipcMain.handle('plugin:getAll', () => { return PluginSystem.getAllPlugins() }) +ipcMain.handle('plugin:getPlaylist', async (_event, pluginId: string, id: string, page = 1, limit = 100) => { + const plugin = new PluginSystem(pluginId) + return plugin.getPlaylist(id, page, limit) +}) + +ipcMain.handle('plugin:getAlbum', async (_event, pluginId: string, id: string, page = 1, limit = 100) => { + const plugin = new PluginSystem(pluginId) + return plugin.getAlbum(id, page, limit) +}) + ipcMain.handle('plugin:uninstall', (_, id: string) => { const success = PluginSystem.uninstallPlugin(id) if (success) notifyPluginsChanged('uninstalled', id) @@ -127,6 +253,159 @@ ipcMain.handle('plugin:install', async () => { return result }) +// Auth IPC Handlers +ipcMain.handle('auth:getState', () => loadAuthState()) +ipcMain.handle('auth:getAccessToken', () => getValidAccessToken()) +ipcMain.handle('listenTogether:getWsUrl', async (_event, params: Record) => { + const token = await getValidAccessToken() + return getListenTogetherWsUrl({ token, ...params }) +}) +ipcMain.handle('auth:login', (_event, forcePrompt = false) => openLoginPage(Boolean(forcePrompt))) +ipcMain.handle('auth:qr:create', () => createQrLoginSession()) +ipcMain.handle('auth:qr:poll', async (_event, sessionId: string, pollToken: string) => { + const result = await pollQrLoginSession(String(sessionId), String(pollToken)) + if (result.status === 'success' && result.state) { + win?.webContents.send('auth:changed', { status: 'success', state: result.state }) + } + return result +}) +ipcMain.handle('auth:qr:cancel', (_event, sessionId: string, pollToken: string) => { + return cancelQrLoginSession(String(sessionId), String(pollToken)) +}) +ipcMain.handle('auth:refresh', () => refreshAuthState()) +ipcMain.handle('auth:logout', () => { + const state = clearAuthState() + win?.webContents.send('auth:changed', { status: 'logout', state }) + return state +}) + +ipcMain.handle('privacy:getLibrary', () => getLibraryPrivacy()) +ipcMain.handle('privacy:setLibrary', (_event, payload: { allow_public_library?: boolean; allow_public_profile?: boolean }) => { + return setLibraryPrivacy({ + allow_public_library: typeof payload?.allow_public_library === 'boolean' ? payload.allow_public_library : undefined, + allow_public_profile: typeof payload?.allow_public_profile === 'boolean' ? payload.allow_public_profile : undefined, + }) +}) + +ipcMain.handle('user:getProfile', (_event, userId: string) => { + return getUserProfile(String(userId || '')) +}) +ipcMain.handle('user:getPlaylists', (_event, userId: string) => { + return getUserPublicPlaylists(String(userId || '')) +}) +ipcMain.handle('user:getFavSongs', (_event, userId: string) => { + return getUserPublicFavSongs(String(userId || '')) +}) +ipcMain.handle('user:updateProfile', (_event, payload: any) => { + return updateCurrentUserProfile(payload || {}) +}) + +ipcMain.handle('heartbeat:pc', (_event, duration: number, timestamp?: number) => { + return sendPcHeartbeat(duration, timestamp) +}) + +ipcMain.handle('stats:listenTime', (_event, detail = 1, userId?: string) => { + return getListenTime(Number(detail) || 0, userId) +}) + +ipcMain.handle('stats:listenRange', (_event, start: string, end: string, userId?: string) => { + return getListenTimeRange(String(start), String(end), userId) +}) + +ipcMain.handle('stats:listenRank', (_event, period: 'week' | 'month' | 'year' = 'week', limit = 200) => { + return getListenRank(period, Number(limit) || 200) +}) + +// Playlist IPC Handlers +ipcMain.handle('playlist:list', async () => { + const local = listLocalPlaylists() + const cloud = await listCloudPlaylists().catch((err) => { + console.error('[Playlist] Failed to load cloud playlists:', err) + return [] + }) + return { local, cloud, items: [...local, ...cloud] } +}) + +ipcMain.handle('playlist:publicList', (_event, search = '', sort = 'visit', page = 1, limit = 50) => { + return listPublicPlaylists(String(search || ''), String(sort || 'visit'), Number(page) || 1, Number(limit) || 50) +}) + +ipcMain.handle('playlist:get', (_event, scope: PlaylistScope, id: string) => { + return getPlaylist(scope, id) +}) + +ipcMain.handle('playlist:create', (_event, scope: PlaylistScope, data: { name: string; desc?: string; is_public?: boolean }) => { + return createPlaylist(scope, data) +}) + +ipcMain.handle('playlist:update', (_event, scope: PlaylistScope, id: string, info: any) => { + return updatePlaylist(scope, id, info) +}) + +ipcMain.handle('playlist:delete', (_event, scope: PlaylistScope, id: string) => { + return deleteStoredPlaylist(scope, id) +}) + +ipcMain.handle('playlist:addSong', (_event, scope: PlaylistScope, id: string, song: any, index = -1) => { + return addSong(scope, id, song, index) +}) + +ipcMain.handle('playlist:removeSong', (_event, scope: PlaylistScope, id: string, index: number) => { + return removeSong(scope, id, index) +}) + +ipcMain.handle('playlist:export', async (_event, scope: PlaylistScope, id: string) => { + if (!win) return { success: false, canceled: true } + const playlist = await getPlaylist(scope, id) + const safeName = (playlist.info.name || 'playlist').replace(/[<>:"/\\|?*\x00-\x1F]/g, '_') + const { canceled, filePath } = await dialog.showSaveDialog(win, { + title: '导出歌单', + defaultPath: `${safeName}.qzplaylist.json`, + filters: [ + { name: 'QZMusic Playlist', extensions: ['json'] }, + { name: 'JSON', extensions: ['json'] }, + ], + }) + if (canceled || !filePath) return { success: false, canceled: true } + return exportPlaylist(scope, id, filePath) +}) + +ipcMain.handle('playlist:import', async () => { + if (!win) return { success: false, canceled: true } + const { canceled, filePaths } = await dialog.showOpenDialog(win, { + title: '导入歌单', + properties: ['openFile'], + filters: [ + { name: 'QZMusic Playlist', extensions: ['json'] }, + { name: 'JSON', extensions: ['json'] }, + ], + }) + if (canceled || filePaths.length === 0) return { success: false, canceled: true } + const playlist = importPlaylist(filePaths[0]) + return { success: true, playlist } +}) + +ipcMain.handle('playlist:convertScope', (_event, scope: PlaylistScope, id: string, targetScope: PlaylistScope) => { + return convertPlaylistScope(scope, id, targetScope) +}) + +ipcMain.handle('playlist:copyToLocal', (_event, scope: PlaylistScope, id: string) => { + return copyPlaylistToLocal(scope, id) +}) + +ipcMain.handle('image:selectAndUpload', async () => { + if (!win) return { success: false, canceled: true } + const { canceled, filePaths } = await dialog.showOpenDialog(win, { + title: '选择图片', + properties: ['openFile'], + filters: [ + { name: 'Images', extensions: ['jpg', 'jpeg', 'png', 'webp', 'gif'] }, + ], + }) + if (canceled || filePaths.length === 0) return { success: false, canceled: true } + return uploadImage(filePaths[0]) +}) + // Cache IPC Handlers ipcMain.handle('cache:getInfo', () => { const settings = loadSettings(); @@ -165,6 +444,36 @@ ipcMain.handle('dialog:openDirectory', async () => { return filePaths[0] }) +ipcMain.handle('dialog:openDirectories', async () => { + if (!win) return [] + const { canceled, filePaths } = await dialog.showOpenDialog(win, { + title: '选择音乐文件夹', + properties: ['openDirectory', 'multiSelections', 'createDirectory'] + }) + if (canceled || filePaths.length === 0) return [] + return filePaths +}) + +ipcMain.handle('localMusic:getLibrary', () => { + return getLocalMusicLibrary() +}) + +ipcMain.handle('localMusic:scan', async (_event, roots: string[]) => { + return scanLocalMusic(Array.isArray(roots) ? roots : []) +}) + +ipcMain.handle('localMusic:setRoots', (_event, roots: string[]) => { + return setLocalMusicRoots(Array.isArray(roots) ? roots : []) +}) + +ipcMain.handle('localMusic:remove', (_event, id: string) => { + return removeLocalSong(id) +}) + +ipcMain.handle('localMusic:clearMissing', () => { + return clearMissingLocalSongs() +}) + ipcMain.handle('cache:changeLocation', async (_, newPath: string) => { try { const settings = loadSettings() @@ -299,6 +608,9 @@ app.whenReady().then(() => { Menu.setApplicationMenu(null) createWindow() + const callbackUrl = process.argv.find((arg) => arg.startsWith('qzmusic://auth_result')) + if (callbackUrl) handleAuthCallback(callbackUrl) + // Start Proxy Server startProxyServer() diff --git a/src/main/localMusicStore.ts b/src/main/localMusicStore.ts new file mode 100644 index 0000000..61bb056 --- /dev/null +++ b/src/main/localMusicStore.ts @@ -0,0 +1,235 @@ +import { app } from 'electron' +import fs from 'node:fs' +import path from 'node:path' +import { execFile } from 'node:child_process' +import { promisify } from 'node:util' +import { pathToFileURL } from 'node:url' + +const execFileAsync = promisify(execFile) + +const AUDIO_EXTENSIONS = new Set([ + '.mp3', + '.flac', + '.m4a', + '.mp4', + '.aac', + '.ogg', + '.opus', + '.wav', + '.aiff', + '.aif', + '.ape', + '.wv', +]) + +export interface LocalSong { + id: string + path: string + name: string + artist: string + albumName: string + duration: string + durationSeconds: number + source: 'local' + type: 'Local' + url: string + picUrl: string + lyric: string + quality: string + bitrate: number + sampleRate: number + channels: number + size: number + modifiedAt: number + addedAt: number +} + +interface LocalMusicLibrary { + roots: string[] + songs: LocalSong[] + updatedAt: number +} + +function getLibraryPath(): string { + return path.join(app.getPath('userData'), 'local-music.json') +} + +function getReaderExe(): string { + const candidates = [ + path.join(process.env.APP_ROOT || '', 'native', 'taglib_reader', 'build', 'taglib_reader_cli.exe'), + path.join(process.resourcesPath || '', 'native', 'taglib_reader_cli.exe'), + ] + const target = candidates.find((candidate) => candidate && fs.existsSync(candidate)) + if (!target) throw new Error('TagLib reader executable not found') + return target +} + +function getArtworkDir(): string { + return path.join(app.getPath('userData'), 'local-music-artwork') +} + +function getDefaultRoots(): string[] { + const username = path.basename(app.getPath('home')) + const roots: string[] = [] + for (let code = 67; code <= 90; code++) { + const drive = `${String.fromCharCode(code)}:\\` + if (!fs.existsSync(drive)) continue + const userRoot = path.join(drive, 'Users', username) + for (const dirName of ['Music', '音乐', 'Downloads', '下载']) { + const candidate = path.join(userRoot, dirName) + if (fs.existsSync(candidate) && fs.statSync(candidate).isDirectory()) roots.push(candidate) + } + } + return Array.from(new Set(roots)) +} + +function loadLibrary(): LocalMusicLibrary { + const file = getLibraryPath() + try { + if (fs.existsSync(file)) { + const parsed = JSON.parse(fs.readFileSync(file, 'utf8')) as LocalMusicLibrary + let changed = false + const songs = Array.isArray(parsed.songs) + ? parsed.songs + .filter((song) => { + const exists = fs.existsSync(song.path) + if (!exists) changed = true + return exists + }) + .map((song) => { + if (!song.picUrl || !song.picUrl.startsWith('data:')) return song + changed = true + return { ...song, picUrl: '' } + }) + : [] + const library = { + roots: Array.isArray(parsed.roots) ? parsed.roots : [], + songs, + updatedAt: Number(parsed.updatedAt) || 0, + } + if (changed || songs.length !== parsed.songs?.length) saveLibrary(library) + return library + } + } catch (error) { + console.error('[LocalMusic] Failed to load library:', error) + } + return { roots: getDefaultRoots(), songs: [], updatedAt: 0 } +} + +function saveLibrary(library: LocalMusicLibrary): LocalMusicLibrary { + fs.writeFileSync(getLibraryPath(), JSON.stringify(library, null, 2), 'utf8') + return library +} + +function isPathUnderRoots(filePath: string, roots: string[]): boolean { + const normalizedFile = path.resolve(filePath).toLowerCase() + return roots.some((root) => { + const normalizedRoot = path.resolve(root).toLowerCase() + return normalizedFile === normalizedRoot || normalizedFile.startsWith(`${normalizedRoot}${path.sep}`) + }) +} + +function fallbackName(filePath: string): string { + return path.basename(filePath, path.extname(filePath)) +} + +function createLocalSong(filePath: string, metadata: any): LocalSong { + const stat = fs.statSync(filePath) + const title = String(metadata.title || '').trim() + const artist = String(metadata.artist || '').trim() + const album = String(metadata.album || '').trim() + return { + id: Buffer.from(filePath, 'utf8').toString('base64url'), + path: filePath, + name: title || fallbackName(filePath), + artist: artist || '未知艺术家', + albumName: album || '未知专辑', + duration: String(metadata.duration || '00:00'), + durationSeconds: Number(metadata.durationSeconds) || 0, + source: 'local', + type: 'Local', + url: filePath, + picUrl: metadata.coverPath ? pathToFileURL(String(metadata.coverPath)).toString() : '', + lyric: String(metadata.lyric || '').trim(), + quality: String(metadata.quality || ''), + bitrate: Number(metadata.bitrate) || 0, + sampleRate: Number(metadata.sampleRate) || 0, + channels: Number(metadata.channels) || 0, + size: stat.size, + modifiedAt: stat.mtimeMs, + addedAt: Date.now(), + } +} + +export function getLocalMusicLibrary(): LocalMusicLibrary { + return loadLibrary() +} + +export function setLocalMusicRoots(roots: string[]): LocalMusicLibrary { + const library = loadLibrary() + const normalizedRoots = Array.from(new Set( + roots + .map((root) => path.resolve(root)) + .filter((root) => fs.existsSync(root) && fs.statSync(root).isDirectory()) + )) + return saveLibrary({ + ...library, + roots: normalizedRoots, + songs: library.songs.filter((song) => fs.existsSync(song.path) && isPathUnderRoots(song.path, normalizedRoots)), + updatedAt: Date.now(), + }) +} + +export async function scanLocalMusic(roots: string[]): Promise { + const normalizedRoots = Array.from(new Set( + roots + .map((root) => path.resolve(root)) + .filter((root) => fs.existsSync(root) && fs.statSync(root).isDirectory()) + )) + const reader = getReaderExe() + const artworkDir = getArtworkDir() + fs.mkdirSync(artworkDir, { recursive: true }) + const { stdout, stderr } = await execFileAsync(reader, ['scan', '--artwork-dir', artworkDir, ...normalizedRoots], { + encoding: 'utf8', + maxBuffer: 256 * 1024 * 1024, + windowsHide: true, + timeout: 15 * 60 * 1000, + }) + if (stderr?.trim()) console.warn('[LocalMusic] Scanner warnings:', stderr) + + const parsed = JSON.parse(stdout) as { songs?: any[] } + const songs: LocalSong[] = [] + for (const metadata of parsed.songs || []) { + const filePath = String(metadata?.path || '') + if (!filePath || !fs.existsSync(filePath) || !AUDIO_EXTENSIONS.has(path.extname(filePath).toLowerCase())) continue + try { + songs.push(createLocalSong(filePath, metadata)) + } catch (error) { + console.warn('[LocalMusic] Failed to normalize tags:', filePath, error) + } + } + + return saveLibrary({ + roots: normalizedRoots, + songs, + updatedAt: Date.now(), + }) +} + +export function removeLocalSong(id: string): LocalMusicLibrary { + const library = loadLibrary() + return saveLibrary({ + ...library, + songs: library.songs.filter((song) => song.id !== id), + updatedAt: Date.now(), + }) +} + +export function clearMissingLocalSongs(): LocalMusicLibrary { + const library = loadLibrary() + return saveLibrary({ + ...library, + songs: library.songs.filter((song) => fs.existsSync(song.path)), + updatedAt: Date.now(), + }) +} diff --git a/src/main/playlistStore.ts b/src/main/playlistStore.ts new file mode 100644 index 0000000..d0b493f --- /dev/null +++ b/src/main/playlistStore.ts @@ -0,0 +1,412 @@ +import { app } from 'electron' +import fs from 'node:fs' +import path from 'node:path' +import crypto from 'node:crypto' +import { loadAuthState, qzFetch } from './authStore' + +export type PlaylistScope = 'local' | 'cloud' + +export interface PlaylistSong { + id: string + name: string + artist?: string + artists?: string + source: string + picUrl?: string + pic?: string + mPic?: string + sPic?: string + albumName?: string | null + albumId?: string | null + duration?: string + interval?: string + url?: string + type?: string + qualities?: Record + types?: Record +} + +export interface PlaylistInfo { + id: string + name: string + desc: string + img: string + cover_mode?: 'auto' | 'custom' | string + author?: string + play_count?: string + visit_count?: number + is_public?: boolean +} + +export interface AppPlaylist { + id: string + scope: PlaylistScope + source: PlaylistScope + info: PlaylistInfo + list: PlaylistSong[] + total: number +} + +type LocalPlaylistFile = Omit & { + id: string + list: PlaylistSong[] + info: PlaylistInfo +} + +function getPlaylistsDir(): string { + return path.join(app.getPath('userData'), 'playlists') +} + +function getLocalPlaylistPath(id: string): string { + return path.join(getPlaylistsDir(), `${id}.json`) +} + +function ensurePlaylistsDir(): void { + fs.mkdirSync(getPlaylistsDir(), { recursive: true }) +} + +function assertLocalId(id: string): void { + if (!/^[a-z0-9._-]+$/i.test(id)) throw new Error('Invalid playlist id') +} + +function normalizeSong(song: any): PlaylistSong { + const id = String(song?.id ?? song?.songmid ?? song?.songId ?? '') + const artist = song?.artist ?? song?.artists ?? song?.singer ?? '' + const pic = song?.picUrl ?? song?.pic ?? song?.mPic ?? song?.img ?? '' + const types = song?.types ?? song?.qualities ?? {} + + return { + ...song, + id, + name: String(song?.name ?? ''), + artist: Array.isArray(artist) ? artist.join('、') : String(artist), + artists: Array.isArray(artist) ? artist.join('、') : String(artist), + source: String(song?.source ?? 'local'), + picUrl: pic, + pic, + mPic: song?.mPic ?? song?.m_img ?? pic, + sPic: song?.sPic ?? song?.s_img ?? pic, + interval: String(song?.interval ?? song?.duration ?? ''), + duration: String(song?.duration ?? song?.interval ?? ''), + type: song?.type ?? (song?.source === 'local' ? 'Local' : 'Remote'), + qualities: types, + types, + } +} + +function normalizeLocalPlaylist(raw: LocalPlaylistFile): AppPlaylist { + const list = Array.isArray(raw.list) ? raw.list.map(normalizeSong) : [] + return { + id: raw.id, + scope: 'local', + source: 'local', + info: { + id: raw.id, + name: raw.info?.name || '新建歌单', + desc: raw.info?.desc || '', + img: raw.info?.img || list[0]?.picUrl || '', + cover_mode: raw.info?.cover_mode || 'auto', + author: raw.info?.author || '本地', + play_count: raw.info?.play_count || '', + visit_count: Number(raw.info?.visit_count ?? raw.info?.play_count ?? 0) || 0, + is_public: Boolean(raw.info?.is_public), + }, + list, + total: list.length, + } +} + +function normalizeCloudPlaylist(raw: any): AppPlaylist { + const info = raw?.info ?? raw + const list = Array.isArray(raw?.list) ? raw.list.map(normalizeSong) : [] + const id = String(info?.id ?? raw?.id ?? '') + const total = Number(raw?.total ?? info?.total ?? list.length) || list.length + return { + id, + scope: 'cloud', + source: 'cloud', + info: { + id, + name: info?.name || '云端歌单', + desc: info?.desc || '', + img: info?.img || info?.pic || list[0]?.picUrl || '', + cover_mode: info?.cover_mode || info?.coverMode || 'auto', + author: info?.author || '', + play_count: info?.play_count || '', + visit_count: Number(info?.visit_count ?? info?.play_count ?? 0) || 0, + is_public: Boolean(info?.is_public ?? info?.public ?? false), + }, + list, + total, + } +} + +function readLocalPlaylist(id: string): AppPlaylist { + assertLocalId(id) + const raw = JSON.parse(fs.readFileSync(getLocalPlaylistPath(id), 'utf8')) as LocalPlaylistFile + return normalizeLocalPlaylist(raw) +} + +function writeLocalPlaylist(playlist: AppPlaylist): AppPlaylist { + ensurePlaylistsDir() + assertLocalId(playlist.id) + const normalized = normalizeLocalPlaylist({ + id: playlist.id, + info: playlist.info, + list: playlist.list, + }) + fs.writeFileSync(getLocalPlaylistPath(playlist.id), JSON.stringify({ + id: normalized.id, + info: normalized.info, + list: normalized.list, + }, null, 2), 'utf8') + return normalized +} + +function createLocalPlaylistCopy(playlist: AppPlaylist): AppPlaylist { + const id = crypto.randomUUID() + return writeLocalPlaylist({ + ...playlist, + id, + scope: 'local', + source: 'local', + info: { + ...playlist.info, + id, + author: '本地', + }, + list: playlist.list.map(normalizeSong), + total: playlist.list.length, + }) +} + +async function createCloudPlaylistCopy(playlist: AppPlaylist): Promise { + const list = playlist.list.map(normalizeSong) + const info = { + ...playlist.info, + id: '', + author: '', + is_public: Boolean(playlist.info.is_public), + } + const result = await qzFetch('/playlist/', { + method: 'POST', + body: JSON.stringify({ info, list }), + }) + if (result?.status !== 'success' || !result.id) { + throw new Error(result?.message || 'Create cloud playlist failed') + } + + const id = String(result.id) + let created = await getPlaylist('cloud', id) + if ((created.list?.length || 0) === 0 && list.length > 0) { + for (const song of list) { + const addResult = await qzFetch(`/playlist/${encodeURIComponent(id)}/list`, { + method: 'POST', + body: JSON.stringify({ data: song, index: -1 }), + }) + if (addResult?.status !== 'success') throw new Error(addResult?.message || 'Add song failed') + } + created = await getPlaylist('cloud', id) + } + return created +} + +function normalizeImportedPlaylist(raw: any): AppPlaylist { + const payload = raw?.type === 'qzmusic-playlist' ? raw : raw?.playlist ? raw.playlist : raw + const rawInfo = payload?.info ?? payload + const list = Array.isArray(payload?.list) ? payload.list.map(normalizeSong) : [] + const id = crypto.randomUUID() + return normalizeLocalPlaylist({ + id, + info: { + id, + name: rawInfo?.name || '导入的歌单', + desc: rawInfo?.desc || '', + img: rawInfo?.img || rawInfo?.pic || list[0]?.picUrl || '', + cover_mode: rawInfo?.cover_mode || rawInfo?.coverMode || 'auto', + author: '本地', + play_count: '', + visit_count: 0, + }, + list, + }) +} + +export function listLocalPlaylists(): AppPlaylist[] { + ensurePlaylistsDir() + return fs.readdirSync(getPlaylistsDir(), { withFileTypes: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith('.json')) + .map((entry) => { + try { + return readLocalPlaylist(path.basename(entry.name, '.json')) + } catch (err) { + console.error('[Playlist] Failed to read local playlist:', entry.name, err) + return null + } + }) + .filter((playlist): playlist is AppPlaylist => playlist !== null) +} + +export async function listCloudPlaylists(): Promise { + const userId = loadAuthState().userInfo?.id + if (!userId) return [] + const raw = await qzFetch(`/user/${encodeURIComponent(userId)}/playlists`) + return Array.isArray(raw) ? raw.map(normalizeCloudPlaylist) : [] +} + +export async function listPublicPlaylists( + search = '', + sort = 'visit', + page = 1, + limit = 50, +): Promise<{ items: AppPlaylist[]; total: number; page: number; limit: number; sort: string }> { + const query = new URLSearchParams({ + page: String(Math.max(1, Number(page) || 1)), + limit: String(Math.max(1, Math.min(50, Number(limit) || 50))), + sort: ['visit', 'name', 'total'].includes(sort) ? sort : 'visit', + }) + if (search.trim()) query.set('search', search.trim()) + const raw = await qzFetch(`/playlist/public?${query.toString()}`) + const items = Array.isArray(raw?.items) ? raw.items.map(normalizeCloudPlaylist) : [] + return { + items, + total: Number(raw?.total ?? items.length) || items.length, + page: Number(raw?.page ?? page) || page, + limit: Number(raw?.limit ?? limit) || limit, + sort: String(raw?.sort ?? sort), + } +} + +export async function getPlaylist(scope: PlaylistScope, id: string): Promise { + if (scope === 'local') return readLocalPlaylist(id) + const raw = await qzFetch(`/playlist/${encodeURIComponent(id)}`) + return normalizeCloudPlaylist(raw) +} + +export async function createPlaylist(scope: PlaylistScope, data: { name: string; desc?: string; is_public?: boolean }): Promise { + const id = scope === 'local' ? crypto.randomUUID() : '' + const playlist: AppPlaylist = { + id, + scope, + source: scope, + info: { + id, + name: data.name.trim() || '新建歌单', + desc: data.desc?.trim() || '', + img: '', + author: scope === 'local' ? '本地' : '', + play_count: '', + visit_count: 0, + is_public: scope === 'cloud' ? Boolean(data.is_public) : false, + }, + list: [], + total: 0, + } + + if (scope === 'local') return writeLocalPlaylist(playlist) + + const result = await qzFetch('/playlist/', { + method: 'POST', + body: JSON.stringify({ info: playlist.info, list: [] }), + }) + if (result?.status !== 'success' || !result.id) { + throw new Error(result?.message || 'Create cloud playlist failed') + } + return getPlaylist('cloud', String(result.id)) +} + +export async function updatePlaylist(scope: PlaylistScope, id: string, info: Partial): Promise { + if (scope === 'local') { + const playlist = readLocalPlaylist(id) + playlist.info = { ...playlist.info, ...info, id } + return writeLocalPlaylist(playlist) + } + + const result = await qzFetch(`/playlist/${encodeURIComponent(id)}`, { + method: 'PATCH', + body: JSON.stringify(info), + }) + if (result?.status !== 'success') throw new Error(result?.message || 'Update cloud playlist failed') + return getPlaylist('cloud', id) +} + +export async function copyPlaylistToLocal(scope: PlaylistScope, id: string): Promise { + const playlist = await getPlaylist(scope, id) + return createLocalPlaylistCopy(playlist) +} + +export async function deletePlaylist(scope: PlaylistScope, id: string): Promise<{ success: boolean }> { + if (scope === 'local') { + assertLocalId(id) + const target = getLocalPlaylistPath(id) + if (fs.existsSync(target)) fs.unlinkSync(target) + return { success: true } + } + + const result = await qzFetch(`/playlist/${encodeURIComponent(id)}`, { method: 'DELETE' }) + return { success: result?.status === 'success' } +} + +export async function addSong(scope: PlaylistScope, id: string, song: PlaylistSong, index = -1): Promise { + const normalizedSong = normalizeSong(song) + if (scope === 'local') { + const playlist = readLocalPlaylist(id) + const exists = playlist.list.some((item) => item.id === normalizedSong.id && item.source === normalizedSong.source) + if (!exists) { + if (index >= 0 && index <= playlist.list.length) playlist.list.splice(index, 0, normalizedSong) + else playlist.list.push(normalizedSong) + } + playlist.info.img = playlist.info.img || normalizedSong.picUrl || '' + return writeLocalPlaylist(playlist) + } + + const result = await qzFetch(`/playlist/${encodeURIComponent(id)}/list`, { + method: 'POST', + body: JSON.stringify({ data: normalizedSong, index }), + }) + if (result?.status !== 'success') throw new Error(result?.message || 'Add song failed') + return getPlaylist('cloud', id) +} + +export async function removeSong(scope: PlaylistScope, id: string, index: number): Promise { + if (scope === 'local') { + const playlist = readLocalPlaylist(id) + if (index >= 0 && index < playlist.list.length) playlist.list.splice(index, 1) + playlist.info.img = playlist.list[0]?.picUrl || '' + return writeLocalPlaylist(playlist) + } + + const result = await qzFetch(`/playlist/${encodeURIComponent(id)}/list/${index}`, { method: 'DELETE' }) + if (result?.status !== 'success') throw new Error(result?.message || 'Remove song failed') + return getPlaylist('cloud', id) +} + +export async function exportPlaylist(scope: PlaylistScope, id: string, filePath: string): Promise<{ success: boolean; path: string }> { + const playlist = await getPlaylist(scope, id) + const payload = { + type: 'qzmusic-playlist', + version: 1, + exportedAt: new Date().toISOString(), + info: playlist.info, + list: playlist.list.map(normalizeSong), + } + fs.writeFileSync(filePath, JSON.stringify(payload, null, 2), 'utf8') + return { success: true, path: filePath } +} + +export function importPlaylist(filePath: string): AppPlaylist { + const raw = JSON.parse(fs.readFileSync(filePath, 'utf8')) + return writeLocalPlaylist(normalizeImportedPlaylist(raw)) +} + +export async function convertPlaylistScope(scope: PlaylistScope, id: string, targetScope: PlaylistScope): Promise { + if (scope === targetScope) return getPlaylist(scope, id) + const playlist = await getPlaylist(scope, id) + const converted = targetScope === 'local' + ? createLocalPlaylistCopy(playlist) + : await createCloudPlaylistCopy(playlist) + + const deleted = await deletePlaylist(scope, id) + if (!deleted.success) throw new Error('Converted playlist, but failed to delete source playlist') + return converted +} diff --git a/src/main/pluginSystem.ts b/src/main/pluginSystem.ts index 474370a..6835075 100644 --- a/src/main/pluginSystem.ts +++ b/src/main/pluginSystem.ts @@ -30,10 +30,15 @@ type PluginModule = Record & { info?: PluginInfo['info'] getUrl?: (...args: any[]) => any getLyric?: (...args: any[]) => any + getPlaylist?: (...args: any[]) => any + getPlayList?: (...args: any[]) => any + getAlbum?: (...args: any[]) => any musicSearch?: { search?: (...args: any[]) => any } | ((...args: any[]) => any) search?: (...args: any[]) => any + songList?: Record + album?: Record } type ModuleCacheEntry = { @@ -171,6 +176,80 @@ function normalizeSearchResult(result: any, pluginId: string): any { } } +function formatDuration(ms: number): string { + const totalSeconds = Math.floor(ms / 1000) + const minutes = Math.floor(totalSeconds / 60) + const seconds = totalSeconds % 60 + return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}` +} + +function normalizeDuration(value: any): string { + if (typeof value === 'string' && /^\d{1,3}:\d{2}$/.test(value)) return value + const milliseconds = Number(value) + return Number.isFinite(milliseconds) ? formatDuration(milliseconds) : '00:00' +} + +function normalizeSongForApp(item: any, pluginId: string): any { + const normalized = normalizeSearchItem(item, pluginId) + const picUrl = normalized.m_img || normalized.mPic || normalized.pic || normalized.img || normalized.picUrl || '' + + return { + ...normalized, + id: String(normalized.id || normalized.songmid || ''), + name: String(normalized.name || ''), + artist: String(normalized.artists || normalized.singer || normalized.artist || ''), + picUrl, + url: '', + duration: normalizeDuration(normalized.interval ?? normalized.duration ?? normalized.dt), + source: String(normalized.source || pluginId), + albumId: normalized.albumId ? String(normalized.albumId) : null, + albumName: normalized.albumName || '', + type: 'Remote', + quality: 'auto', + types: normalized.types ?? normalized.qualities ?? {}, + } +} + +function normalizePluginCollection(result: any, pluginId: string, id: string, kind: 'playlist' | 'album'): any { + const rawList = Array.isArray(result) ? result : result?.list + const list = Array.isArray(rawList) + ? rawList.filter(Boolean).map((item) => normalizeSongForApp(item, pluginId)) + : [] + const info = result?.info ?? result ?? {} + const title = info.name || info.title || (kind === 'album' ? '插件专辑' : '插件歌单') + const desc = info.desc || info.description || '' + const img = info.img || info.pic || info.picUrl || info.cover || list[0]?.picUrl || '' + const author = info.author || info.artist || info.creator || '' + + return { + id: String(info.id ?? id), + scope: 'plugin', + source: pluginId, + kind, + info: { + id: String(info.id ?? id), + name: String(title), + desc: String(desc), + img: String(img), + author: String(author), + play_count: String(info.play_count || info.playCount || ''), + }, + list, + total: Number(result?.total ?? info.total ?? list.length) || list.length, + page: Number(result?.page ?? 1) || 1, + limit: Number(result?.limit ?? list.length) || list.length, + } +} + +async function callCandidate(candidates: Array<{ target: any; method: string; args: any[] }>): Promise { + for (const candidate of candidates) { + const fn = candidate.target?.[candidate.method] + if (typeof fn !== 'function') continue + return await unwrapPluginResult(fn.apply(candidate.target, candidate.args)) + } + throw new Error('Method not found') +} + export class PluginSystem { private readonly pluginId: string private plugin: PluginModule | null = null @@ -210,6 +289,12 @@ export class PluginSystem { if (method === 'getUrl') { return this.getUrl(String(args[0] ?? ''), String(args[1] ?? '')) } + if (method === 'getPlaylist') { + return this.getPlaylist(String(args[0] ?? ''), Number(args[1]) || 1, Number(args[2]) || 100) + } + if (method === 'getAlbum') { + return this.getAlbum(String(args[0] ?? ''), Number(args[1]) || 1, Number(args[2]) || 100) + } const plugin = this.getRequiredPlugin() const target = plugin[method] @@ -290,6 +375,29 @@ export class PluginSystem { } } + async getPlaylist(id: string, page = 1, limit = 100): Promise { + const plugin = this.getRequiredPlugin() + const result = await callCandidate([ + { target: plugin, method: 'getPlaylist', args: [id, page, limit] }, + { target: plugin, method: 'getPlayList', args: [id, page, limit] }, + { target: plugin, method: 'getMusicSheet', args: [id, page, limit] }, + { target: plugin.songList, method: 'getListDetail', args: [id, page, limit] }, + { target: plugin.songList, method: 'getPlaylistDetail', args: [id, page, limit] }, + ]) + return normalizePluginCollection(result, this.pluginId, id, 'playlist') + } + + async getAlbum(id: string, page = 1, limit = 100): Promise { + const plugin = this.getRequiredPlugin() + const result = await callCandidate([ + { target: plugin, method: 'getAlbum', args: [id, page, limit] }, + { target: plugin, method: 'getMusicAlbum', args: [id, page, limit] }, + { target: plugin.album, method: 'getListDetail', args: [id, page, limit] }, + { target: plugin.songList, method: 'getAlbumDetail', args: [id, page, limit] }, + ]) + return normalizePluginCollection(result, this.pluginId, id, 'album') + } + static getAllPlugins(): any[] { const pluginsPath = getPluginsPath() if (!fs.existsSync(pluginsPath)) return [] diff --git a/src/main/settingsStore.ts b/src/main/settingsStore.ts index d15cb74..b41b7a6 100644 --- a/src/main/settingsStore.ts +++ b/src/main/settingsStore.ts @@ -9,13 +9,18 @@ export interface AppSettings { // Appearance theme: 'dark' | 'light'; accentColor: string; + // Playlist + playlistPagingMode: 'infinite' | 'pagination'; + openPlayerOnSongClick: boolean; } const DEFAULT_SETTINGS: AppSettings = { persistCache: true, cachePath: path.join(app.getPath('userData'), 'cache'), // Default theme: 'light', - accentColor: '#ec4141', // Default red + accentColor: '#8289d3', + playlistPagingMode: 'infinite', + openPlayerOnSongClick: false, }; let settingsCache: AppSettings | null = null; diff --git a/src/preload/index.ts b/src/preload/index.ts index ea77ba6..1cb56dc 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -1,11 +1,25 @@ import { contextBridge, ipcRenderer } from 'electron' +const toPlainStringArray = (value: unknown): string[] => { + if (!Array.isArray(value)) return [] + return value.map((item) => String(item)).filter(Boolean) +} + +const toCloneableObject = (value: unknown): any => { + try { + return JSON.parse(JSON.stringify(value ?? {})) + } catch { + return {} + } +} + contextBridge.exposeInMainWorld('electronAPI', { // 窗口控制 minimizeWindow: () => ipcRenderer.send('window-minimize'), maximizeWindow: () => ipcRenderer.send('window-maximize'), closeWindow: () => ipcRenderer.send('window-close'), isMaximized: () => ipcRenderer.invoke('window-is-maximized'), + setTaskbarProgress: (progress: number, mode: 'normal' | 'paused' = 'normal') => ipcRenderer.invoke('window:setProgressBar', progress, mode), // qzplayer Control qzplayer: { @@ -24,6 +38,8 @@ contextBridge.exposeInMainWorld('electronAPI', { call: (pluginId: string, method: string, args: any[]) => ipcRenderer.invoke('plugin:call', pluginId, method, args), search: (pluginId: string, query: string, page: number, limit: number) => ipcRenderer.invoke('plugin:call', pluginId, 'search', [query, page, limit]), getLyric: (pluginId: string, id: string) => ipcRenderer.invoke('plugin:call', pluginId, 'getLyric', [id]), + getPlaylist: (pluginId: string, id: string, page = 1, limit = 100) => ipcRenderer.invoke('plugin:getPlaylist', pluginId, id, page, limit), + getAlbum: (pluginId: string, id: string, page = 1, limit = 100) => ipcRenderer.invoke('plugin:getAlbum', pluginId, id, page, limit), getAll: () => ipcRenderer.invoke('plugin:getAll'), uninstall: (id: string) => ipcRenderer.invoke('plugin:uninstall', id), install: () => ipcRenderer.invoke('plugin:install'), @@ -37,6 +53,67 @@ contextBridge.exposeInMainWorld('electronAPI', { }, }, + auth: { + getState: () => ipcRenderer.invoke('auth:getState'), + getAccessToken: () => ipcRenderer.invoke('auth:getAccessToken'), + login: (forcePrompt = false) => ipcRenderer.invoke('auth:login', forcePrompt), + qrCreate: () => ipcRenderer.invoke('auth:qr:create'), + qrPoll: (sessionId: string, pollToken: string) => ipcRenderer.invoke('auth:qr:poll', sessionId, pollToken), + qrCancel: (sessionId: string, pollToken: string) => ipcRenderer.invoke('auth:qr:cancel', sessionId, pollToken), + refresh: () => ipcRenderer.invoke('auth:refresh'), + logout: () => ipcRenderer.invoke('auth:logout'), + onChanged: (callback: (payload: any) => void) => { + const listener = (_event: Electron.IpcRendererEvent, payload: any) => callback(payload) + ipcRenderer.on('auth:changed', listener) + return () => ipcRenderer.removeListener('auth:changed', listener) + }, + }, + + listenTogether: { + getWsUrl: (params: Record) => ipcRenderer.invoke('listenTogether:getWsUrl', params), + }, + + heartbeat: { + sendPc: (duration: number, timestamp?: number) => ipcRenderer.invoke('heartbeat:pc', duration, timestamp), + }, + + stats: { + getListenTime: (detail = 1, userId?: string) => ipcRenderer.invoke('stats:listenTime', detail, userId), + getListenRange: (start: string, end: string, userId?: string) => ipcRenderer.invoke('stats:listenRange', start, end, userId), + getListenRank: (period: 'week' | 'month' | 'year' = 'week', limit = 200) => ipcRenderer.invoke('stats:listenRank', period, limit), + }, + + playlist: { + list: () => ipcRenderer.invoke('playlist:list'), + publicList: (search = '', sort = 'visit', page = 1, limit = 50) => ipcRenderer.invoke('playlist:publicList', search, sort, page, limit), + get: (scope: 'local' | 'cloud', id: string) => ipcRenderer.invoke('playlist:get', scope, id), + create: (scope: 'local' | 'cloud', data: { name: string; desc?: string; is_public?: boolean }) => ipcRenderer.invoke('playlist:create', scope, data), + update: (scope: 'local' | 'cloud', id: string, info: any) => ipcRenderer.invoke('playlist:update', scope, id, info), + delete: (scope: 'local' | 'cloud', id: string) => ipcRenderer.invoke('playlist:delete', scope, id), + addSong: (scope: 'local' | 'cloud', id: string, song: any, index = -1) => ipcRenderer.invoke('playlist:addSong', scope, id, toCloneableObject(song), index), + removeSong: (scope: 'local' | 'cloud', id: string, index: number) => ipcRenderer.invoke('playlist:removeSong', scope, id, index), + export: (scope: 'local' | 'cloud', id: string) => ipcRenderer.invoke('playlist:export', scope, id), + import: () => ipcRenderer.invoke('playlist:import'), + convertScope: (scope: 'local' | 'cloud', id: string, targetScope: 'local' | 'cloud') => ipcRenderer.invoke('playlist:convertScope', scope, id, targetScope), + copyToLocal: (scope: 'local' | 'cloud', id: string) => ipcRenderer.invoke('playlist:copyToLocal', scope, id), + }, + + image: { + selectAndUpload: () => ipcRenderer.invoke('image:selectAndUpload'), + }, + + privacy: { + getLibrary: () => ipcRenderer.invoke('privacy:getLibrary'), + setLibrary: (payload: { allow_public_library?: boolean; allow_public_profile?: boolean }) => ipcRenderer.invoke('privacy:setLibrary', toCloneableObject(payload)), + }, + + user: { + getProfile: (userId: string) => ipcRenderer.invoke('user:getProfile', userId), + getPlaylists: (userId: string) => ipcRenderer.invoke('user:getPlaylists', userId), + getFavSongs: (userId: string) => ipcRenderer.invoke('user:getFavSongs', userId), + updateProfile: (payload: any) => ipcRenderer.invoke('user:updateProfile', toCloneableObject(payload)), + }, + // Cache Control getCacheInfo: () => ipcRenderer.invoke('cache:getInfo'), setCachePersist: (persist: boolean) => ipcRenderer.invoke('cache:setPersist', persist), @@ -44,6 +121,15 @@ contextBridge.exposeInMainWorld('electronAPI', { clearCache: () => ipcRenderer.invoke('cache:clear'), changeCacheLocation: (newPath: string) => ipcRenderer.invoke('cache:changeLocation', newPath), selectDirectory: () => ipcRenderer.invoke('dialog:openDirectory'), + selectDirectories: () => ipcRenderer.invoke('dialog:openDirectories'), + + localMusic: { + getLibrary: () => ipcRenderer.invoke('localMusic:getLibrary'), + scan: (roots: string[]) => ipcRenderer.invoke('localMusic:scan', toPlainStringArray(roots)), + setRoots: (roots: string[]) => ipcRenderer.invoke('localMusic:setRoots', toPlainStringArray(roots)), + remove: (id: string) => ipcRenderer.invoke('localMusic:remove', String(id)), + clearMissing: () => ipcRenderer.invoke('localMusic:clearMissing'), + }, // Settings settings: { diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue index 33f18a6..baca889 100644 --- a/src/renderer/src/App.vue +++ b/src/renderer/src/App.vue @@ -1,30 +1,76 @@