From 49bc022909dd595391afda41541475e4ba482796 Mon Sep 17 00:00:00 2001 From: Zetaphor Date: Wed, 5 Aug 2026 23:31:00 -0500 Subject: [PATCH] Update readme and icons --- README.md | 22 +++++++++++++++++++++- icons/icon-128.png | Bin 0 -> 15100 bytes icons/icon-48.png | Bin 0 -> 2991 bytes icons/icon-96.png | Bin 0 -> 9022 bytes manifest.json | 19 ++++++++++++------- package.json | 4 +++- scripts/sign-firefox.sh | 25 +++++++++++++++++++++++++ 7 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 icons/icon-128.png create mode 100644 icons/icon-48.png create mode 100644 icons/icon-96.png create mode 100755 scripts/sign-firefox.sh diff --git a/README.md b/README.md index eb6afc0..f93b2ef 100644 --- a/README.md +++ b/README.md @@ -51,4 +51,24 @@ WTFPL licensed. 3. Click **Load Temporary Add-on...** 4. Select `dist/splirate-firefox-v.xpi` -Note: on standard Firefox, unsigned extensions are temporary via `about:debugging` and are removed on restart. \ No newline at end of file +Note: on standard Firefox, unsigned extensions are temporary via `about:debugging` and are removed on restart. + +## Signed Build Download + +- Direct signed XPI: [splirate-signed.xpi](https://git.zetaphor.com/zetaphor/splirate/releases/download/signed/splirate-signed.xpi) +- Releases page: [Splirate Releases](https://git.zetaphor.com/zetaphor/splirate/releases) + +## Persistent Install (Private / Unlisted Signing) + +Use Mozilla's unlisted signing to get a persistent signed XPI without public listing. + +1. Create AMO API credentials: + - [Firefox Add-on Developer Hub](https://addons.mozilla.org/developers/) +2. Export credentials in your shell: + - `export AMO_JWT_ISSUER="your-issuer"` + - `export AMO_JWT_SECRET="your-secret"` +3. Run signing: + - `npm run sign` +4. Install the signed `.xpi` from: + - `dist/signed/` + - Firefox: `about:addons` → gear icon → **Install Add-on From File...** \ No newline at end of file diff --git a/icons/icon-128.png b/icons/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..cb8e16b794947b5e95f2908c67e0089cb304d37e GIT binary patch literal 15100 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

$c)0?~PHDYdp% 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 literal 0 HcmV?d00001 diff --git a/icons/icon-96.png b/icons/icon-96.png new file mode 100644 index 0000000000000000000000000000000000000000..503d093e46f87a6e5225927c9b402e4d7e28f8cd GIT binary patch literal 9022 zcmV-EBf;E>P)}hBG6I1d7ej%5v8eU^YKJPLbUDp4|?-Ih?6o#g!f^)$2k#WmXQ7W^`!|D zPNh+!M$z!$!>O*Wju>ZDDwSyKmaX*Wn{U!5+km} zh@%*B93xE<2qALJSibx*oc+QCUjns+xuQiyOH|dy?f)fU)_#0 zO#uKx2qb9&kxIx^LZm|NLO@ChNSPyinx^)%aU9{6TW&^=9zFCq0x%-A(ujdEW(nTe z`)BMZUjfxp<-YbjMf_2tMq}Lz>ooCVBuQ#Ws|lR_DjmX`_oS2%QbGucI7;m5dEtc@ zFn;`a5E1H%1q2?4$61Go*2OEM^DCgeH^Lc%?=kouM==aRM3^{n5;kwz0stsAMMx?V zB9;(oMtCWa`^EeR2}l75At8i-5E4?VJ&Ga#z`lL^aQ^4d2N9uI2;m*pE@aHHg3^wA zY$t=dN7@hjJ|lRXp%4b(9>)pCpMb4fwgLbuN)9i0T zLJFxFAkBiYKg~*zQs6t^xdKFlFbofCoY`US<)~Q!onjJW@O=-yA7It0)r$C)vO_s( zrCO#y8VjUWC1r=jl^7xsRZP;a9aWX4DWXU*;$MIA6A%%CAh1j@4negc?g9z_U>RUN zjH(MS6bc|B{OeEtk0O4l0-4H8!x;4fAW0HS^S3s=g;lFp9IKFn96&f8Z;i`l5Z#P%IR{Imglmms;XkLJ5g91(F0- zW&HPw73kHgmy%dU@H}qg1tP-DH{A>X*uQ^2J~!)gIP=Ui(bU+aR#p@tF)B)AYN}GH z007plTZdClQ67@VIXou_tP!N{i4Be%12`uXwDFrUV+P_lM!8(h>24tel0=|fP7%im z_U_q>6HYh*M1(?EK;U@@eGh>q6k`lMd-TGlO`FkNYR15U13*NWH}6(dDiu`95t2C7 zD=QZ^*j01jzyVx!_4iOH7VLL=o|oAN$2L$W;)Wy2fa(B;GeY1otNZU;bRPg9iYnG< zrl~*@OO%^qG&eT`02VD=1R}D*6cNGqJP;AajT?u70|$bLaK~@%z`}(KQ7jhiagROv zM}3aSL=xJ%WX3s36mtOJ#dYg&(M1>9Ya}B0zK22>AoM+WoNHz{L7aJgv@w7vlNPfF zz6Z`Zjz9hcyz|aJ#BqWs7KjsxRI3RQ=Of#>bLWC{4$e6m8X7QQfRgY_FTM<=QVB1v zUx$GM2VltHAs`|Q954WvU3MA1_04Z%*UsI_Jxzt5Z>m{#9#q$BY>R#yGxk!3B6@<3@*pP_CO?9a zQvs=A4UvkR$F*<&emwfvAMv9f{|KKx=hGND@&xqh(+5EifOCc*@DK!nUGYZ^16tZS z=So_9AJ0Gcf_5JhNG+T~yN#RPdJBwm3>rKbjoOfo961u-_{KLaVaALZ4I;vq=FGu4 z=bQt^Ir{bMhaEe1T9uO|i3-@90L|h^220Wb95U9Zl~KhAv%UA;yLfBUTiEdO20Z`# z^H{s~8LVHw9v5GHF^C9Z7_^%%9nJ@|hNri-d7ei}lF-yCr_tmolSl|bexNXW(g_sK z1KPTEEA{HxlMd|PPcvuEpz-4;P!I&P=)OfXZ1^yG?QgHqw(UFU+uy!|ez)-dQBz|R zd7eju1`Q_8IVDM=lQ@hx=L&BJ5db3Mj&{^Hq0bNKJOzO`XT+ILQc4m+5&+_yQ?H)A zsaLPwHTTx9Uq2!u;+(7d0n@Z;8-==6@{KwwXybVOzh4gkD3?n)U0*7x-)GJK9Eb>k zAD~a)J}rLdkimoT)KjZ5b=p*To`;@2d*QEt`D@OzQLDRGeWP>D_ZPwtoO`(a_S>;z z=T0;>zK6g5Spjhk&g*#HkqNTQf4Yl3gs-sae{KWj3h}g^Wz`a>L>i* zY(O>9?Q0$02Z8e0$DTYEjg3u6(-d)(AWanU6%z!~IH@6o+1`G8D}MCDe?fhHJ%S)W zu~y;i4{G;0l8{hmJU;h@MK{thHW|Anagr!K61ZkWoV_1pMtc~%84KJfdeSP-bj4<}( zlkwOeAH(y{Kabhx&4TBt)i(Z=@z}X@7t%CA94C;ebwD%q;z+iXwY!3~^SOs|NnuI% z-@h21$59Le1Re+Pcz&V#84!jcJnmt|ipK#dGd*1`frr_iSh*5?`}M~uqN$Jhhg)Pytc>6iHES!bdDG5x_f$Kv~! z)G$Xu%@KqUc>VR)F?a3_II#afrhXiVS~|wn?9ycb90nkZmJ_WW@4ovk6f~CATAul+ zU;t+X-(#rL>c>c=0^Tx0NSnn{L6JxV5}i)0R4N!ge3<$^&hedZe^;r2rZSSUO3Itu zu#wajH<$QT(x0XRsmOB7*+MaBtU^wcG{KL4{9}-YCwz}IXgNSkn?w$VFE{?prqdbZ{>0YNo+hH0|hwxHs_JRmYVF_w+~O03>``X z1`MD+efv;dT|GUy`bqlfPp_xdt5*~0NZwTGF=B+yku68RuK6ZsGsGW0Y#2TJ+;cQ| z@L&R9>o%)5)YK_5ePOCTP(cD9#u@n@CkaX9)PWKaH8nNSE3dpl>(;HKS6=xGZQS^G z+PY;6H8nL+r4o^lhp!c_tE;CTJ$umLL4&AYzkaml>8A<$98$`fYwRk*b;Ks ze4kPwsAtcf^ry%FL}z^D42qMO!XV6jCU-;nH7JvEE6n-|B|uUL@_nBeS8pCVbcoih zSwqX0ub?$+o~Df(H&U9WEnZ_7h7|Zdai@4UNfJtuq{ZU{pQ{z9v7l-~brl0TRh-Lo zp)F@j{q%f_la%V~>S@X1C3MC|&Y&ntC=5e_gjPSy0oi~s6?AlGf?@^ix5>ncWtR{9>s*TRMn>x?ivlxOA z;h6r%;PDlYYol965=&)xP2_8K2aBmSmsu%^@#CAC8gb{HcjAmQ&ZzOf2OT#M=bn2m z=FYtVYo1<%clPe>ko}!AXAVf?O`Qm=j;t5N7_$J`iK9-$OY2_(Od8OJ{HB;n=+cwS z->E7vRR2n8J)Ja7ao1gU;nY)4&7HScEaGD`W?=sO`S`~_{!v3rkt)zEGDW;mf+SW* zrg2?W{y9N&b2E}8!OwN6iYnUbAWe=`SqeD?wM2y3vu0z*jvbcxIr2I|mz8{tY`FoF zbYThrk3ar6W_;{pxpNL4GzeE*aRr`x?m47s7Ev2tKTT8RnnF6z1N6!>$rx$N9NqH8 zd+xa#qY1JT_TlQk$2chGKNMk(r-g}Q?K(Wx_ z0ILI~D;-lip66lCoH_XW>wgEJf|n#tb1A@#>TcT4eUV`;X1n*EyD?<&V586_;6?Bx^08fK!H~#01iWqw7 z*GO8<(Ao?~uEZQp25ZlrJ=O@4t^wklqi>(ScxKHSKu6LhI(F@dRWrKE!8P&*SgS@u zT^y>UA?B}t?Q0q1`BBOMqk1m6^FRaql5vAsmHQ+hgnaUPdh0BCERxopOQxhgkm;lZg3ZdVw zGQ}gx0CEt($&)AJp`}Y5qnqziQTbB^b|s0bbTeR>k-B9MJ%qk}`+|s2UkFfN@ZotL zdiU;)Kd)S+h+ir@6%AD@D~DYoua*qloFZEht~x?i{_cFLwJIVa zoN>l<+qi7w%;vWs9ad4x@0`As?U1$?1`06D9JZTkZS1`sdT)V7Lq$T z=o!xO*(yrY6mc9OiXxmobt=g5>{_dB>gv5y5jE$WIAfG*kgC4Eo=!UHBpN$*ER8? z7DZ7+g+hT~qGSiMfT}eiVp$|jIwChx#R#??7Sg>@MvQ@yB&I^4K-XS-EnR>8^%RC7 z#c`aw$F{W8c6RF+=U7&n$2qsgxurcU7Eo7LU-NfUT^9O2f-pc31h{X}{Z{g=zIWP@ zjQXgyHJQ=1Ax4XRWN9jqB$?s;rS^P^#ZcvT+o^gwtERdX4P}hk-QYt~N|GAUJngj8 zX!`W&G;rVm+P7~X{q~OEl9ZB|UPbrbb1z+d$;DKOA}SUNRy;r%I9H8If{?8Mbrl&n zsIesI-_?p>RH>AyuC9)5yzwUb;Sc|XJkKXaAgK{kbB6bm{KFBiJ%sJN9%H)olc^f} z!1uwqS`nsR=IdYmdR4if#3|#(*$&A&etm~FxTQ?5XX@O#v9_epBx7W?yIEyuZHJ7q z17&Sfezo9NpsF^d!%2C2S4BJQN0%59Rs9_J@VxA1!mxla4AG}gA8h>l8<0}s-FM%E zloCspJb*sERpr}FH{Aqi@Xl2!aC~?-{b*fWDRK8H`qFcd?E48gvA`_bIoggB1z#>O`>WXMnu z5x%91Zlfr&g|bG!XHj*Y$kP2=b(NciBV@K3q(r3i$iM#0Zxr!^0G{Vr`(;ZDTa$i= zQHPW4BLYR36M2lm=iH*9=l-vA@v=rk%{Fo3L=+1}y!hga_HUP7dMStqlO|5Wf&B*% z#j)*xbba)kp_Q`5NY<_f1F{M2t~wZ$Q9Fy5ECKg8e6RKS5kBWAgn{a1Ftwg-P$l__ zz;+dBbx!pZblKq#zW)PDxN^B{gR?Jx`JX{VIP)WCV(&ZeV8ezD=-E>hv)+5pz4mxj zm5>EZrdZ0>3Q1=cgrnbGY{!>fHaaQHLHs22Y&y1 z73g`Mty8+}vdeNSHHsqa+O-R-RubsgO||xj5hJj5%T@~} zDt9%ta5n%PJg7P-Ndu9Ly?;5PY253!6<}^=*14b6z*-4OlHkCBgBU+y0;Wx!hO$OF z*REZQAP6vj{(OuWF#=%_pl{#4c>VR)0gcDhM68f`0#}zX=5h|%YB2T$03Lqi5naQ{ zYVua z52|f}u>D?2Rb}}e1Kh3r^GfvU)eD~Qp->1dy6N7B3BV?dpMX-Sr1I7#v*s{3O@-~= zx%1Bd(iMLp0^d{LOAL(6hy&LBZm3yWV^1E7uYBbzm^Et_KKY4HV$!5Z;GE%pU51z> z36?&z6w{|oSL)#5W$MPm5L2d1LF0Sxp%O(%9hB1MiCu`<{$rSsukBBTs_8T-j*~}_Qds8x{O2lhUn~~j^IC#; zV2D$fEF%yRKK9X%A&z5Pvwy{RzJrICEdv1DfB*gV#;2Y>6-`ZzsFWjRfOA4GbM9p( z{f>gFDrGkY_lcD&t&8h>o~}`K=F#b$G1J<_F>&G~l*?sZu&bIvYTym6Dvf$Gg}TO; z)Cg${!CR{urHyz|E!e~ud7ej}=TWF@J}@AkMg=ioOuWvKmm&^T_vo0zlVZ`+q46L*m?1 zosl)fajVSUf9sUg8xOiFcAkCiS@b`qKR9OygW!E{+Q25Kj5`Hyzx}oz3Yftl zwi(Z9WwIH#MA-8#d-!3HZqDvZ1x1Hd5D_DfGxB})6(^o}A{}$=F%-usNy#ZqC8epL zG);*yM$bL>y#5rUIF4!U+OORwiNC>E`mCka(0{Z!)QAkFWN<_tCk=CzYPoF>k z^K@YU0V)ImNs$s~N~JMYs|9@DrzA;e!h}=l(MKPpVZ(-zl#+bUBT|#%)L9tp`E(+| z{_ZoML@Ma)v(BUuBSzS|)y`}kZT*1ME2Qg;M z7}uIrr?^wHPqqSdfm&O;2)u5Uf%; z@hkQc4R={Nl#{v_#;XAq+zl3I#m#%rmw=6L!3qn}E+xN;Kt%n>KAi!_c9Y_?gaC zKDi-$;Bf>VM}3{r`BP7yiru^R=+0s-S1fAQ7}Je6-DnxmlKy>5h^%G~R0NNmdtFoBtItqX;MYF%>Lmbw*+AR_pTtYrPi z^*;juG&MEZ`c42?wQ3a_8XDknLKt}P7^&S;(WK}3c<7;rlth-wND_%SuEKh>5>oB0 zDR%GPg~3Axsi}*e>d|eD35LeRyX>-2ajtV&2|57H_LWyQD9P8=7+m)#*g4cX8Dh?T>Zzw<`?l?n(iuVHR!!$T9%r0Q>e?gZ zele^2;bqHmnxM6axLX(ygdvK>A|844Q2@ZUZQHPX#R^=0`QO!7iJ>K zX;Y_Rzs8kJ>d>fzG&LoJF{F^#wrv{*3>;t?K+Xs;pECp=x0wH=Nt3a4>sF<{DshWr z3Eb6?Q+Wb4YS1visGxiAz1Ip@CscU{KBS4-vqw*y^O?_J%IT+JupSvkTK9%Q_`Y2x z3KCF~I(_?rUO*sv_cJ0b^KA^lACv#?I zjmn%C1jixBN+6|FpNHdITzB1db_E<+2DD}uJe5!NeN|?7xK@6qXGnY6DSD&V-wF#y({;8*)L=a>NmTX03LDsgnx8;eS1N3U6?3(#OPU_PDfN3m{Rx&qq z_N-aC^S0CYc9H?w;20<(J2A_tg|?>VTzB%)OD@4H8(u;6mPRqkdQj5Bg}+0;e*NI< zx*|h_3F9YV(_5PXNE?Oc%2ix#l4FMRMm`9)%t%wI06URl=dPU?Ja}+TRbcKp1VXy`2Kd&#qloK*ygjT=YHA6rf%jvqluoRIIg(1B|k z^O>qyG~%b>hMMa&zj8%NMxb(~Ld9Z{KKt3v(ux%;$m84=C%15_HW9bmq`6JURh9C& zv!*@n9lq#StDW(ujK}89o2zuble}@u*@dfOWQ{9Yoof(wUYxQ)0PyFPD-i@C3gP=b zhu{dPpcaQ!vm)a^17{6QK$JtzpPS4)=f2qU5bVY#GVVCxJIlPo?pm_Ae%eOhbA*9s z;g50S#^Q}POx#ehvxi*YJyR=L5S0OK4&@eq;B-+G1$CmlTtfo0+(AO>ON)3Db%g5EfvmWUAqdb|1Wc1&)ge+0cyu{ z$vzYeXp#8TvJdTR*rH)*173agZ-9fzM{T+J#N0vVICN{G4o8iKBx z6W9F==t>o3Lj4iLhvStEf5~|}nHQ6wse}uofI_cy6VrXwAzVsghrJQ@2VSU0Ij;~CS#0#{+MZF zO{M+*dGqEe;)j9tz7AJ}^?@>=J3J!BGLY{3*L)v<8X26rI$nqxK&={9Kx?|b`WTtn zlm!b^3zP5rwhpwb@2^`{Kv(WuKTzkGV~)k9w>H_alW8pUbHhX~z;dyhoEj3+!pQkS z6>hke5r5wN`Ih+IU~oSi3~+})efgiiY^A?Ca+R(0kF~}CtC?Eyc5b~zshzfTPS##? z$L_UT9_ZW|girMtlYRKY^y$-yh=?<8$5MhhfEuc*f2w{}a3kDVm+J2zf&`@^p+ccR zx85?3uD<3f3d4{@ni3&@ANJg>0E`{&rtd^yR_j|wiLXAaYDCS9&i?x86pV9{0(L}! zDII0H3d@}t%JhF3=xIh9m~$|KloTfsg<(hw7W|5?zUC?lf`EibRV^vY--oJQ?bMyM zxE--anzt36t$v@|sxwt&%LEbQ+2~YL0hgb~2z^fdC=mvIT=r;@I8LZoEYgAnzoILz z{4V*vPf`jJLOQUux%k6Ne`mHXTLG*M)xd4Nd^q1%DwXWtJP9vHGm0WA77H|Q-h7An>UlBd0+{b5^?SkQA*pk zZzCc#Yr+g{ReGhhgil5}rKVt+1%RShB~)&^?RL8As_#)D3@AwjNhw>r-Xp<;F7jMj zd#|0|1mz!lGGoR}BuSckKibDSP+C*z4}Rwd?rYAsfs%sFjvs)&Lov8%1t7PQnRXAz4_)_K>Fc7f#>NCnh%Wl zUB`g#IM#r0|MaPUf)J`XB98U50@B)m3{|*LwV!W@A2_I{iE=v{?H*NFP*?3)3Nm~6 z=WVy$4(PcLLgP4TqQ(-4>Vd2d6HFD`?YIBhGPR`$w~HsB9C-$GWs<_CBAF`t3xWVW zdi22Z<;yJ^YFby{s*wjRCyt$EHTECuNd+l|i>PL^X5RQM)H~*nxfZ1Am ktcbg*Cz~=${G)aI|3ixq62W^R@&Et;07*qoM6N<$g1{+7qyPW_ literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json index 0591df9..064ad94 100644 --- a/manifest.json +++ b/manifest.json @@ -4,9 +4,9 @@ "version": "1.0.0", "description": "Splirate captures Splice sample links and downloads playable audio.", "icons": { - "48": "logo-single.png", - "96": "logo-single.png", - "128": "logo-single.png" + "48": "icons/icon-48.png", + "96": "icons/icon-96.png", + "128": "icons/icon-128.png" }, "permissions": [ "tabs", @@ -37,8 +37,8 @@ "browser_action": { "default_title": "Splirate", "default_icon": { - "48": "logo-single.png", - "96": "logo-single.png" + "48": "icons/icon-48.png", + "96": "icons/icon-96.png" }, "default_popup": "popup.html" }, @@ -48,10 +48,15 @@ "history.css", "page-probe.js" ], - "applications": { + "browser_specific_settings": { "gecko": { "id": "splirate@splice.local", - "strict_min_version": "109.0" + "strict_min_version": "109.0", + "data_collection_permissions": { + "required": [ + "none" + ] + } } } } \ No newline at end of file diff --git a/package.json b/package.json index 1d5934a..402371a 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,8 @@ "scripts": { "build": "bash scripts/build-firefox.sh", "build:firefox": "bash scripts/build-firefox.sh", - "build:xpi": "bash scripts/build-firefox.sh" + "build:xpi": "bash scripts/build-firefox.sh", + "sign": "bash scripts/sign-firefox.sh", + "sign:firefox": "bash scripts/sign-firefox.sh" } } diff --git a/scripts/sign-firefox.sh b/scripts/sign-firefox.sh new file mode 100755 index 0000000..ccaa860 --- /dev/null +++ b/scripts/sign-firefox.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +DIST_DIR="${ROOT_DIR}/dist/signed" + +if [[ -z "${AMO_JWT_ISSUER:-}" || -z "${AMO_JWT_SECRET:-}" ]]; then + echo "Missing AMO credentials." >&2 + echo "Set AMO_JWT_ISSUER and AMO_JWT_SECRET before running this script." >&2 + exit 1 +fi + +mkdir -p "${DIST_DIR}" + +cd "${ROOT_DIR}" + +# Signs as an unlisted add-on (private distribution). +npx web-ext sign \ + --source-dir "${ROOT_DIR}" \ + --artifacts-dir "${DIST_DIR}" \ + --channel unlisted \ + --ignore-files "dist/*" "scripts/*" ".git/*" "*.har" "*.log" "*.tmp" + +echo "Signed XPI artifacts are in:" +echo "${DIST_DIR}"