From 2a2fb9ad552c1fa9fc9d5a7224976545a1aaa528 Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Tue, 17 Feb 2026 21:05:26 +0000 Subject: [PATCH] refactor(discord): Update links and art * Use pocike icon for placeholder art * Use MS logo for small art with link to docs * Use web link as track url, if available * Use MB link as track or artist url --- assets/README.md | 1 + assets/default-artwork.png | Bin 0 -> 1485 bytes .../docs/configuration/clients/discord.mdx | 6 ++-- docsite/static/img/discord_presence_art.png | Bin 19926 -> 18475 bytes ...g => discord_presence_discord_default.png} | Bin .../img/discord_presence_ms_default.png | Bin 0 -> 9407 bytes .../common/vendor/discord/DiscordWSClient.ts | 31 +++++++++--------- 7 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 assets/README.md create mode 100644 assets/default-artwork.png rename docsite/static/img/{discord_presence_default.png => discord_presence_discord_default.png} (100%) create mode 100644 docsite/static/img/discord_presence_ms_default.png diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 00000000..080fffbc --- /dev/null +++ b/assets/README.md @@ -0,0 +1 @@ +* Attribution for [`default-artwork.png`](/assets/default-artwork.png): https://www.flaticon.com/free-icon/music_15795471 \ No newline at end of file diff --git a/assets/default-artwork.png b/assets/default-artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..f9eeec725b467003f22f62c88994505915e06224 GIT binary patch literal 1485 zcma)6do+}J82)|3%oyVq22E~JC}Zd#w;?og%Ozwrpn>v!PtV$tviZ#YP z_xt%a2bC4ptuh$7Y^X_18p)cScF)!?b)VMEzFJDmuce<$RxCy@kFY$ zJWFHz#!pvLJ#KGe5~8Tn<-2~)5+`JoUvKg;v3l9c@{;i*P;Eq)MS5?QGs0f(aoIz5 zrMiT2yPjP5CI7R)ipF5?5%AoG^bKP}xkY#lAx=GWY}m*jg$rQtFq5CL zTcV+w2*Oraop@-b*WE1fTqRrs7jCwO=RQ|2m}FTk6Bk3oUhDaHNyXo$%wWG;(<2`% z!d0#7c__ff$iD90z3pL;&$6FS?pgq|9*{ojksL`M^xPF-)!9e6)W)mU2W%k&*T2ZT zP#8fF1PojtBsoja-S%J8=~j9d`-@ozF!E$FD>qoD+f zcVdj&-zWaj)I5O_iKbZorau(yR`Ht3j^EO2Sbi{_ z%6sEv3*p>}_@9FFM z&XAAWp#F3p!yi5;{vV7tmovpAr**h&9^k~Wt38G)>sjpsmf$jHW|5~=C#`s8Sz*q~ zefbjSMqIV=;hGK@$4<@T(Z9f5^7>YYTk8~KU1So>mW9>ri(#WApahiK(5p~B>JAET zdvNUAHZ%vz4tyV+O$244>S3K{GjuAtiRqU!GrGaGcc#*tC8Bo+#=`ICrbgf`W1G|A-`qHwikz4hG z4E#XaBTLvij+~bopt6P zl=-i?tGc5LG62@rmN)WAip<{+- zNN)fi)$*A$oHpwwqAnAFdl?<33%oHJnY)gjg3X|d;f-t*;7Y0`!FS5GE#)fdZm{;q zvCH-`5}>tP73p$H)TLP()Gj0`fmnt$M+FUxDM3=GG+N3~kBUC2 zx~c>7*b)fFvy$={h8Lm5c6<(19?btAK1CT6H{$cF=eyBQQH(Ed#(Nmi^m?HDNf>?Q zKcml2!8^;UZ7PH{p*PqqtyE*EbJeeOyaDb{&T#gcqUqxwBgqKORM*UH}Uzn)9AZ(m)u`8SaFdT8kxzF+Q@4R)X-kC;p`96tTT9}jOu9>>5Qf^v(hRf?Wsc4 a^Gy^3nsv;SV#0;57&zLwQfq93uKWS}2aRk1 literal 0 HcmV?d00001 diff --git a/docsite/docs/configuration/clients/discord.mdx b/docsite/docs/configuration/clients/discord.mdx index 47417873..a3dc539f 100644 --- a/docsite/docs/configuration/clients/discord.mdx +++ b/docsite/docs/configuration/clients/discord.mdx @@ -11,7 +11,7 @@ import JsonConfig from '!!raw-loader!@site/../config/discord.json.example'; This scrobbler uses **[Now Playing](/configuration/clients#now-playing)** functionality to set your Discord [Rich Presence](https://docs.discord.com/developers/rich-presence/overview) to the music you are currently monitoring with multi-scrobbler. - + :::warning[Discord TOS Violation] @@ -257,7 +257,7 @@ Discord needs an **external, internet-facing** URL to correctly display this ima When [**Application Id**](#discord-application) is **not** configured Discord will show its own default image. - + When [**Application Id**](#discord-application) **is** configured and any of these conditions is true: @@ -272,7 +272,7 @@ Discord needs an **external, internet-facing** URL to correctly display this ima Without any other configuration, the default URL is for the the MS logo: - + This default image can be customized: diff --git a/docsite/static/img/discord_presence_art.png b/docsite/static/img/discord_presence_art.png index 61049259bc7d329fd17da1764faaa652576d5577..3a2fcfa52d6e651dc119d33885919ff347a32c66 100644 GIT binary patch literal 18475 zcmb4qML-=*)FmF=-FXmrJlx&g-3jgx+}+*X-6goYYjB4^a1ZYG^UXiISXOCZ7H!-Ii=AxTM!DuaQ6(|kSq!NPo9Tc`GSzHW5RVw%n(j;4mrmUgzJ zs+K=Z!BkyLNtrlE#Z8S!nHibcNf}wW85z0Rm`D}nNX1lCp~x}vzXsy{H&DgS%-PM* z(G<+w*6yb%os+Snsj01#g`M*yWG_D$m_)LasF13A_C?M&e_hk|kGu>nb5FYsFIN@z z994AK0vUur(m;dud}q-`nvdE(wZ5uy(n$C~RkY&AS#)7I%i@)b?y2)TekZfTPhTn< z*=;1L&1zo(UAKu0r)k+k-q)U)SD#C&scbd@l>LOVPxD?nY=qrw3Qj`gBTZqju)&>Z zh&D|J&TJ)c92(>>7SLa#;T?N%Xx(Z~!s&AVD6FtSJS_YAU3<qa zmb#068HEh909%SRxJ4`hZdU5_Wu78oq&gv1(7WPd;@8ASjzDdP z-$ES!pYI~y4JNqr^sc+3!^FY4xZQk?n(nvryY=JDe4~kF(zX5Ax_`?1e4Z0(<+|)@ zbojjdmtfa8bNue~_UsP3BW+46<^=X=Sw zKZm*ce?l-6vg3+8qIVqIjvSlX{s!LGc`T@Bd*5gsKe}JN5Jb%_tsx(U2_q?)k%-c}{>JBhYSP zb2G5>-&Tg>53dWgbb(9v;6cOkB`ew=9X4@JK3><8uh|GPy}x=ttfW`q=cE#*_D(t^oT;s>lHDmTHBs#hp&P>9EA`XT!gzE^Zk64=84!xdqO=~zxSR$gFw)fc1 z{f+3n&+{_(*PKU(6VvU1j%EVM;9q}?1zI;9tGtEu9G**F`H)}hE_=?1bv+K6(}j!% z>0K%P>F+eXoLa94>wQ1Pu+rbG=V9`1D$Po!Xxd3F_V!u-e`ttLhvU%r@Qk*l_7N z{y68*MsL3@yIrS+kqo2w*<+|yLMrHJcif3+)~L&7@G5QnOHNW4h+^obj9Te%A-L*% z{RAQ`ZQ&xqbUh8ww7q0zp+<;0yjYg`53c2$ER^kp3B2{ZHSz?-scC3jc%Ba+^vbSG zx7troBRH^fl~x5H@nqT$W9cV#r=bYEiT2bzm`$Zyz5E3^j9v(=-Qz|{!&v_OndbL+ ze?Mr#Jb^a9Rd+Oy5bn(*iIzHf5WG#Yy5>hU`f_QYS?5%*IrTIt5;t+OlJ{|k!&T_O zd4Bc$Ceq_OeV$Rb@$>1$H0|6oT1?;@AnUggoS2t+wg-MrqYS^ehzNP8aAL!1i;sEJ z(c|lZu_NazIV$XV2OqB5#ru;03Bs<0qiodDd+#TPl~v_+jGb;|=f5tb)<3>f>c4aw zN7-$lY-q7Z*N$|<$)!LU1AYD|3VhFXo1EtiC<5&J)~oF%jq~(*z@+JOPj9zsb%Y2b z$)2CA`1=-CN3MPM9Gii^vs(Yvzwc8gA-hj$=y^c)c3x`i=d@oVi=`1xCm39;yWEBK zxS)U=wO+O#wRYN~+zcQvT(e$fR@DaQ6^3lsb|&$Mvvchl)*<|{V4aZOUR|Y?5TeC5 z%$*s=`9WHy5H{&BDktLQMJ3Pk&YSH!0$4j+C-KUYAw?bFI?ARNa2sEtPkaYadIl{j zKD`a?p^Wpd6-(XUII!Dp0t8wEy^AO5yEWxc()C9}Y3ep;1MzLj5=zR$&L$9;!510buE9G4E;0wme1u?*mq}V zSHu3m=g#SiaVp}GYAu$BHQP(4=e3znl+XJMyRllWremAU_bC0#dLNeeB7OzmIWZic z4DSY>tB*vKy1Ss9%d?(sJ}?HjjVK0Qx>tJ=-@6D}Rh<@_A}bSU-}}itmB=$OH#Y{N z$IH%#_J_v%CzI!i9~HD=x0m5Yht|X^`hTK~;jri4KR)#LT2;Y+bh`3!X3vRp=io29>Q*CzRl(@F9B>rO zS;fyBB$#~v4Eq3OU5~=sXpR=%PLE77^oEY+x#JT~TLk}aHbc~?eiAkN|Ic;*H$mc} z)q}>UmCixJpalQq-(=LLsIX=EQ)UJ8K*o4te-2iES<0AfQX!fOFs7hvz&AFYgJ`G} zX~9Uns#rE z`7|INPDHuA~xvp+Fm}ZzYRYGL8A5Rms z6l#bC&JZV}RLaVzTEK*)#j&czvC5kOM-wj z@jShND0;o%E)KAn5juOWsCxPo;o_=q%Hl|V@UW(s6pnb9?b7jtu!6(EpsYZO!vgin z{;#~Bmw-lt^w(MI@5!=|Vq`q9Vd4NfQrZZUEk?^mx0HawE$V{QmrI~{HyV-`K z{xn!zQP_EwEB)eX!GYI7z{nu5Lh#~^OVSdm`rQCa-T7&Dqbo;mQZG-`!-J_3J~F|E zM9|KQ!8-#AUy6{WAbvBL)^wH}|3PIjO_&&D&zU`FE;=M#cvoIgfPrky6oDS0FfRkZ zDo9ooPE;f$xs@{1BK1WL_?4f z4znY}siZ6mu`{Dn8zk0|(Mv3eZLI(JyFaR%_|U<7N_Wa8$6BHyi&5_;=3`Qe zsTS{C;`dE7%NPQbrU28+mBLD_QOVpv@zlr~7n)Ognqh9Kw8QO3`hkAl9T50)fodCi zVe7>q2}4p91F6=8Z#A-c&0T(PX0!HBi2agm z2VgjNM*VY=JhxTQkRt(1X;HY;J)j1vEXR=>Bx9AYvX&5eP(WcPQ=u4-k{2{?LfDHjF9BYMhlyDN`lF^bY~r*ri~h02E(ICKo!} zTx!Tjis+>oRxvRN??wls!;L2I`&<@gHyp5zQ!yNox5BqN&O=dfOJl?)SU(}qHGF2T zac24AG>OgapG|lnDMNfeE-vm@)sIJ3k1o1=2@>grE*C?mzA1w;&Fregp2&qt#^jVL zX2#W!Q^2cUt!qyLlo~P5u+>%801JVLk+4QPxQ_L#_#AeFPp9?!3MUD(rWK6k0KXpr ziWIW1vhkcCr624BM|q8~c0Jep14<04>zt+Ojuuxc#bz$~9^=SB4DRYlj`#w~0vq^e zE$YbqE_`=Bv>{^(ZfSB4V_7H{$$hNj)3d<-QZWxpyiI5fv>(0DE#>Hu<-{4u5V01a zTlgM7UxNIIZBBj(tuhET!e{GnwDdN_aFGUG!6AXDIp?rEX1ZF8^ zHt$HJ#jh}WMT|%(UOk`2EC7f=dee4MBQIE$IRIP%65YgL1t+E~l0faBq%6O77bcFL zFg4zf6$rRoZS#E0`1vl1v$8FTxyWFwJl2HSeI;ccf(xW5roqaf-v*%v1C8}hb7g36 z$7;Yx=wy6WU`sqB9-E>jw*g0cg4zSwe!Wonb-V{XX#%?78c>^uTT1Q@wk*(IWu5!y zfTqnyHFN|74ul~|#8mzKaSn|3u_28u`#UE-m+obT;ol zh*c<><)1%7LM2%?n-733as8aHqEiH&U@z5hB)y%4FiHvu5wKZ*U|ToDaoS>hapFIV z2cMW!6jgpmED7NJREgO44~8!zereWW@_Tb10s;suREn&v(SK*Xk4b64RtQh1?l}{) ztEO@*%7=OydSD-@;bV3{SqwuxD+{Skm5ZNLQ_q4}?UPsIsjegAd$Hw89g5SrO&e$l zNqp`ix?b+uk8-~YOsDR=Y{{*N)UNETndeD_c6DUgcBMjTZ(jPY&fmoGzLoL$uEI|T z)g8?A_}#|bKvepDzB*yPN8UhGCs8SEHX~JeHek8s8jco03^lLlhD6+B^!>MBBL*60 z1{`e#>IobrDYL7epz{#${YD7287SFoZSgHt)Q#mbC4H4J_)h5Xw2_e)NrOLf35eMDq3fv}5vFSFP4<_RM>iG~%6RXZFxKOrSDL8|7Hf^W;T=LtanWj7ZM5W) z{=(^jLN-A8l}ZzO*zcPDQ4(d9HoFs%Fuz$$sG& z#INGg_wh9o?u8Jl;jpc~SyG{^t}R$fZW1PoKTsPu!>Ynf_5Vl|S}hZ2-irG*4fd?I zH@CHnBw+}1lyi**EPJ}%&#Eo#42py_sllsYj2})2pgZK2%oMe^xAbTkh*7RchPHCk z9BLLw*Sz?lMtC=YODh~DZrrJ!5G!7E^Rwmr?L(3R{l;nyX73~K$UYY8D-5ycpp~Qy zGg_q_Uz~?w05V(G6BJr@gH>d%ce-^*Ph||)xs(j5MR~J^tE}~ebTfj*l?#V7qnX5v z^OedICYAP+X9C{K3d7}+ILMof!Tu!srYKNLqy{rFR2C?f0U?sco~HdxB@Xt7-MyyD z%gcjVeJsZ`cUoLrlP51|j{vvf>9nN)K#-L3pqf zO42wmDqg-UNh875+IriV2Z_KoQMz9kOQYrDFKB^qdd@(Umxd~1r5GR9Yj1X68kNMp zu-%%6w!~%Zc+);rPDHz|==)Y^I!ok?H_gt1D|xBp0Ck5$zr#^KJ?A(H`uOeqfEjDQ zWka9XZfU9X5B^i3E@PT?4Y~kP>MV7vGFS;3f=g|-*BVk3nHYc@9^QrA(|Jyb$)Pox zCWGN^*t?@=B}-C%N|us91$sm@PN8~GtgQg1Y6@*_Lm!Tnm}w5=!!F_CAt5a?5kA2R zxdL^5nGX$ZJ10oZLzXGap-HRxg=I~E`zX87pkNOR2WPJe$Ioo zH_GTtPS96S6~Zn}p?Q?0UR$jWp~?Z;jmGu{6lxc_rbu;G>mJzDz@*pLVt`Uov{ycn7SOmFqR5LVR4XoI%4RhpKd=cwci1^` zl_jtp7eG&9gn8mYEfxqTky2V}_I9u%!Q?h=qw9I1ad3C_=P}iLhe^9S@@ZE8Bhusc zaJONy2PB~y$NvJwZnN1m>Z;TFb2J1eH}1n1<>R5%yv~;ohh}=tSacbw%X>--*t(ui zHAtNhRY>t|+O-gRyM45de^iQ;9kqS7;C{ zVVcCq7K;pKEex2}3$V$RbEPx~od|)}f?7mzt9T8w-FDk4ehbyVef)KdAum_w5ss#ibowrnp4t`F|*Q#DDILln`dSlR@`K1`rs zN+kI;LxZW}>KmyHbx2`Nr4cGbqqGNcRh?Z57zjluPzx5511Ti%4hgC9bGlj#cw;Q4 z!kvW!+p8joWeP$-;p3v{3gRSpCw$dLD|DMqDC66{=B33_$Hxa?I?-%pZ@o@l$_rkj*lNHmbslpLI} zjjLi(Q`&FU%$BD}(g4O_wc3+}Db53mNMUjYVhuLbhdLk??;gi2i$O`Fq1C~0S?dnZ zmPf*PSB889zKT`D=?n70R=4coe|%uwl<|7&NnE4g_eN5Ut$r|p5X^RS^Y|dj0N@H; zX|Z{sfkVnhsl7swYT81rUjXn`Bj~3C3hQ4W_MoUKxOELI#>Xp zIHns(@|ZlGDHid9X{jy?BV7@pjmRpU)kBj=i#fJgb9*^XR2Q(Y8J3MYihPNki~wSu zlFA>Tv$)g_3N4KT3U9z9u_H7pLF#jdnUP%779y&FVvI(9>8xH8YM2Ni^8v z0F~&~=eDCQm}=)YQcoRSn(fqxUI8#kROJcsrseZyeN$Qo_7V83b|{5qdGky)V19s5 zZ_-e77s4I;Zx8|MprXfqgW?t3$Q@@jf20Ac5};-0Ob~G#j!RPMpb4FD$2-OoUzH(C zlBP1Ke0InH6Y*+}z5YWFQ%i2O!H~!dOI2vKiAXJ0yHZdB6J^>gv^9zmCN3EV}jh39MH^J?h>KPh`gx zLx)YUjHIz9!O_>cO!M`Oi6%B>%pqe0zZH+hy~%rhNoT`exS<2j=qw(;Rm@Wv8p`2G zi?X3dGA6g9;_cw4kH`uwwXp#2=SeT^MktCPtY2Se@c@2P8=;j#DZE8$6IY6B7}0z1rSIQR1Z%D0qMK1<3>v0BBH>)_Fw>& zC7_Gs#w=}FfuVBFy*g2&h$P# zK<0YZy;1BmSXQzaxf(;a)_1&zqddN-*mML&B3qqPy}Vk|>2$ zq4U*4P^aQ0m7q)-_W#C6Fpld5UkT#em|<p#%Q$8@UajpSk)lC z@=14?R4B|DwddxJN@!JL<{_xylf-Y@l^td91=MglZ?*1BjBF@iqtyeDKJnRGw?8n> zSGU5=bA4>{j(YA&7MOmnt3JDmd1UZbWL)>pqdZ!$3_ke@JSXtBDgc%K>RFW|I4`RjN2M6&7fSUc7#bLrsK_V#Apx>MHr zZj(1kC099WS(XbCBTiR_Vk3C|jl>&vx>w+<(n~spmlP~7o*D8_>=OmXdXy#2h%T|< z$})n=@A9q;^ULriOyF2|aW!QsCd}rAJEy|{At>zV;7WC1rfix5@j|{%2%db_b$5Gi zK(VO59haX_2vo`7o@kbl&WTc3nVnt+C~ieH-H@X*mBYAc0l^YO{$(U4?n0=dk>#pm z2@%t~1x>|*(b0}AfiW?}j1hnaZVc@u7+M65NsNM@xr~&VKNY#A?s6OU-L&HGp%WrX z4O%kny?@Z@{Ug}oOe`!EPEJkkvtazEQJpSWM>10D>w)u+5}Xs&&-ZHQhl(lkx8>Nw zNE-U2Zy_x$&4V_~I}=qs-vu5=2%@fQiwg@0aeNLSHXl2`{rv*``Sn-y-Pk;`PJD)5 z?8_@FhpwH>_v{n|5T@$~!^73uWkltZL?V@cHPX zinWymR9XW(yTn%Krz4eR@Tn z{rtiTi&>}Ck>Fze740x`-T$)dDr$sEOQ08sa(Eb8nhe01P^(SRK$SxyiMF^ytG(== zAifz!7AI3^?kjkt;5nCwSirgn*USkMVa&}GmTQ7>lXO!FNd=ySh}elrQ#kQuit6a# zsL|;TzUamZ_#*#sreQLC<7^jLdbmJ(DnyhQ=GRTmEk(CyYU{!!r0v5_8DH zFvpU3j?&Ua4eyfX(X+>kb=(wBsVMPdTEIUyg(9G`4NBJdogZo(XjH!i0$T1#?|fO_ z)cLTN@}hFZ8E&+13U)n2Rqs3_1L3103tX3#_aDHA!qL|>qrDq}9=iBLk`yj$P{+j4 zbt<58aVL8)EL%9`iO`q?+~qRNav&o>ZDJ+yeowX!PDg_-R&EeJHurJj`*|BL~ zt~y)6qA4)7dwQ|^{^5@T`*^R9FC`R zv&8lEXL2%+@uwcW6Qo~Ga$JnE~w6lJAGwQ@M!W7`fz-* zJ2Z_nyZ6Z@@QGLp+f{rwg|2 zwM%}@w6Jc&U0Ze%cZkFO*hx>f_qXZKB>~x07@e+r+9yKN zT3A>PvGF1x#7r_g^lVxezkx}uT%>j+q~b-ci;NUoMI92-Qx{l>UzX!T$<6;m-dBUn zCKM5U-wy7D7Eu`1xH9`LjV~;X9f>qUrf^X-1S|^6P$;frK)K`eb+(H?ykQsde4S9W z5HIEjU@;Vb@nl`mjEse^ERsNOX zqVi;N6KrqwUlPOQr-X}Z|d;g6SY z?3&HiUUrz5F3fAuO>^xJT88!h;7F%)W`NNFs5WF7FpzcCcR0Hf+>UX5ZJtG%V2)WB z)ma-9eV$CpFq~VWIjWm4s9q2pi)bG*9eT44Y#JeM`{`Q!lH3Ifn7WW7d%<2ms9=#V zArNB&>~=Fz80)p&qn8MJ!iU~jtZfRa^`P6FH1z+pk;q|zaVtTlY((hKhx1jy%#lJ< ziIQxKhOgw0oVEN8oC4rospF~&$rju-n|Z?l97wds){o&`jE!QDQbJKZtURRg8pkLa z>#Cv^kEy#OiQaAv2AG^i92}c3&KsvU@1MSYnOJFkr{%_|W`D!#f~Y%#njhTdyY3KT zB$wTvGt-5#x_8`k-W1Xr`aa)tJr23no<675wnr4}-Y@<<#brD_8#XmsTG|eO@wyx2 zbjC^;)(R}EQ6Gx2lTY_{zEqDH=H2@`E?jLRoJ_7$)VQ$sd&zrp>Am*E&P;65 zLBq2@7xtnD8ky+y<08~t!hz(+a(ASau%uav%G&0ALpK$(c$9-_zXGYSCDz&i$*LX4 zwKdp8HNKU*2ZriOOG;9?(Wnx_cEZc?q7;OIlbqNvN+Ai>j!rO-0D z;~>y!HA2upSr8ontO!!PhmiuB0NVGfXKzQGp#HopyN?8$CX$GhpV{(Zw6M|j#%KGm zA!1b32a{773vNH%`qOa6srUYMT^|~8{RF*sg)n~+t|Aa>(w62@4rsjZdR*GZzh6M0 zNw@CUh?)FLR(G$3!}ex5K9kPZXdOtklNd1&W@H9Sm=~zg4x$y4v?+kdnv?2LR3RR=|si&{HGuS&f z+@_)PWY=sjm7Z({m?FKWQYrqA_y7t*=uT1Eb17weU>pJGZ?;p9=x!Y*3GFLvfPtcX z{WRyhDp!nY;Kt&jFj|^EHb=`v1B$?w%WKW><=9M)*R)mxW5ehgS3`1b(sW1!>1}Fy zJKbzApO>whW=K*=jmD4XpHoE>CxDmDmW0uVo5|YonZ~=@VrZ(r(JbV(EaZ+KrtXvtDSFL875cnCyIp0j;d>a@LJvIj zd#mSd7O;HTFu#)|(t@R@11L0bQdU`voo6$x{32<_^W*CPI>5z3{X*R`2Yn#XSLUC< zOBlrlW;Y#z(juNv^2p<3g;px(D3}!2zp)ZH4{vZV%H723Sx2o0KAjK*_vBy_-w0nm zXgIp=a(4Z4W*5N1&DHX%Wr~>2D;9vsUfAJ^EvD`80s&IeH7iX9g(JR)Ff6ZSMDlEt#yJ%@W%J2HC@Q9V3;W z@A}B$qkgSc@|}m3c-gE%9&P8Lp;bZS0F~It6wq{uii?Ti>rwMiRcIlA6{=s5NZR>cvT0sy z`-9taKuI(PfM4OfwY)~EFvB#2NuiB3<{W=5w>7H`Rlpt*p7`wmmRqUXC4ME59FkMM zv?HY}ni98$k~yyiXj!|CsK_|lu2!=JQKCo}UW zRZJC(gOx?hIx3Svf{+%Mw*LKz5(OJ@YVy#H(*dk%fS^BmH(k1Q8HBUiNXNDjLK;>Q zNP7Mo#*&j5m^YJvr)&QrT?Zo48Yq3 zbSM*`hT8=ML4hQ{JC!L1Dr5-hRg^?4eJfE4ljH_#{Ov#T4@}mK?S+?V9}#(qcL$xK z1XIr^8Lj|h&nk!Un8F0zvRbDx1(fPvKL(c;Q`o-jx|ra%B$`4|GmeBD*60^|B42=C z0$!!wq&$@TB?M$dp&~K&ukD5iXlAD%zci4O?eolm;L<^!=)w<)cFjS_Lz-l>*JRRp3M`~X(cJEx&Y3Z*KKZuPH-J4?z7A)Q+&sFhP5VFRIxG#{tK*J zMNpszGW6y~KcPh*&Gl9gjA%ls$3P65ctfku}5=q1C&j8s3i!k2&Zb0UIPqa7Lc8 zVue6v15cIOcXpWZwpQXQfZ&g7>~J=9-0$CPV4&sIGV10RLNnnJMzG7`*-GoFQAKH~ z3?={s+AA>m2qpFbYC$j|=y`WhtE{t>8h0Rs3yal6!R16jA3?$X7Dnb8%csm^wmZ+| zBx#%^MawZm^rQ zcW_l~#o_qMM0C~gk$cqN{{3qHBO|bmnFTzUZzpk&#uLd>oIAlDHHqqDwqfM{wzvg5e9MF2+YwXS&-DzGCwY4`M zG6swr*RHy=ehrT1d4sm|6!PW>FC*sV(%wZ{Eym9kRoM@$t^~J)(n*F8m80IE-XVhsUZ{Clge>R!tj0*G;3?=m z%WnbdVj|&i5XHz?{FK|1KhwjVaHd3h56Rln9);S;!?UG>nSP0E#IjSAt{E<57}EUC zx33205{iOwLuzn4H^HE`vH5M}Q3P?(%`WK!@R_xd&4kIDrLyEm zE2vzLSRUhs>PEA9bX5+S51eA;$53CwKUWwIJ`EFiB4+=&9{BKpObAj_3tNdhVes>C zUeOh9oeUxQe8TqrOeNV9$Ppy<4FL?W160iv}ZMWzC>ho2--7?~?V z)+s=lO(|HpM1&DTP(3;c*9tAJc($$ugQfY8q6UuvUBRiLAF*o)j4gBjEgl=YjORWZ zg|sXA9XG<%KVjUT$Uq9Xc5f)l2w5);v@I>-k(=M>U1Tptk$032R-y5Q22E-3;N8Bi z2{^(fPC_xkn;(aYhDo6W)DtG;3%%i*MB~1)#I+j4b3a>eRa5I9K`XlDA1+@Q4)qxM zO%jUB?lpoE8lcwPn5ILGxM}%VQClnYbe9Q8Qz@)X2f)4vOhUW~UxNS18`{tXN08Nk z8*UY^EOTs8qB;djag&@~pUO~34A+W-AfFpCtWX=kJRADt`8TN)S61Ie_%b)l$eL|F zYg_34kl6Wf0u_y)yjMyl)t3p;v*-=lBq>=;1ic_1?U9c_+<0{QX{=(bP(4K`GuVj- z@1g!}`q>Od40&&?Tw~$YYAO;p|I`RV9M*>Qlgu|y%VhX)6shIRG|8pc`@_Rg1CqUD zzoM6q+zmlfka|suD#yP%IfaLY_hx1E0B+9f(b&l8aGL8?#*qLEo2mX{wQpjlkCKkX zniLmt;t>G>;d)!(gSkuob9y|>{f)=lx*^^ESWO85&(ObE>M80ykK^B_%h2V9#QD9l&&dh*8E4VCz+VE zH~d~yBVl|iPYs||8TOk*xR?)8isJSMxO;1vqQ1U==>zc)mK1s%@2LX4kdhB(Y#`x; zGYHt|8!d%tFc}NQD$ZuMk{2A1%UR;eAe4ihU!U>!wm808ZY)WYEg3sfn`oKc>iRg! zk}KR1)Tk+mwuxzIZb$W?iKGV7|Bbs(d}gk~%8`&ukd4<9kgEeak!%_=^r5tYxF$#W zwEXffZm&Ai369=tm$!c(0ux6g_@&Zfv+YPg6&3NPxjr3x|D%SpEcUz4=OKaVb{O2kf&OQvw@r>b zO{Ka?m1tBE4OT0kMrS4Lq5}&RQuoay-!2iAD1H{&90{(&zo8(wLBk>^v{hZ zd>1v?2*@e@$vHmqK@~i&9P8U&e+jw17)ozvho#g-5s6Ue;#w4%WMa*-8DT9`Hs|D* z3?!KJ@#4pQW<_aLtY{k4dF}c?=lyskl#A^^K5sV+tkWh6b>eKsUc?_}Y!Lm71Mqy# zwk&tc!1olVK4I~mR-Hg@JaK(%@DZXiNM>qxWm8ypA6SbG!x|9S3E8t6Tn8z$vmxAS zok)O$-X^sy%b12vaqLC?6(mLpTqUcz49^0ctJfnow(KJ1!VHZidnvPN6UYkT#jx55Up9tqwfSabTu_k zwRZXeas1l!2*Zj-!`M~^Xz*uK9>13~3?)SNejTlfZuf7g+w3xDWsP>RVIwgIqzfhd z`A4U#>CEKLn=0QBF^agn<3xzJ5Z%$CjqcBB_B)$w+dN8_(ShK!ORLJ1a-tfxuaFqK z8EHV&m=WGsiHfJy0kfih#;GoYwDX6CP84~6z!szeMjYW6sWBmmZpZ|$Kk9mn{v#gh zd-Qj%x|S_yZXQ}n1Ymri)BG292WW#VBSNT$LAQICbIigN&rR z5p4N6CYKn{2SY0S?HJ(IFEAU}9%>0(fn}nUec3`yvT+*PGb}IPYbf+sbW_)_b|=Hyiqb_zn!{@c@u-~v zK*^G|Ybn-wpwS=5hn1)kEA&LHyk7$Xz=Qv~RdD4--v3>er0J!^++1Ufj8kut5I;52 z5{mTGyDvNVmt@JL(eoU)(5P1rL{LqQnp9eBd0k#Q0P7;g8G3Kl`F}%(abJo>O_Sv* zg{|oOB|+&iNVt6qD)}WL!;5@J%qbCzc4D3a*rvk28Z>9mkLfY-kj|+5?a;<%g{cjn zkG*)4r~pcV(2i`VW@iuX2MeRkHHdF&C?TV=P&@R)^d8iKihqvi>%cc;YXbzj-j;B zf}GQW!6C6nvRNUPqM#E&<4~m~;03 zxG_aTV0odH4h)eM)?JC(Sc`L!beT|l1)+Klq|nPv0!_%rv^-|}IgqA=wYERhF(yTn z-v9BPT2v?@k~u<_K2SE@yPykJh91sITyV5SPqwo!gvbP*XAk+NHSx-HKK!NVSO)hm z^BjRj1}eh>=^xTQbjA7WrmJ8%%{gFxI~}c;s(BO>ca&eGYAS2Qvx!Iz)xHOKRpkdXRSgx1sZ<(3RiR`RPgL5?v2{P&9_ z(m>|;!3osIk)Llg$CkUyLyzt2NsZ(8D7^JA5lq@U#o;yM=b?ekRu`6ruJ2m>zzCx4 zGRav{T-u(ZA?5p*NQQyos&B}Bd>&#n! zGO@q+h7>_a*JY{o0oU$nn&*J0$6~5D%DVy9mhzD8ji(r91xxz30+)cYY%d1ei@-0gQ zHpLbWKO0FuG#$cA@#ZlbWXC7)RU3mZU*FzLG7Lldd80}|q=wdCYqoBGp{|ykVM9!R zWDy4P{K3C^eqO=caIPo^mZc%*M=1~1&JL^A{vKReK#EBg z)hnaS1BKQp$BF)eM9RA-uXdXd9xklBHc7Wjd9b0Ln(x@DW=neY-ryrq8GC&bt>80o zzONk;G=1mT=4Fmb*0b*iaGiP`W*oIEI>i2`MCNiq_Kbn0G3Ci9$2s{&`?f{l7>R0$ zQR2+S+$dEJ6$L(l2nVAxkyBV3T`pm%2chFkT{~uwxE1^T_uXcMgDh!Sr!tA4%213m zFvP0k0;QDcU6-ywj>~2Py#%%l_JTrInH@4FbzZUx2H6D)t{0wQ-VihOpRCKN+Mv#1 zc7$@|J<;#WE zX7s4jgb_2IOj2J%l(-gjp$naNT@Z*5v1a=?ac2AAC5%nTpQvx)l#NXY-g7`R!%02x zLbXs5;tf_qn2>%-$zgSFg%WADzZkRHZ205(qC`i)dRMSgTK}#q9T+o*7WGO@hb32? zV;#|iuD+7yd>p{z{Lm%Po!~T6_`c^>iI-agie?MTFBm0FFTiRFmqv%nhPtqg>S#+5 zQK&vAZ}jGV)}%j}9;(X=wvrN$LSXw=8;oSW{iT}F|Eft4rNM1MmoF;($MAnl>Ua)@ z*|2OXiV0a>o$k`Ha(@w5`}$F*+G)qehNGmNEC`-U&~o6qtMAoZq3{Nl+URSchP) zowVXgQ5Zk_So>Ofda^ug=1lPF_@zXGOLxgxR%RA9MoAT?U-_objc=5o82qXGZ!ty8 zMdt;D@InUDC5CYcqQwC8@3jbj9Xk&k`3PKiZO=LPcU850&EdY}JLyx7D4xcKHaAcS zvQ>(LMjDbQ8p{Tu!o|mvGQtJYq^B)~fBp`l_;rEFKStPFZjRxVsw}EUV3gu1dHJ%X z#*;z^8Ah%rm#eNyvi_E=P^(j|pPLCYL%t+8-_$v@|MCfREjj&TQD>HCxj-26yjPdx z7#=A-A<6`@LGEnPy#_4J<|nMK?I-raq$WnKsWFBNi8Km8jcNh=PmvM)FafC&9xOg{ zDFZF;D4xxW@LWGS#8iBbrHu4-q5BcodHnCr@CatnYXSGdBm=XB(iy@bCL!@_p~2rH zsw=;V|8_4{@eq}Q#d=jDW~;!+`qYrEAdISWPKJ2awTJM`Tdr=VxyV}{ zzvs75n-~VB((*cekg|&WuK~3)RmK-DGIbr&ik#yDX~URy7^}*ciewwiF45dn)!i zN?oj51D4B=)lzF29P)vI&ICk|tvj+z?-8|{ zd?v*VaYha0L4#PqQBy7o$|3&h0m1BH27Uf~YhHnIK^>e`2DE(Ii?O9Tm^5m1zTS+vCL0v07_tdB z(v)uL@-f&{Y|tnWBhl*2i*S%onaDqC&IWN((k2fqRVzef=@Vno+k0=k4TGpgC>cd6 zt0Z443xO(tHmeCHQ9vM?q{Ni1NMnN25@Ez%BZ$V+ zbdd?rskF%H&FC^&P+Md}(d1%eeHrxRbO^=uNN2N1XC(Op-L`cL1eF3#mrHJ^OSvH= zdY+Bx($U4ty4kV65{w*G4jtAg{R5`t2o|BGM!|1rcP<+1a?y!9wII7Z7)Kn+` zqcd371lGuH!h~`1{Zmdp39r8PhJ2fKH(0fDjoffvp)^?mbdMCNOj6&e~&ptyZ(EPtzc*Wy}4)|Kom->GS*L-s%MfJNG?(+Elc6bb>Sb z8S48Kjzo4n&Xy5lf7Dn%{oUE$_lf;++dW#Usi{U+XV*T*XDQ+G+WvI0*%_4j?ApG$v8 ze|p=`airlR6o&y5o8KiZ@*)s}ut_sp$uRFD1E2k{+q+MsVcW9T45$BkGMSVOQD#&= z{K#YSA`Q%MiYIpV$YNhQ_QO_a*|1@w+^8>+NZ@c_#w+s`n2&Mob>G9^o_+>bUwtJw zqo1L^PlK?9KYo1cPi0T*M2K|` zU7OYHS~HNrZhuCPvF8p&s2EHfm}s2vd9QQk1z0HZX=>its(9VH^*Hs^h4O6{Rk0OR z_FnRQe}?G6V1IpC4|CQrl)=(EBkg;rm2Wu5K0|$rp* zvgPLa>MZ{r9PIn_%(KtodpBKAsow(md%>!P%RgPQ$Lsg^ePRo^R##Q+`W`U`7rGrp zqfyHX*d7f=qz5~P!{H2aO!r{ta5$Vpg^Lx3!xl0xnh@4rf&G{{i@}&9Gq+vy}h<002ovPDHLkV1kxJZ!G`- literal 19926 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�o_!P(iE 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

3J%-cu-7)vPo6_lEx zqKa2HQtBj#b@k0kpj__DR8w)}Hm4ftq1>aCzp6$(jMOQHW=hOulo`-nyLDhm!8c)e zK^=MA)dj{S#Ota}aA9QL5+6X*C_{>r@@>e*FI$-^llBfD3`JJJ80mnk&#@ca% zR4pP_jeh-vhZe-bl@%N4f)0uEa`robWVH!;;W1YzvwB4S02K4+>7L9~v1^?L>{ymE zql?5CVPC?4MolfdyW!NpiUUP;E4tV=Wm?$lrE)3BCnnlMB8zi|=xt`NKVUApsC^1+>s$5m{Rf1xH`9&RDdsEx}3uaM_grU-JFi-_nzBFkatK zs8%kDXE41%(dw*&@9BNQXH*9=c&bae1#S{KrEKmZlYl7IEjEw6W}E0KS;m-_Y1(^ zYx%*TMwJ&IcGN&K3gGeW<~eP}NuEYeI$t7Ds*wkAZMTboEWB&ys_*J8V(nX({`0i_ z^E!?EkeAA0t11-i>YVj@&S=e6Kx&T zdmlVqzh;t?#exg(YAQ#%Ml^6|AozRwm_w?ZgZNY9XgmsUNRej$k}Td>`N&6BrUJAx zo>?BYqb;Dki}574_u)eQhb(@NY+~^w7QM)an|<*Qw0^xpHsiUV?Xi?tngF($DwNaN zas+n_&d`hu;_H*IYiZAC0g#^Exz%CQQwE;+1|{wdhmLY8@S~}#P}_Vnb*QA+_;07g ze^=+5u|oOZQdm?xJw3yAVd~{*{NH}$oFPX6@qK#Y-_8YkUY{%n?~Lkol9_8#t)3sd z&oAiy$qz4rCA5@j>MRO0hWodD`ji{(L{C7vn7aPE^OXNy)5Njj>K6ko9%u6I>pnsS zDywsuZqp|rhoutAa-EL&#&vtgy)|sE%&+GCYlv69Tj#!0dqH}R-rR<+t{i^%GaRBO z5u3E~35_0XICZh5kEob9jOwtRAJkM^Y|AY^IdkqriL=kHn}6jVyw;7|-%+YN=AE&e zj0lzKFNdEXt#E4cetxLbYf+D!v%n*i97EvoJ(=XKKJ}K!RwMM%Td(Jll(5h1jUq6a zlQUT}K`z5y+uu+7L>)q@e~>XWG10X)RnWJ%m;tkcSuOp0o&2${QmWU&6_!Kk8m>dz zi4ocn(ifASf(G~*UHZ5$t(n?&Tn{(fl7s?4H&fg+<&UWCMpb3A!51Qm7k;Rx_wOV| zIL2Yf?a!g;1o=lIVMVeC;R+vj_jgqY-_mAvZdsx(mM)8A!Ek2wa*)sC;fAv#(5#pHN1!IBsQ&{Ro$kJj(;txl4i7uG0;i_A9$5#Zpk#51P5L@TIGV(FtaR=Pnh{W}sZ z6>gyPq5ouXKL*ISQ08ZD;kN)z-LLEnk;v5wr`bn|_=P9DlHo@>GPLo@gu=Gw5-m<2 z0D^S)IV#APKHnRjIvdVe5n_66hR+Sc<8mn?EiGOkp-Tmb_4H3;?|$!}35Wkoq*bU^ zGEh}b8o10ax}F+~;>8edZuIY=xww|zkMUaXralldq?>~({vi18hf8A-1^BW*xKvni zT2GI|Ttt7+$dL>!CU&G6pVdkhgxP$;(5<^8Sa~Y@G^@jIj)mejt}VI8FrbN+Zni3P0F1ol?@yDE-z!PiX7oSXHkuBUhC@!S#^ z8Wp;U8`oCL3XUOuP5OG?xEHR2KiVglg`d%{86vh5X^nh^(xwFd=<1mKmuhjw!|<$v zr(RNH|3|u|KfV-wl3yN(QT$;%UMFmBcmIqY0C5lGDscB^6_2UFnBL!@>c&B$L>@=76g3|>FGc6m-_H?- z8;G`qw#fq$`S5%T`Hu(6ZPDn19L!F^6fbp87rv~55D3MSi>Y$S|08$vg0&_K)n{b_ SvcZEz2-4#6Vih8WkpBe(0XA9y literal 0 HcmV?d00001 diff --git a/src/backend/common/vendor/discord/DiscordWSClient.ts b/src/backend/common/vendor/discord/DiscordWSClient.ts index 6e7004b5..7a27b1bd 100644 --- a/src/backend/common/vendor/discord/DiscordWSClient.ts +++ b/src/backend/common/vendor/discord/DiscordWSClient.ts @@ -19,8 +19,8 @@ import { isSuperAgentResponseError } from "../../errors/ErrorUtils.js"; import { urlToMusicService } from "../ListenbrainzApiClient.js"; import { fa } from "@faker-js/faker"; -const ARTWORK_PLACEHOLDER = 'https://raw.githubusercontent.com/FoxxMD/multi-scrobbler/master/assets/icon.png'; -const MB_ART = 'https://raw.githubusercontent.com/FoxxMD/multi-scrobbler/master/assets/musicbrainz-logo-small.png'; +const ARTWORK_PLACEHOLDER = 'https://raw.githubusercontent.com/FoxxMD/multi-scrobbler/master/assets/default-artwork.png'; +const MS_ART = 'https://raw.githubusercontent.com/FoxxMD/multi-scrobbler/master/assets/icon.png'; const API_GATEWAY_ENDPOINT = 'https://discord.com/api/gateway'; /** @@ -432,7 +432,8 @@ export class DiscordWSClient extends AbstractApiClient { artwork = false } = this.config; const { - artworkDefaultUrl = ARTWORK_PLACEHOLDER + artworkDefaultUrl = ARTWORK_PLACEHOLDER, + applicationId } = this.config; let art = artworkDefaultUrl; @@ -458,15 +459,14 @@ export class DiscordWSClient extends AbstractApiClient { if(usedUrl !== undefined) { activity.assets.large_image = usedUrl; } - if(activity.assets.small_text !== undefined) { - const smallArt = await this.getArtworkUrl(MB_ART); - if(smallArt !== undefined) { + } + if(art !== MS_ART && applicationId !== undefined) { + const smallArt = await this.getArtworkUrl(MS_ART); + if(smallArt !== undefined) { activity.assets.small_image = smallArt; - } else { - delete activity.assets.small_text; - delete activity.assets.small_url; - } - } + activity.assets.small_text = 'Via Multi-Scrobbler' + activity.assets.small_url = 'https://multi-scrobbler.app' + } } return activity; @@ -738,7 +738,7 @@ export const playStateToActivityData = (data: SourceData, opts: { useArt?: boole if(url !== undefined) { const knownService = urlToMusicService(url); if(knownService !== undefined) { - activity.assets.large_url = url; + activity.details_url = url; // when including buttons discord accepts the presence update but does not actually use it // I think buttons may now be limited to official RPC or restricted to preset actions via things like secrets or registering commands @@ -752,11 +752,10 @@ export const playStateToActivityData = (data: SourceData, opts: { useArt?: boole } if(recording !== undefined) { const mb = `https://musicbrainz.org/recording/${recording}`; - if(activity.assets.large_url === undefined) { - activity.assets.large_url = mb; + if(activity.details_url === undefined) { + activity.details_url = mb; } else { - activity.assets.small_url = mb; - activity.assets.small_text = 'Open On Musicbrainz'; + activity.state_url = mb; } // buttons.push({ // label: 'Open on Musicbrainz',