From 19a4a5194dd28ad4353a18bce6e9de6bb6456e31 Mon Sep 17 00:00:00 2001 From: dekun Date: Thu, 16 Jul 2026 08:44:07 +0800 Subject: [PATCH] Use per-exchange PWA names and logos for instance app installs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Show Binance/OKX/Gate 交易系统 with distinct exchange icons in manifests, apple titles, and login branding. Co-authored-by: Cursor --- brand/icons/binance/apple-touch-icon.png | Bin 0 -> 1263 bytes brand/icons/binance/favicon.ico | Bin 0 -> 150 bytes brand/icons/binance/icon-16.png | Bin 0 -> 127 bytes brand/icons/binance/icon-192.png | Bin 0 -> 1424 bytes brand/icons/binance/icon-32.png | Bin 0 -> 301 bytes brand/icons/binance/icon-48.png | Bin 0 -> 389 bytes brand/icons/binance/icon-512.png | Bin 0 -> 4991 bytes brand/icons/binance/icon.svg | 6 + brand/icons/gate/apple-touch-icon.png | Bin 0 -> 2763 bytes brand/icons/gate/favicon.ico | Bin 0 -> 287 bytes brand/icons/gate/icon-16.png | Bin 0 -> 265 bytes brand/icons/gate/icon-192.png | Bin 0 -> 2990 bytes brand/icons/gate/icon-32.png | Bin 0 -> 507 bytes brand/icons/gate/icon-48.png | Bin 0 -> 747 bytes brand/icons/gate/icon-512.png | Bin 0 -> 8836 bytes brand/icons/gate/icon.svg | 6 + brand/icons/okx/apple-touch-icon.png | Bin 0 -> 1032 bytes brand/icons/okx/favicon.ico | Bin 0 -> 133 bytes brand/icons/okx/icon-16.png | Bin 0 -> 108 bytes brand/icons/okx/icon-192.png | Bin 0 -> 1165 bytes brand/icons/okx/icon-32.png | Bin 0 -> 254 bytes brand/icons/okx/icon-48.png | Bin 0 -> 290 bytes brand/icons/okx/icon-512.png | Bin 0 -> 3920 bytes brand/icons/okx/icon.svg | 6 + brand/manifest.binance.webmanifest | 23 +++ brand/manifest.exchange.webmanifest | 6 +- brand/manifest.gate.webmanifest | 23 +++ brand/manifest.okx.webmanifest | 23 +++ crypto_monitor_binance/app.py | 6 +- .../static/icons/apple-touch-icon.png | Bin 1743 -> 1263 bytes .../static/icons/favicon.ico | Bin 181 -> 150 bytes .../static/icons/icon-16.png | Bin 162 -> 127 bytes .../static/icons/icon-192.png | Bin 1796 -> 1424 bytes .../static/icons/icon-32.png | Bin 497 -> 301 bytes .../static/icons/icon-512.png | Bin 6059 -> 4991 bytes crypto_monitor_binance/static/icons/icon.svg | 15 +- .../static/icons/manifest.webmanifest | 8 +- crypto_monitor_gate/app.py | 6 +- .../static/icons/apple-touch-icon.png | Bin 1743 -> 2763 bytes crypto_monitor_gate/static/icons/favicon.ico | Bin 181 -> 287 bytes crypto_monitor_gate/static/icons/icon-16.png | Bin 162 -> 265 bytes crypto_monitor_gate/static/icons/icon-192.png | Bin 1796 -> 2990 bytes crypto_monitor_gate/static/icons/icon-32.png | Bin 497 -> 507 bytes crypto_monitor_gate/static/icons/icon-512.png | Bin 6059 -> 8836 bytes crypto_monitor_gate/static/icons/icon.svg | 15 +- .../static/icons/manifest.webmanifest | 8 +- crypto_monitor_okx/app.py | 6 +- .../static/icons/apple-touch-icon.png | Bin 1743 -> 1032 bytes crypto_monitor_okx/static/icons/favicon.ico | Bin 181 -> 133 bytes crypto_monitor_okx/static/icons/icon-16.png | Bin 162 -> 108 bytes crypto_monitor_okx/static/icons/icon-192.png | Bin 1796 -> 1165 bytes crypto_monitor_okx/static/icons/icon-32.png | Bin 497 -> 254 bytes crypto_monitor_okx/static/icons/icon-512.png | Bin 6059 -> 3920 bytes crypto_monitor_okx/static/icons/icon.svg | 15 +- .../static/icons/manifest.webmanifest | 8 +- docs/shortcut-icon.md | 8 +- lib/instance/instance_embed_lib.py | 11 ++ lib/instance/templates/embed_shell.html | 2 +- lib/instance/templates/index.html | 4 +- lib/instance/templates/login.html | 12 +- scripts/generate_brand_icons.py | 171 ++++++++++++++++-- scripts/sync_brand_icons.py | 28 +-- 62 files changed, 327 insertions(+), 89 deletions(-) create mode 100644 brand/icons/binance/apple-touch-icon.png create mode 100644 brand/icons/binance/favicon.ico create mode 100644 brand/icons/binance/icon-16.png create mode 100644 brand/icons/binance/icon-192.png create mode 100644 brand/icons/binance/icon-32.png create mode 100644 brand/icons/binance/icon-48.png create mode 100644 brand/icons/binance/icon-512.png create mode 100644 brand/icons/binance/icon.svg create mode 100644 brand/icons/gate/apple-touch-icon.png create mode 100644 brand/icons/gate/favicon.ico create mode 100644 brand/icons/gate/icon-16.png create mode 100644 brand/icons/gate/icon-192.png create mode 100644 brand/icons/gate/icon-32.png create mode 100644 brand/icons/gate/icon-48.png create mode 100644 brand/icons/gate/icon-512.png create mode 100644 brand/icons/gate/icon.svg create mode 100644 brand/icons/okx/apple-touch-icon.png create mode 100644 brand/icons/okx/favicon.ico create mode 100644 brand/icons/okx/icon-16.png create mode 100644 brand/icons/okx/icon-192.png create mode 100644 brand/icons/okx/icon-32.png create mode 100644 brand/icons/okx/icon-48.png create mode 100644 brand/icons/okx/icon-512.png create mode 100644 brand/icons/okx/icon.svg create mode 100644 brand/manifest.binance.webmanifest create mode 100644 brand/manifest.gate.webmanifest create mode 100644 brand/manifest.okx.webmanifest diff --git a/brand/icons/binance/apple-touch-icon.png b/brand/icons/binance/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..702fc963fe61d02f30af5751fb0fd68a2a97ccda GIT binary patch literal 1263 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD4M^IaWiw)6VA+M}bzdHdUZGpF0 zMVq$dG}>;oT9wlw>as{xBUCELa?^zelKge=Z|*;TeHrJECq;jA)MC{=C#fKzCCpdz z|LRx#e*Exo>aDQ)dvVnZ7}@@KEO2D2{=Pu5t@rs z?P^Qj*S|OK-*w;UndYP8%lqFw-KoA>@Y&1n|Dx`g27He`oFkO(|L)R?-)j@(6wmuU zI5}v2jaF>01iz{N{*ve5FF)(Wj?25)UM>8x%h2{> z!K}hNm;1fHy)?bnxA5EC^=~fEo_AroU;4^pQ{;ToRefI`+#c=8+xK!xNssxDzYe92 z`xCOCPMDhf@^;CkOPBl3`erPb&MLf>2o!T>iUL6gZy+qUo8sz_p3o-sV#i4y(+h>! zY*!qPzdaMcEL+aZ0pu^21Tjt6fz0P1(eD>nvKBm^$Kb?Ua_4c*ipIWbb7r7GoJo_^ z3yTz>f_82oH^7m%L`DrL>&ybwSh0Z3ijNm)Zek-)kxBsbT^9F~{h~lS)n+VYv&u7a z1{yYt5vbDI7^vzl*zin{LuAha4Z33q616n}YTlvV0CIzcbk>5!_s%v*z0d%;sa+Ci zrGay8!G+El3+)VEJn5eIr(g6%^TM{D56oLVS0u7ov6-H6IKH4w@`c0|17_J~sk8;j z0f%`?c(P_R_BrwzUogb2XiG6rk)049NF@_cWkdqdI9{M}4;q2Sxfn3NEw*g9Hqp+K zGXrRd6iBfN5yoP%+j_a!1xVC@qo;heeDKy^{P(x+b>mj;H)s!<;do8vP0)(&hPwaN z?^mtt6t>>-=0Y+s2mJPy`x<3$Vp@=QcSiBm9H(gOD~FB;yk063e5+*L$EIrmQpP7% z74F(7^>EXLmEyp6u@~Y;XG|F=P6hv)OB;W3QL4?%wtHqrq>{ zJ9q#5``@ZpS+%5gtwivd=gU4v&6vICwBftU%l9#!vWSmss(jm}VP(GbxaZ%iw-Te? z=WEU1RW>~#uGmVPxmNSlPEnROe;wj>B~3XLBl5*`#rd`J4f*Lp^Q$thNfj4f@D8;8 z`J(J^XTVy+aK^nXUq!x!m!HdOE_>&ab+R|!^UPHTeb-vP?YHX9?wc+bUuqc6TC4ji zc*oVZ@0R|Nnz6e1pI+A6%|I75ut`7B`#5=WRL#ay`}fUuOigl@VU^06pzO%Zw*k4J eQSsEeX@Ah9L}sz|nL1!W#^CAd=d#Wzp$P!*QCSiI literal 0 HcmV?d00001 diff --git a/brand/icons/binance/favicon.ico b/brand/icons/binance/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..26172c886aee18b4821cc653df440b12335439d7 GIT binary patch literal 150 zcmZQzU<5(|0R|vYU}yl6VnEy(;OEZECB+3~@_Kr>1OaJ~3IPr_ASwU(e^?1^mSiGq#G=ih$(E>TsAtgYZLF;5 poRGu#eSO8%M=UCqvlCO87+O-b%vlf5*8>{K;OXk;vd$@?2>_c=B)$j+fwTU zBOnBVQnZMoAOi)|P6@WCsGtrpV=@LS-yl+4nMg~I>+br;694v+``wf0dGfwb?s9M5 z4sHn1nqmzAAclpqBhaTBy9t)45&e8C04$=y*vwtW`m_Vz0~tyrna40xVRW=R~_9upMX%Kuf9cB`S?=*JvsmWfXW2V&3OD} zB^IkbK(x)2WmWEh#qpDQg`=eGVV3|IOSHyYx=0ldmR++;p^PF!t(#g0w8?&x^EAd# zv$W<5X3}1y>{{gf?2)M%r*F0iOH78wcd-|_1BI#La>u*{hcVTiVTJha_u+b1fsC?= zsVRmtf*o5}(a-mu9hcqA#2?>2D~{p(Y;uRUoX}5iI_xUF-(ITFKUsFE^g^X30=cA* z_pm4kaLzyeI+C@=Mfw8z{L8Fdg`nOiam_v#$tx+G_@+a{sc;~g0-u@SUS8n3{UgV2 z@#*v83Sx&saA@P1xH=)eM`1yc8#}zE8H9|~a=N{`q&tysJRwiq>YiM{svhq&r9X3F zJg%s@YgbajUi~LFo!m=WC9Jjg(VnMD{{bampLtu zaV7=9j^?7y5^MRBirMCiSFUsW%{_?QIy1pFk!=03`7L#}s}xi2fs;!hh0jFFF~MpFFI7Z16ScN*Sw~ z5^U=%(z09r^{UEJ#4J(M)lqt*@wT7!fx7OAa7pCT_AUBltr#AeL*EBa zIOEiG`lv>X-1C35sQ)k#scUszJs}nNTc$QH+;C7=5Vo{1XtH?4dw$>opQ;X!Zm*M) z3XXPWBqOL3p3H6`8{IFK_d~ zFMFkZ_w8$CfA4iylN+v|(pF7-={T+>(#JHOl4_PZy~a!Q`a#OhI}4YXh+8IT!ReHU s?TdOfizYe(4$@iyo_Xx!Ll8Y+T@hSmr0zNq@e9XlVH_^IffXnH4_+2_f&c&j literal 0 HcmV?d00001 diff --git a/brand/icons/binance/icon-32.png b/brand/icons/binance/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..c706b7d2b95e6395ab2deb0c14234c2807487863 GIT binary patch literal 301 zcmV+|0n+}7P)(VEg%&lELw|t0IhM zKmFSmOyh_^m3N(|$`m!N{MG#z5y!cG@7sM-n4NTep{!ld+9OxiFuFBOnq}F$fF+D4 zWxdT&FAvX5w~!6YmXmGH`Yo4BiDZ*nIrW59P@QpcH^-Esb}da5qk{fw}F8?0~c6n?U0%AfytEFVdQ&MBb@0Qj-0cK`qY literal 0 HcmV?d00001 diff --git a/brand/icons/binance/icon-512.png b/brand/icons/binance/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..6f48a2ba51f295be65e5451357c89b025067db51 GIT binary patch literal 4991 zcmb_gX;@R|w*K}`LIz|IK~#p|K%oMX*0BmCibDaFPz0=?iB@~Opa$hsQ3HD;QfzAr zM-iND75Y!|`F*p>$ms{{}v%W9+ zM!bB96K?_!A>B7$t!r>7|90z#o&ukt-Xw2fMh4WWrw*C2ZUb**doFyJ~^d4Uv zFPp#n;cNGuk*jjBGlRL4{Tr`~PA)zbQPwq7ctwwLdwx6k%hCJ0zgwShm}dNoU!vqK z)2<)MwhmOeBw?+0g@on9PrqT<~oG#Ao!FmX13lv7UO5e?wv|R0x4GJ0EXFUk)jnBnHWc8=aJM8U+JX6 z0U~fo#spfVnjmF?PMUogm!{8rQ=rjgwF-_jN+RwI8)Fl3F?yIQ`HgYvFk=z;vEqDA z2s4_*T|MDZ%qc=FzbWRt2*s#Cj3@fkXSywHyXIpxI*Sy>rgzAazIt%TzN?COy^z}nEJF_yl`N912O5RGY z7#(%CwQ1QKD+4Q1m=9y9Wu_`GYs__ZrTeCLwsv2#XVW`t_slA@X$OSnXZD)+B%m{A zdXi^y2!7UI`+<3wXFYp)b$cr-LbYUK<_6!?O3svG@|ZzJ)Yu+pAe=vEcb;PVw0MZT z6Bm5dLfAU0ZL(6A{uK_X`isTi(xk^~-e`6`9IL%IN!8;0Gcyof*kM&3uk|pCWQ(L- zqjKEDSGeiT1~u`W=6P~Om+ftjnt#|x%=l90QuJMkQBphc$78>DHQ20;t9Blg-f72W zJgPFrI`jTxAEBV_Tk4^_wLVo;Kb21I!V5{pwy_Fh!=B2%5;yTCY`>c|CdQgUY*+v4 zAfDSk;YfRZndQ>CD#l_Bulhrzzjl|18D@>!x=6a&chjpX=HfN1YOXEq+3TvyHkM!& zH*;Xw&q*FRaWT{}gYczF(|kgHe->$AM^mxf&=6a!rSDKOergNri97jx`B01bl0QKe zi!4`mK8mLHokOyETdkpF_cOk<{}Fk1$FXK}UqTQzxf}<)#b{~i8hrYW(JY)cr!q_G zLGeUMI$QM_e=}C#_@LzA(N)~)-qF|pm54ptYul;o-kgp4f=c7(E1`zVcFAuS7}#?z zGb;u!`my{BUBqjDVLe~l>Ly6wJ(z}_D#KS|nLVEqI+yfi+>JUP7_-|ES8FT6fc|7C zmX?uvKbbkc8Xd3k?#t{{e(8ZoeKghf)RvHsFKKm9;i`sG^=Cb+V$hl(ERFaw$gd0? ze^g&QXkiIOUW>H%+?s}`k{;y6#%s2RIuEqQHoCNJl1PNj>FZL@GMz{0ct)UVM!K&; zpMZjp7xAp6S177$N4`!g(4Bt?SAS^2+Jf-QIL@QS-<=j8V;i(!ZDB6yj}k@7c9e+L z%t0G9d~I7Fa>l2k{AU)WlK_&rKZ|PHUUmuPdXT3MC;PfsA9u4m-=t8F+4$}!5VrWT zk2&4}wK-+6aSw8Jw>4y#(O>1Gy&z&qTk32z{4+>fdj`K;jL!{5OS&#q53^Og!fnnJ zkE|omIdGhAbP>Fqig=>OLr>Io1Zhpgu6T;D){Y07r$UhgAh^R+w8Tec+GuZvy0TrZy*Y4RcymHF;;@c9U&1G$PikSf`=JJMSqh2-YN=0X?n~Z zBeQcg*VM3A0})an_hH+OZ9>uQtS~{3H#8;hZwoze^1>Q(E+AmDD`5Hl&zorcTMz2S z7=-*g5-5LD955m&3n4LJ{_i(3UOv1l16C$-YmjgO$hq2=goC)?u;mcgl1<@+KLqU8 zPnEcVFV|gdBe1OISUWuH!F&03fn7iJwQvMKa4i~=5OvnQ=iv{=*?EaaBZihJi5(bh zw)-&{671^8Bs;BBvRyf2{YVh$@0AH7%J>oG!V#rm#fWA6h%#nGIpw|Odu1H0+)Hd6 zHx*ML(qJ^Q-H~f{IRk{IjBr|a;td{%{9dH+A$#4+xfl;|X0|wrk?2Ux77|Ab?hPt z96u0Ax4ArpKJOm`(6jlzrg(h6Cp`X`e{v8$g$xAWaN1|+ z0Nh!V}q31jnTKce5X-vTP!$B?hB>!4FfFICc@1cf>XtL*P9DVS-NiqOV z<^h76Z#}JalbTB*w%K&|pSuD@txk82Ij#WQU379F-Tq@S03V`}Nmnf$}GyoIV4_;`unBJX)$d%N*B8Q;u?429%3| za{b1YKsg&Iy(1$(gFtD@aT9(3${&ETp-H>~-@n@(E!|TuoG}WR_$+j=1m?v^56Quk zh72D$ObE3;pg+Y$1LGmM&7IeB!w5xRx@EzGfu3+^?7^ey87Jft8umeRN~p#QVBc`3 zx7??vZs{5rrM_^wgvEw!K3OGDs`dUADY2R$$Rvsz)bhya2;nbZaA#m3JQ83B(zl(+ z(g4SJu78S514UfApq|t6)aU}PR8iyJKNSk<2L`W3g3~EQ=_3XoasyH%n(1HwY+nsn zV9pK}skVh@De2h2=@Jc0py0o_p)HL@&PZ%u^;zf?jtDZY%4KwHkV1fl9*?u!*)6w> zOo$CK{i??TUzCH#RT<&(P#PA{pTgEaeu7tAAwg*9DSXGBPsr#BLN&!EFC(<#w%D_!+lszP_Gy(v=~>OV7iwb*;+xJ)Mtqk+?d!vMG+fQ>3w59`fP z=-$GH`V}UxDw@&BF##B%_fa#0QvgVhMvJNtfb`_7Z>Uc+c^#%1og7yKBMqD#EC=8| z0BTgOW34y&0NmRUO&Vr*(W!VR;(OKhx$RK7`I*0m0>WS)LOPiorZ#GB8IwcU2mgN zmJZq}U1-WGAE`HNo(~AQmEI29n?p;7A%;FdGxyD1f|5np4zCJ3(3?wwz$9oT35XVSYTl2)phg@Tx9&7*!So} zeJ$-}UJCQLLGRAe&TcL&Qf~`AQhQGuU~9S-*8|KiY(^fe zAkoT99s!3D-F=8{?b@mI!mD49U;>W4dFN;Yj^pP#sJZLd%XY)yzmFK2-W!g!8$!2e z3+N;bg_hXKp)5`)k#@n;xXGyF@-2?Q3Kw z!>PRq?g{^Uw41qDERKrSo9umxT&k{ILsO+-ut~ z5g=bYv+!%on%^r=AtCyGw!v?!G!kx>QgGLnh)&LNowLKJOIx<#@Y(ZZld;w;V=2O_JfPZ&s~tp)Z7oZC zFM+(3bB2Q|Mw^p@Ek?Of#?mVKP&A^h>0}xSR(&P!(Q$TqpsUmtNt}N>T#yb3#aqHx z+C>CmsJ&hdm4NPx%UgLXd0GBQd&Hnl1;fC{?Icbf zscBw+l~Q-0Q!gRrWlirqTw*Qvt=OPr=c5C}A3I)^B?Re&cb?h`gHV!uPC=|g@OfsK z_0l8cXK^B8GM+yvP18XXH3{TDbLuLlO8wENSNk*{%W8*{P;DqSQ$34Q*t?CdQ=-4G zMn6Ab6x}Hqe{#YLbSmVX@+tHDiNm$8n>71a($+Jmd`OiYHeOXxRXG@urpL+A-R3l6 zNk>mfp4x*fPsDwb7^%mUA(-FR+v*uZ2TI}^pe7q*v_EbTEJEY{?73DcOw)a0`-dZC z2*qoM8tRD8#rJz{4?S=Gftq$1lqbIU@5c_VRvwk^uNc$^>v_48P`|4=Bj;L&zB!M$ zz!Ez=<^^^T?O0kPRqUDly{jTG$rLf{-h3$ZT^uSR?>_SsZ#RFwjvSjyY;jKe^Qx7r zlSH=`V3ob4%Qth&HZ#h6DlW`K$19s9yIWz%<+wyh{}&<>{a6mW>`&#>ekuh z8;EK7M@G!uyOvivz67lb!DcE)J8VoyQ}%gSZ^WbUER#_jpw>*?-2pEY6jfg3#(iKQE31%kK(v=^-o+We!vj1*M^853M?!i`ySh1aUZ1;Q^_R4O91w|L}yw$%4B zPCi2Dx{QT#M^o}N7CMKaJrYbb8o8Qpj71J1 ze^_V(avcgpfef-~2_~9|m=Qb_jrqNeL*h|rz6<)RUyOI2vf#53@2cG+Y3is&%NLd} HknZ^p4T+qf literal 0 HcmV?d00001 diff --git a/brand/icons/binance/icon.svg b/brand/icons/binance/icon.svg new file mode 100644 index 0000000..70a7d51 --- /dev/null +++ b/brand/icons/binance/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/brand/icons/gate/apple-touch-icon.png b/brand/icons/gate/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..129f899dfef40474b9b620361f25a1906c012ea7 GIT binary patch literal 2763 zcmZuzdpHwp8`sftO3B%*NHLmI@lMy!oWn4OQdqLd*=sY3HYI(SL&%)ZLJ}fgHnEBo zvmDBqkyECyBIYpq)_1+%Ki~U3*Y(`L-}U_N>%N|U?)(15+aoMQh2(?;1O!B_EKQMo zZ1{Zvhxrlq;joT?fKZy1=_RMzW6SyeiIVfc*eG2bByyt!du|*n(RmFFAl01oDLWDP ze0`{4L~8lr!SjO+YDwb_+P>Qlk1I7~HN5#aQ0{Rp&_+`JdS3=+Jc#o6EwdDWgA4e-jtArRmC_O;6 zacuDM_tg=XyMOGi>XD?*IQLb!vNl#)P9nQF@5`_;TD8J2FrCD7Ziz~kHG9(7cF8;U z*qzEG)$R$$nW62&gRiK^Uy@Gadh0+>Cp;|!O>MowA$P8<6qV_fDB+qq3C_Q>M8NwA zA1t^WUL5erfVmTT#TI=KBKoFf0V0Hycc^5>xhaxcMv(IKG)j}Op((_@PB3Ens!!#I zn_Ux*9%u*+V)>y;ecq|1xYk<6Q<&iGVLrE-c#4R{pQ>tzXWFy<2;L%#wMgmu%ekJY zgGy_CX$DKzmEbMVMP`Drj2tpNVOhm4GqDdQZF__5@=fcB-h*U$*hRTe-G2pf+pP;A zrb}AwZL5b?L!YQO41X07Hz(^=_Shqw$I#8id0M`oExu`G`}WaE@uklFe^xzreH;x-@l@4oLDY@n8Np-4 zJdHIV-PRin5%aHp_Tw)g|L`&j0IGSKYJVjV)`c zlsm6rW={L^#O@)?P{55gacc1Kre5*||9Z{>G|861+W;|wCsjrfoO=Bxe6{!^A)iajYe#;^XD1-IOI(tT6U&lX6uL2sXn} zOh&s6DMWk%u&y`myt`ny|7B@1$Oydfdgl;Ku&LEC-{_7Fww05w(6X&-qX;h~e7hB} zN1yaslhEuYR%@r=>bQyyL9=2UcyHxnoANY>#nBmk)U>NmQ=`c!K6gK?aH3QbOx$I9 zh^;W7yy8591%?xBu*{)LkE5+`%b)-iAmNAGMH`6IcwCn4K;zpCMdEuiA0N}I`f#0;FJ2eGE9sPXySnWp+@iXCdIgzwaLRdZZ9dRe_ zxwYm`mtxIU`-siL0|p51^}`sK;O}+P>#EMMA0}twgq9tBK#`sukleY*SY>1OpAU(% z_tIa^<3S>Si5jzgP%>d?4CnUn+UzWx)l?+;LWi@=pBxzhyvW=k1*ci6moKdx7jiLMU6O47V^s^ zq9T{~!3*PY>?iehZ8P7XlA=xEI-eS$R$;$+h$#XQiv$(U{>RNlJTwVy8ClVTGT4QIpAi$h|Vp*?3wZWMiZZARa%d?e2R z6Gd~S&;r)me&u;~=4fAvH^WKh8Ua&}8QjxooyNOn+I-*52o|YwS>4eG*DV>0YA!qM zHNLA6m3l-R!RJ2Xx3mr8De%m=^CAGaKO6T)-H}>A<`bEv&OAB|e-Au}irP{?t^3v<=0-aZSYdc}| z3^c%9wJv9TkTRo&8KM<+%=n+6l}!#y@kbpkohq5T=`4v^|5(HL$!szBT&Id-Ndz`Jd?AsPBF;<==F_) z_Ij>@w}$Dsm_YG9aXE3h|G@w7-^zdA|K^wN+5C-fh2$@6SBAzoTr(1yhvo3_ zi{fa!SoKksqhE(2HIS-hfbt#*lzVo8LOC6?u^QH&Uz{4@)46n3Us@^168Q$D$G1Wo zTVwYOBRY}{GIJIGb#0fbPo3!zC+IG zu~^hj8FI7NiB)O!Luxo5eiGG)Qrt|wUBpT#!iYJu?_Xx+ zP86lJs2Pc5n@C5zK$`d-&tRGzldC&M(FjL?-+_eZjcBQqEB^avdn2f2&qz2-6z)jp%;^`SnXn literal 0 HcmV?d00001 diff --git a/brand/icons/gate/favicon.ico b/brand/icons/gate/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dcb291e921358ce942e80e1528bfdae7da61c4b3 GIT binary patch literal 287 zcmZQzU<5(|0R|vYVBlnAU=RbcIs^RNdAX#xfJ|Ob50@Yy4N@V%!3HGdKmShzQWrd3 z978JRyq$QKi?LATX#M|8CzGzTDMA|qlQgBZ^%W``Zbn8abL%&l2i$8=->@xw+M)|7 zi)&2GGHP;u1h1KU*YWsG37PWkzZ+i*eYy<4si!z_KTYjg(4W<0kssCfgPz{=gb*XMLAQw$Y@$XFyJcQneXUI*;s!20ge^2t;XE63zcoxF z0oqu=#&CJ>_LF>ixQnKZ87!h6uI%5yWUnJMCQQ92S}pV9^4Ag2M@Z&p!Si}YwR8I8 z5@QBuxE?#)60&I_pOJ2_{rL(@II173b{J2+_U|RFxdR-RdGRuO-haj$dowU+ip^Jy P00000NkvXXu0mjfeROi7 literal 0 HcmV?d00001 diff --git a/brand/icons/gate/icon-192.png b/brand/icons/gate/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..9039264533cb1dbf32fdbdaf908c9eec004609a1 GIT binary patch literal 2990 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 MGh5SoW6y;D0*D)RfB*mh literal 0 HcmV?d00001 diff --git a/brand/icons/gate/icon-32.png b/brand/icons/gate/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..4add43fd969e40679d39b2c1e605c3ed3403e72a GIT binary patch literal 507 zcmVr|+F8lJiY;}0gyr;~Hxzo? zq4zkUv3G$ObfB>WGNCYD0|%hd=b}uM%YwjLbebU>OgnQR79&!g0HpC1qsIDQGC`+OYSG~R(8Yk6hH{l3%j7PBmh7@4I|<7Rn!LruHZf^gq}8J&hB#L)q+oe ztrY-3pW-#^gknXjX#P44>(dZN`g8B;r9EU0FVx9EHWK~#bvl~!g!9{w9A3NykJZ0| zY~%^qn+J&YZjdH(@kgyjeE|UQvbql{QyBa%2%Rk;Mm=<{F=!`;f2IcH%X_5U8_>Ha zVBDMmv6w)mH01LLGDp{tPi|{x$Au=u(~6ZYC^@_k5~Q+D_?^M<#46-fyP@*TYR82q xFXx7YcNkH6d&$aXB>y`Tk(x7M9d-OV-T}~is?3~NyBq)j002ovPDHLkV1g)9+iU;; literal 0 HcmV?d00001 diff --git a/brand/icons/gate/icon-48.png b/brand/icons/gate/icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..1e109573827a5948fc3b15ef2ddf09f57bdf4253 GIT binary patch literal 747 zcmVYJy;>;sTL`1XDswna+1qQ109Uv_M@S(N zOtEQW7WuW_RVaO#zfD##*=H*GY!StzEJM>ryB0L3UXTxiGKVE#tHEvfiqus@=sXP8 zTL-e!1tRd!V+p9A<{&?fKzTU<=sKMOg!9K?yVL=2Y;Lh}SAug_f@^Pt@_Gu%zym;5 z=}IBt+)>!B`0~i-typ^_Z2k_qBEZz_fUU=uxmP1!APv8OHZ==?fN80P*y97U&jSG9 zyN*B_8UZAk4gvhB1At&mrHn<9ym}wde&@Lwj$*|>2*>bcsN*w`L+^o`Udt2UP$(s+M zJpVvJ1QZo|eAS4AT>ugJ@~gz!x5dmgyMIslRbu7U1lWceqaIv50p;!IOreUOypI=G|}%`oSIAYowG@1XJ&U(A@^Mt%1%6=nG4b?gk+SIt>vm zwXom2@aOTd1hnaSx_Tk`@hCt5@!IKv?SwKGg>?G~wAn@anmPH=DAYI8;LjWc+gcB% zx(dWDKwDUX`tB>_XX8*KGjzAp+V>xj2139<$oiqN1Xuzr0qYQu_9GKbfs9vaCS2iu zEPH#w#7RMalquD4HPhTplV7(xjVzxOCi$Y-eB@002ovPDHLkV1lEtVJH9q literal 0 HcmV?d00001 diff --git a/brand/icons/gate/icon-512.png b/brand/icons/gate/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..7c41ef91ede771e7f299e094e58f0e2e52b6c0ee GIT binary patch literal 8836 zcmb_?cT|&2)AuF;f`AmMN{fPmdec#)CMv}WBHSV(1OXL6z?&{D!AeI2D^d(y1f)wx z9svPq0wN%U-XZi5Aj!A!dA{@h{XXZ-IXPGM+TGci+1Z)j%qH}bvC(d>eOv&5-Dl6} zUj_gPe<>G2SK1FMIOA{tE{<5wZ`E zNYdz4_DHVGg-fSiO^{w3Y0Uju(CoS|=W@CAL30I#VqCrimz)rq10jrhw4aUV(P3O2 zzbc>42{WcZk=^X%Q0(|nAysqx{?BG4%Gad2sy&FXO|Paea6%^juRjF`RoDjaG#6Q3 zOaT|-BAt`WmDqrgANYa;xO_A}7i}8mo|liaQysiY~Zmpjvuzy z5RVZ5ZrGB9c!EdyhP6JRh=L+G4LEZI&CgaR1j4Yyxg1_#tPci(B&e4Ly*DI*oCGLG zXu&>^+pYzSbHDHVOtC|Ymw$gkla8!w(3b-U4COIC23@Wz!HGl?NAreJn!DLf5y7(x z)^B7mKL(7aZXVqtDr49!0Q6M@7Yx(OGld5$!!sp}1($%e}ynqlhw0eN7%uG>P|JfcvGmxB1Ld`o}bzI*U zx1LKhhKtUOlAT7--<&RebLao&&v{0OIWNM@=VC@Zc_2xnUgX13`(h|eeQT>AX8R+6 zz%94`8r6F&<#^jiCHo{MZ$HL#M>~5d`eljL#d$70Wr1K@i`>(eyOH;K5TT<yq6sZSEy;UXEFpZnBunq&Mu_cM7$pChfb zz+EJ{OO(6Bk1mL;6T+1WG4ro62DYnmtnPx&8)m41_`196)E|kw(;Hbtec(v3VQ4=O zLX_vrC=YolpQr4Zo>atZp9+=p96 zA3*2rk;spe z#LkW5cP1!ZvuvLBq8I^iC}@aKSrO>N06AF26a8z!ibP(VkucL`sz``XJN94zFL&&k z9H!NXts;l}(xsgNi=Bl@^e4LUwButNPJW20NT>XhKlr(f^dwr1nBRJ z>htczAGHR+Tahiohnn=0RO|YhqXY4pXh7(!D|rd#uW^b|s2AAB{{lrvA4eXegc(AU6D&AZMEu;+pzu9wT?cnAvU|>|6M1VD{{rgp z)uJEZMz9mlR&7gD*vxhiKi+VNxoQ2pMpWbmv4gIC-Xlr0AY$7!(T+v-;Di&qlTrNI zB}*n^;G1h_DdrM*-BCesArRZ*d6%vx1LgNV%mIH*b}*wW{3+!0&s%-ly-W>HhQ{Jkr;?zBkn3&^`Y{0SXzSwq9PZFEv_A< z`Y^|YeSMf9p_g6EMSP@b7U}up6iyQO(EqrTqOCm`pmqDaEgSJyUp)bM_L?E@<9RYs z9d_Yol)?1(pEXfL0D$K;@H*nfi+(0ZN33kg5_yRmSmGV%od6E@vJt088=0pDq%kY1 zlKfKWZiJYdE)fGd${v#|Yv2Irk1^m8joGn?4%yL@dfn&+w1B;i%n^RLVgvS1_n!!Y zfrDWn!2tbNE(nQ4075G7vP)f|_ zpc;+TTAJ!OUJ>GbxA!sXw!w|I)dMqm^E=Et@5Rn$i3wOSu+JqoP2%D7vHTaES2up= z86}2pRYeqrx&c#HeT|XNW;q+m38ZjNH;~ zAyqqCc2g`xBA+HjIjT!uf( =p(^uUkel!cPrmgq51Fe{n0z`b3V9pVyFS&coh1 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 + + + + G + diff --git a/brand/icons/okx/apple-touch-icon.png b/brand/icons/okx/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..82d1e827cf2c4b8d333a1d29784266a766e37647 GIT binary patch literal 1032 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD4M^IaWiw)6U_S5Z;uunK>+RjMezzS&8ZOQZ zWR({4i2L~OeOOqS_EcV-1=`_yTz#@O_Hy$#yRMq`S z@^EU_>C^9@Yh*BT|M79;j=a&%A9du>y=Wn0+t~XWDOIzsebg}g|MP3Gq$uxUfqVDf z&+fO{CiB_mQKG~li@sBlCBEy|P_iB4k|c|N4CPiLIV{pHJ~y z8qd=8GbV8QKM$9U{OYxJf+s8&%{vsg*NoX&EETUPR^puC@+ma)O?B1# z%df7u)F~@v{pHEi@5M2nT|-{8e`Z^^R@yr@boPa7d|6*6dfhcTFvV=H_Z>T>r+twp zrdZs)q5EQKZThdRNnW$heV#D=TJQTe=Z}W<{cINcYN=k-`EpP6h3m_Szg>bEcGWwO-eTlZ=@7F_?cYerc{;C$t0y49cMUb}H99@#5@;qc?j z$1k0Kf9dsp_FYf!D)((oI+MK5Z0`52ou|?*m(~8dB+{Gvf7aDL z%jyf!i_1O<^8Njum32Hu<%MqG`NRKSO*JlE6l*o{)~7@I>1U2M-IMydb;rv8(+}ra z?mZz}d~rd3@2{XcEr)A0_Pd-p+War?icIjz8LL@za}?X<-p>hneDKo$ueoYk!qG=! nS%HG(l3Nb2^1!kp!;>%K|BuV=P`Ug3DM-xI)z4*}Q$iB}Zh`2i literal 0 HcmV?d00001 diff --git a/brand/icons/okx/favicon.ico b/brand/icons/okx/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2dbb0dd42e244ecc71618eb3a3f87170687db0d1 GIT binary patch literal 133 zcmZQzU<5(|0R|vYV8{oOVnEy(;OEZECB+3~@_Kr>1OaJ~3IPr_ASwU(eJaFHz|E=l}oz_H9XSZaiOortE6y3}TMx2t1;#;kuK1Urj}y@g6ru=2W1* W9CiV*AhR$ai^0>?&t;ucLK6UhW*@Qu literal 0 HcmV?d00001 diff --git a/brand/icons/okx/icon-16.png b/brand/icons/okx/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea0f5422de454851d400bdebed62f036540ae4d GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`#-1*YAr-fh6C_xf`6UWH|NQ^| z-@Yx$&5h@)&y-yaNz4%)fk(78Tz7KstEo6=F)Jm5g@GZ5U7$1SjyzC1gQu&X%Q~lo FCIIYGAKL%` literal 0 HcmV?d00001 diff --git a/brand/icons/okx/icon-192.png b/brand/icons/okx/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..55ed1ded3764e19bbf59c00dc7b3f300b4cfb7e5 GIT binary patch literal 1165 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;U6z?u&p8bva+8uKQkIZWS|EG%U`SsuzzwepI7W`;Wk**Rj;4kGC`>+iSbNsB~M-TbFS=dE}Bdorab>G zzO>n!6mHG<_1xmmVS_t+VrD)1l%ccr{r)@BQvbf`&Gb{&DD7AHo!hsANpLbff z&5v65?~T-ft+g{k8$#Uw-+%Xi^F5BuTmiQ)+D9`aA9YGN`{4PG>06>1y!G1q>|gwF z?rPXM^F-lKKMCI@C{j#y$q6jPf7Px7lxRt6#sk zeqz5<%sl>%10SB>`|e+=`EPms{CWG=|NY+nU%Ed7IZGI-^6gu<-_H_ zjEZ-@Pn~xudj2EE9>ExEEslr#)_sbJemgy{Jg!I8l;+I1g2Rxn5t5h7+utR6AS>a6_kZbC)=b<7ADGKFNbu}sU`c$y e2rmm5c07~+&fH+;SYrPcBoiN>WUyZnp2vmaUU>2E)Gtv>Pth+k0uv z^KpmW4M>F77y*rVPQ6IDX*;nAkcg8oB8m*e7$-(J6JC1lQt`R9T=~KhSx)_zkWMBw zkyD(MLv;gd9^D*Heqi~0?LJ@zsv8JeJt^fc407*qoM6N<$ Ef=J$CB>(^b literal 0 HcmV?d00001 diff --git a/brand/icons/okx/icon-48.png b/brand/icons/okx/icon-48.png new file mode 100644 index 0000000000000000000000000000000000000000..16a80dc8e8f0f579ee60b9089090a6955bcdd4c3 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtm!2+;Ar-gY&OFH1WFX+OU3#&& zr;6>#|Mk-Iq&z+>V*h$&iQ1AaTVhw7yVF>Ca>IsTC61;Ax=WMvE#lX`zqIV#W8YNv z2?qPvT#n9|-xhbI;&RzR0j(o@OxJA{V>CEc)A&Qd!o)1-+4Ff%yY=<&=15fqe%5pG zNU8MKe>K=*vY{NbP|I@?fu3}o8<(Vfb0*ClS{gn%7fTq z3_0>Qx5QpLH+xfh_S%;}ttx*9PK&s6eHzO(o2A<>Kl!pGsDAyr%6RLwN&MzH;gLZL lpZ$N{l6F2lMSvxA9lz+GFy*KlbFYDH@O1TaS?83{1OO8sdI10c literal 0 HcmV?d00001 diff --git a/brand/icons/okx/icon-512.png b/brand/icons/okx/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..e526b77e35add58dcf74c1f3b74e4f3d5574b522 GIT binary patch literal 3920 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 literal 0 HcmV?d00001 diff --git a/brand/icons/okx/icon.svg b/brand/icons/okx/icon.svg new file mode 100644 index 0000000..b7eaa46 --- /dev/null +++ b/brand/icons/okx/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/brand/manifest.binance.webmanifest b/brand/manifest.binance.webmanifest new file mode 100644 index 0000000..eddc20d --- /dev/null +++ b/brand/manifest.binance.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "Binance 交易系统", + "short_name": "Binance 交易系统", + "description": "Binance 永续交易监控与复盘", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0d14", + "theme_color": "#F0B90B", + "icons": [ + { + "src": "__ICON_PREFIX__/icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "__ICON_PREFIX__/icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/brand/manifest.exchange.webmanifest b/brand/manifest.exchange.webmanifest index 80d2b68..7464c0f 100644 --- a/brand/manifest.exchange.webmanifest +++ b/brand/manifest.exchange.webmanifest @@ -1,7 +1,7 @@ { - "name": "交易监控复盘", - "short_name": "监控", - "description": "加密货币永续交易监控与复盘", + "name": "交易系统", + "short_name": "交易系统", + "description": "加密货币永续交易监控与复盘(请使用各所独立 manifest)", "start_url": "/", "display": "standalone", "background_color": "#0b0d14", diff --git a/brand/manifest.gate.webmanifest b/brand/manifest.gate.webmanifest new file mode 100644 index 0000000..6dbd346 --- /dev/null +++ b/brand/manifest.gate.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "Gate 交易系统", + "short_name": "Gate 交易系统", + "description": "Gate 永续交易监控与复盘", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0d14", + "theme_color": "#17E6A1", + "icons": [ + { + "src": "__ICON_PREFIX__/icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "__ICON_PREFIX__/icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/brand/manifest.okx.webmanifest b/brand/manifest.okx.webmanifest new file mode 100644 index 0000000..bad9fb4 --- /dev/null +++ b/brand/manifest.okx.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "OKX 交易系统", + "short_name": "OKX 交易系统", + "description": "OKX 永续交易监控与复盘", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0d14", + "theme_color": "#FFFFFF", + "icons": [ + { + "src": "__ICON_PREFIX__/icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "__ICON_PREFIX__/icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/crypto_monitor_binance/app.py b/crypto_monitor_binance/app.py index dda6c43..5d1b334 100644 --- a/crypto_monitor_binance/app.py +++ b/crypto_monitor_binance/app.py @@ -6984,7 +6984,11 @@ def login(): return redirect("/") else: flash("账号或密码错误") - return render_template("login.html", exchange_display=EXCHANGE_DISPLAY_NAME) + return render_template( + "login.html", + exchange_display=EXCHANGE_DISPLAY_NAME, + pwa_app_name="Binance 交易系统", + ) @app.route("/logout") def logout(): diff --git a/crypto_monitor_binance/static/icons/apple-touch-icon.png b/crypto_monitor_binance/static/icons/apple-touch-icon.png index bd835ad75be5d5fe23ae62a783a6517351447cc8..702fc963fe61d02f30af5751fb0fd68a2a97ccda 100644 GIT binary patch literal 1263 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD4M^IaWiw)6VA+M}bzdHdUZGpF0 zMVq$dG}>;oT9wlw>as{xBUCELa?^zelKge=Z|*;TeHrJECq;jA)MC{=C#fKzCCpdz z|LRx#e*Exo>aDQ)dvVnZ7}@@KEO2D2{=Pu5t@rs z?P^Qj*S|OK-*w;UndYP8%lqFw-KoA>@Y&1n|Dx`g27He`oFkO(|L)R?-)j@(6wmuU zI5}v2jaF>01iz{N{*ve5FF)(Wj?25)UM>8x%h2{> z!K}hNm;1fHy)?bnxA5EC^=~fEo_AroU;4^pQ{;ToRefI`+#c=8+xK!xNssxDzYe92 z`xCOCPMDhf@^;CkOPBl3`erPb&MLf>2o!T>iUL6gZy+qUo8sz_p3o-sV#i4y(+h>! zY*!qPzdaMcEL+aZ0pu^21Tjt6fz0P1(eD>nvKBm^$Kb?Ua_4c*ipIWbb7r7GoJo_^ z3yTz>f_82oH^7m%L`DrL>&ybwSh0Z3ijNm)Zek-)kxBsbT^9F~{h~lS)n+VYv&u7a z1{yYt5vbDI7^vzl*zin{LuAha4Z33q616n}YTlvV0CIzcbk>5!_s%v*z0d%;sa+Ci zrGay8!G+El3+)VEJn5eIr(g6%^TM{D56oLVS0u7ov6-H6IKH4w@`c0|17_J~sk8;j z0f%`?c(P_R_BrwzUogb2XiG6rk)049NF@_cWkdqdI9{M}4;q2Sxfn3NEw*g9Hqp+K zGXrRd6iBfN5yoP%+j_a!1xVC@qo;heeDKy^{P(x+b>mj;H)s!<;do8vP0)(&hPwaN z?^mtt6t>>-=0Y+s2mJPy`x<3$Vp@=QcSiBm9H(gOD~FB;yk063e5+*L$EIrmQpP7% z74F(7^>EXLmEyp6u@~Y;XG|F=P6hv)OB;W3QL4?%wtHqrq>{ zJ9q#5``@ZpS+%5gtwivd=gU4v&6vICwBftU%l9#!vWSmss(jm}VP(GbxaZ%iw-Te? z=WEU1RW>~#uGmVPxmNSlPEnROe;wj>B~3XLBl5*`#rd`J4f*Lp^Q$thNfj4f@D8;8 z`J(J^XTVy+aK^nXUq!x!m!HdOE_>&ab+R|!^UPHTeb-vP?YHX9?wc+bUuqc6TC4ji zc*oVZ@0R|Nnz6e1pI+A6%|I75ut`7B`#5=WRL#ay`}fUuOigl@VU^06pzO%Zw*k4J eQSsEeX@Ah9L}sz|nL1!W#^CAd=d#Wzp$P!*QCSiI delta 1728 zcmV;x20!`l3C|6XBYy^#NklDt9Bo_>JoDjT838Zw_MJ}Oa(}i!K z?M?J9dJA25pXLU#=%!@R?hENIv?P#C2(d_Lpv2RKzhqkwk*S1Sa@42~A{TXD>8~ z$=x+0GNYvPTM-#0RqG`G(U*U|t;ca324HTBba>E~6$-@E$x>DN_@V=n*S z)sJa*{PNpVwK(SHeQx)-RV^Ru)y`E!6({j24$eMq$BTz|JNIuVh0xUi_Ya^;T97Md7s#h87chyPdYB=*l_{v%oB zNGxlpob~Sd8dE2F)9YedU(xWso*S$OeK(5^MqbsRLq6SJj|D!&x zL^7kVzucofvNO=ck1k@z$b*ZL7^R|d+DAj;S74_K%(4QBhOl8w#FdB^sUXBX_aWOi2=|<$TS)<5N246h=;l}s=KKe=IKp8SG`o7^L zWG8d?QtK3A!!oZYwN4=hDD(Q2TBi^YIS_`Eh<^;jNr2%b42`$(?MlDDdXvR)5_;m` z>2E7Z-M(X}Q;42qZd$3=Z-1wAWG6%pBF~8*cjHONGN*UJa1xnkGC6v5} zF+rq}d2;k9((XQ*cC6U49hrNPIdlq9p3FLhv2DXasYWx0Rhe}PA!dji*q+KPa*#O; zCx3y=hLcokG8;}pv6VT)P9c$_v#kP}&Q3IGWrv-U$eqKhtMifBa1x4p@@F0zMXqF6 zwu5CkokB9(#vr-lX=cObZs6QVn%HKHHCRbj%jg*B1#!Dr}trp$cx1pg52d* z<~rwBeGivc-+dDi5%+)jwNZoO`p-8llYf|D8-v!}wxLCnd@Hj~;UHz+WcALwG8<0H zK8trLU^y|v&Pm-1_w$d9#96n3cTv5|5Lx8d*sejT+e;;Upq^TQ?B{BFE6yq{*yPSj^5zUdwe6(9HvhEa~OH5{K&&6~K z$t-SokCii;zVNl}3uIyEq>W2`efLp_9Nu3AA_rhNX@j{s2G(qWw{?TzBqBqn5D+<_ zGK(A_w#WgI!@Z;&PfnCL=K1?sxoZW2!u`{#D5K)LJ(Wz zfXJazL*yVbL=J2vA3wa&DTKA>WJ14x_qq~0&~@Bc?3GR-bPCB0!%1;PdC>LV0W5#hDpW=4Xm9Jz%@5b|s8$Mg;rYCo})y9Rm+J$&pnWqa} zCPIG}uVz;4<_}VSfA(F7O^$gv$BAwy`g&vk&b`)uYdm?(dkHSZ6TpoNy{^>AlfGn* zO>W;zY$8WV+Zb%(&N-s|^E()+RBRF#B{Z>#T%^zhColj2000000000000000NXh?J WB2CB~Ct>&i0000KJz^VZJ#s}6gU_z%BuSQ{UPBDvf0zs&t;ucLK6Trt~bO0 diff --git a/crypto_monitor_binance/static/icons/icon-16.png b/crypto_monitor_binance/static/icons/icon-16.png index b3a4ee1ff49f1a22c8a11bf51e8b9d9cf1b3c226..c6235092a4456bfccd21a562327f92900d2abfa6 100644 GIT binary patch delta 97 zcmZ3)SU*7}+Rf9&F{I*Fa)Jcw7IyivqW{O$&%5-b)wCH1URopiTYkOwjE;*wCj{o` z{n#-1_x>po*Xt#uXIr@?F$Wy@tF7#tlqh0gz`)Rws%4%S;O4>r1fH&bF6*2UngFVp BB}o7P delta 132 zcmV-~0DJ#`q5+U3erZWWK~#9!V_+Bs^aVD2iqV1_lNuY?^Vo2wgLV0mzz<%)5c2@P=&zRzsPP14t{W7OSQk mwhatlK0Ie6E0jk8VE_Qp9VJb7#ObyG0000Qt diff --git a/crypto_monitor_binance/static/icons/icon-192.png b/crypto_monitor_binance/static/icons/icon-192.png index 92351e1a28fcd565bb47991ca538d9a016c72174..4cda818377b718155ceabd084c9394ba7eae629f 100644 GIT binary patch literal 1424 zcmbu$j+fwTU zBOnBVQnZMoAOi)|P6@WCsGtrpV=@LS-yl+4nMg~I>+br;694v+``wf0dGfwb?s9M5 z4sHn1nqmzAAclpqBhaTBy9t)45&e8C04$=y*vwtW`m_Vz0~tyrna40xVRW=R~_9upMX%Kuf9cB`S?=*JvsmWfXW2V&3OD} zB^IkbK(x)2WmWEh#qpDQg`=eGVV3|IOSHyYx=0ldmR++;p^PF!t(#g0w8?&x^EAd# zv$W<5X3}1y>{{gf?2)M%r*F0iOH78wcd-|_1BI#La>u*{hcVTiVTJha_u+b1fsC?= zsVRmtf*o5}(a-mu9hcqA#2?>2D~{p(Y;uRUoX}5iI_xUF-(ITFKUsFE^g^X30=cA* z_pm4kaLzyeI+C@=Mfw8z{L8Fdg`nOiam_v#$tx+G_@+a{sc;~g0-u@SUS8n3{UgV2 z@#*v83Sx&saA@P1xH=)eM`1yc8#}zE8H9|~a=N{`q&tysJRwiq>YiM{svhq&r9X3F zJg%s@YgbajUi~LFo!m=WC9Jjg(VnMD{{bampLtu zaV7=9j^?7y5^MRBirMCiSFUsW%{_?QIy1pFk!=03`7L#}s}xi2fs;!hh0jFFF~MpFFI7Z16ScN*Sw~ z5^U=%(z09r^{UEJ#4J(M)lqt*@wT7!fx7OAa7pCT_AUBltr#AeL*EBa zIOEiG`lv>X-1C35sQ)k#scUszJs}nNTc$QH+;C7=5Vo{1XtH?4dw$>opQ;X!Zm*M) z3XXPWBqOL3p3H6`8{IFK_d~ zFMFkZ_w8$CfA4iylN+v|(pF7-={T+>(#JHOl4_PZy~a!Q`a#OhI}4YXh+8IT!ReHU s?TdOfizYe(4$@iyo_Xx!Ll8Y+T@hSmr0zNq@e9XlVH_^IffXnH4_+2_f&c&j delta 1781 zcmV9px;r2^jv{Uhf+4#syoBH;3va;W zCUO_Kg{-sJ+<*%=;v(4x%uW&z+=w`X5+OL{V!nFXp8l#jRi{q<{?ITz)jiWy{XFNq z=c#k5A^-pY000000000000000006+ysD|`m_io&-ePzSo{eQdH6$21FGB-p;^cb@l zD#FK@jZhIj#%zQM@ng)5U^3@@``6og8V50r!5cAx(~xS4pr3gDfUku*W=~An@O}fOJ#s*94tIP-1-1k4Zg68?(WY- zP4{7}$Kfchoqs*M8h<3~0TLSEqTtV;Z+;-Eo?Ff~#B=#RI1a1ccNBXk;{P*g3DkiB z>ZQ+zTYf0Ry4Z*RRQOzyE3Nd#+r)Wkfgbi1^1#F5hGbHtBz-}`#qWNv`Xgnv)`Ot6U&Qk^T9D0wjEl4#P+ znZ26$v84&>PRKJrJ_-M*EPk#R5 zcmF*2RSb%8ihtGbLkx=2#ovwz#Gn|k_}epq7=IK46@Po>kTC!t21STL%?1S{D1iVm zD7t6=$+LJH54U>HZYRaWpvX}Cr)+A1W@m)c>u09b$2P*B=WRTUoAG-h@ryx`vG~{Z z1nr4GhS~!tgGv{FTCs~kF#z!&KDa;V26SdY40aKJYT*~OAjW{0_{|0d@rywbjb>h^ zOn+AL6Ms=LC^KmJM_B?9Kk?_S9Wf~JXDWWPK{0yqn+=LlxBM~msSwH_XLrS*h;|l` zFK*i=79F1W#h}FB((8vQelaLUS@v|R9oGgm*bR%~LHuD+yfTRRjRB(7`P}u%1H_-F zeq0-r_+!ksNSY~uwij29A}UY(bxDij%YSNFb2EdMUkuutxE8l}Ewu8}p1On*Xc)Zu z@rSdY?>v6G@kykddk0ac>jEV`gPOA$wES7j21OsGQaLTZ*`UQ6qHVF3SN50-#V$e>+zbLY{#7p>M&_TBR^V|9`L)l4>7&MZ`p1=LFblZ!C-{09mjDKC2 zLCh%zZJhaU`uaPMpEeR_4yBTozw>K@mYMPI+FGAJAO;6T7=M)bAqH(}usc-oZ*$MDU0zT01HVh;;e-1tO;AFs zzbNYY`+$`#crj?B(niUn1j_IR8Rw6bCLsPObUi>C{S*;{UUrQhD1S04fohiofxATJ z$hMa_+4l7a*9FS`3K5HGe#9vx#L5vs_2EJlYD1XGD&>M(B0Wm0)KVncY zf)WT2gTla93<~9s7!(6H!p9G9i~)e`4DkNl>q;4fzRI8V`V)h~I6w&mh(RF+O<{m# zb=dJd?)u~b#188LR_mu}{eLe8h1sAEE{p*Zl|j-Vq)LC7=dJzn2)439y;?2Ra+{qC3_9Xt(@nv-MBb0~~+IS}BBR(_Om98#K~m#O-DH*PoT*Q7?}#+j+oo~#VemJv`6T?;>Q zSP#(GPJ{Tf=mGQwgdZ6!z03+mApB7qfEkFM0T_bd0RR910000000000000000IT>6 X=W%98v%82!00000NkvXXu0mjfFmhF{ diff --git a/crypto_monitor_binance/static/icons/icon-32.png b/crypto_monitor_binance/static/icons/icon-32.png index dc2186fecad6ff9a4f843361c6b029752d9abe6e..c706b7d2b95e6395ab2deb0c14234c2807487863 100644 GIT binary patch delta 275 zcmV+u0qp+q1FZs(BYyz&Nkl>$F{tN&B002ovPDHLkV1gkse6;`o delta 472 zcmV;}0Vn>g0`UWoBYy$7Nkl4I=Ofg4RBOy?~20F|-JR0#OPnS_riW38}PVoEAERW6sIP)OaW1sTdhH*Xw(Z0s^vn zt}~$vG+HD*mE%b+X_1ol1;T4H5}KNo+8b_n)0F)Ej_9X*!ZF79b$kMym(6{D@!X04 O0000DeFv diff --git a/crypto_monitor_binance/static/icons/icon-512.png b/crypto_monitor_binance/static/icons/icon-512.png index a46fe9341add0179596e838b3d3680fbbbe92d08..6f48a2ba51f295be65e5451357c89b025067db51 100644 GIT binary patch literal 4991 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 HknZ^p4T+qf literal 6059 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 - - - - - - - - - - - - - + + diff --git a/crypto_monitor_binance/static/icons/manifest.webmanifest b/crypto_monitor_binance/static/icons/manifest.webmanifest index b2ffb73..1c3edbf 100644 --- a/crypto_monitor_binance/static/icons/manifest.webmanifest +++ b/crypto_monitor_binance/static/icons/manifest.webmanifest @@ -1,11 +1,11 @@ { - "name": "交易监控复盘", - "short_name": "监控", - "description": "加密货币永续交易监控与复盘", + "name": "Binance 交易系统", + "short_name": "Binance 交易系统", + "description": "Binance 永续交易监控与复盘", "start_url": "/", "display": "standalone", "background_color": "#0b0d14", - "theme_color": "#0b0d14", + "theme_color": "#F0B90B", "icons": [ { "src": "/static/icons/icon-192.png", diff --git a/crypto_monitor_gate/app.py b/crypto_monitor_gate/app.py index 97ab581..476e8b6 100644 --- a/crypto_monitor_gate/app.py +++ b/crypto_monitor_gate/app.py @@ -6637,7 +6637,11 @@ def login(): return redirect("/") else: flash("账号或密码错误") - return render_template("login.html", exchange_display=EXCHANGE_DISPLAY_NAME) + return render_template( + "login.html", + exchange_display=EXCHANGE_DISPLAY_NAME, + pwa_app_name="Gate 交易系统", + ) @app.route("/logout") def logout(): diff --git a/crypto_monitor_gate/static/icons/apple-touch-icon.png b/crypto_monitor_gate/static/icons/apple-touch-icon.png index bd835ad75be5d5fe23ae62a783a6517351447cc8..129f899dfef40474b9b620361f25a1906c012ea7 100644 GIT binary patch literal 2763 zcmZuzdpHwp8`sftO3B%*NHLmI@lMy!oWn4OQdqLd*=sY3HYI(SL&%)ZLJ}fgHnEBo zvmDBqkyECyBIYpq)_1+%Ki~U3*Y(`L-}U_N>%N|U?)(15+aoMQh2(?;1O!B_EKQMo zZ1{Zvhxrlq;joT?fKZy1=_RMzW6SyeiIVfc*eG2bByyt!du|*n(RmFFAl01oDLWDP ze0`{4L~8lr!SjO+YDwb_+P>Qlk1I7~HN5#aQ0{Rp&_+`JdS3=+Jc#o6EwdDWgA4e-jtArRmC_O;6 zacuDM_tg=XyMOGi>XD?*IQLb!vNl#)P9nQF@5`_;TD8J2FrCD7Ziz~kHG9(7cF8;U z*qzEG)$R$$nW62&gRiK^Uy@Gadh0+>Cp;|!O>MowA$P8<6qV_fDB+qq3C_Q>M8NwA zA1t^WUL5erfVmTT#TI=KBKoFf0V0Hycc^5>xhaxcMv(IKG)j}Op((_@PB3Ens!!#I zn_Ux*9%u*+V)>y;ecq|1xYk<6Q<&iGVLrE-c#4R{pQ>tzXWFy<2;L%#wMgmu%ekJY zgGy_CX$DKzmEbMVMP`Drj2tpNVOhm4GqDdQZF__5@=fcB-h*U$*hRTe-G2pf+pP;A zrb}AwZL5b?L!YQO41X07Hz(^=_Shqw$I#8id0M`oExu`G`}WaE@uklFe^xzreH;x-@l@4oLDY@n8Np-4 zJdHIV-PRin5%aHp_Tw)g|L`&j0IGSKYJVjV)`c zlsm6rW={L^#O@)?P{55gacc1Kre5*||9Z{>G|861+W;|wCsjrfoO=Bxe6{!^A)iajYe#;^XD1-IOI(tT6U&lX6uL2sXn} zOh&s6DMWk%u&y`myt`ny|7B@1$Oydfdgl;Ku&LEC-{_7Fww05w(6X&-qX;h~e7hB} zN1yaslhEuYR%@r=>bQyyL9=2UcyHxnoANY>#nBmk)U>NmQ=`c!K6gK?aH3QbOx$I9 zh^;W7yy8591%?xBu*{)LkE5+`%b)-iAmNAGMH`6IcwCn4K;zpCMdEuiA0N}I`f#0;FJ2eGE9sPXySnWp+@iXCdIgzwaLRdZZ9dRe_ zxwYm`mtxIU`-siL0|p51^}`sK;O}+P>#EMMA0}twgq9tBK#`sukleY*SY>1OpAU(% z_tIa^<3S>Si5jzgP%>d?4CnUn+UzWx)l?+;LWi@=pBxzhyvW=k1*ci6moKdx7jiLMU6O47V^s^ zq9T{~!3*PY>?iehZ8P7XlA=xEI-eS$R$;$+h$#XQiv$(U{>RNlJTwVy8ClVTGT4QIpAi$h|Vp*?3wZWMiZZARa%d?e2R z6Gd~S&;r)me&u;~=4fAvH^WKh8Ua&}8QjxooyNOn+I-*52o|YwS>4eG*DV>0YA!qM zHNLA6m3l-R!RJ2Xx3mr8De%m=^CAGaKO6T)-H}>A<`bEv&OAB|e-Au}irP{?t^3v<=0-aZSYdc}| z3^c%9wJv9TkTRo&8KM<+%=n+6l}!#y@kbpkohq5T=`4v^|5(HL$!szBT&Id-Ndz`Jd?AsPBF;<==F_) z_Ij>@w}$Dsm_YG9aXE3h|G@w7-^zdA|K^wN+5C-fh2$@6SBAzoTr(1yhvo3_ zi{fa!SoKksqhE(2HIS-hfbt#*lzVo8LOC6?u^QH&Uz{4@)46n3Us@^168Q$D$G1Wo zTVwYOBRY}{GIJIGb#0fbPo3!zC+IG zu~^hj8FI7NiB)O!Luxo5eiGG)Qrt|wUBpT#!iYJu?_Xx+ zP86lJs2Pc5n@C5zK$`d-&tRGzldC&M(FjL?-+_eZjcBQqEB^avdn2f2&qz2-6z)jp%;^`SnXn delta 1728 zcmV;x20!`B70(TjBYy^#NklDt9Bo_>JoDjT838Zw_MJ}Oa(}i!K z?M?J9dJA25pXLU#=%!@R?hENIv?P#C2(d_Lpv2RKzhqkwk*S1Sa@42~A{TXD>8~ z$=x+0GNYvPTM-#0RqG`G(U*U|t;ca324HTBba>E~6$-@E$x>DN_@V=n*S z)sJa*{PNpVwK(SHeQx)-RV^Ru)y`E!6({j24$eMq$BTz|JNIuVh0xUi_Ya^;T97Md7s#h87chyPdYB=*l_{v%oB zNGxlpob~Sd8dE2F)9YedU(xWso*S$OeK(5^MqbsRLq6SJj|D!&x zL^7kVzucofvNO=ck1k@z$b*ZL7^R|d+DAj;S74_K%(4QBhOl8w#FdB^sUXBX_aWOi2=|<$TS)<5N246h=;l}s=KKe=IKp8SG`o7^L zWG8d?QtK3A!!oZYwN4=hDD(Q2TBi^YIS_`Eh<^;jNr2%b42`$(?MlDDdXvR)5_;m` z>2E7Z-M(X}Q;42qZd$3=Z-1wAWG6%pBF~8*cjHONGN*UJa1xnkGC6v5} zF+rq}d2;k9((XQ*cC6U49hrNPIdlq9p3FLhv2DXasYWx0Rhe}PA!dji*q+KPa*#O; zCx3y=hLcokG8;}pv6VT)P9c$_v#kP}&Q3IGWrv-U$eqKhtMifBa1x4p@@F0zMXqF6 zwu5CkokB9(#vr-lX=cObZs6QVn%HKHHCRbj%jg*B1#!Dr}trp$cx1pg52d* z<~rwBeGivc-+dDi5%+)jwNZoO`p-8llYf|D8-v!}wxLCnd@Hj~;UHz+WcALwG8<0H zK8trLU^y|v&Pm-1_w$d9#96n3cTv5|5Lx8d*sejT+e;;Upq^TQ?B{BFE6yq{*yPSj^5zUdwe6(9HvhEa~OH5{K&&6~K z$t-SokCii;zVNl}3uIyEq>W2`efLp_9Nu3AA_rhNX@j{s2G(qWw{?TzBqBqn5D+<_ zGK(A_w#WgI!@Z;&PfnCL=K1?sxoZW2!u`{#D5K)LJ(Wz zfXJazL*yVbL=J2vA3wa&DTKA>WJ14x_qq~0&~@Bc?3GR-bPCB0!%1;PdC>LV0W5#hDpW=4Xm9Jz%@5b|s8$Mg;rYCo})y9Rm+J$&pnWqa} zCPIG}uVz;4<_}VSfA(F7O^$gv$BAwy`g&vk&b`)uYdm?(dkHSZ6TpoNy{^>AlfGn* zO>W;zY$8WV+Zb%(&N-s|^E()+RBRF#B{Z>#T%^zhColj2000000000000000NXh?J WB2CB~Ct>&i0000&`Cr=RCt{2kh$5r_b}eX_cEkh{%F znpTx&a8bv7pQ_EB!aHgrG!MR8qO@h0Hv9&&Dl==D#F`#wc+C|}3IZf9niBKJATZVajtM&&!;R1UzFlRbdW$^$2002ovPDHLk FV1iUHX>tGn delta 148 zcmbQww3ShSfq@YS1%NaIg95{RhKT}N)oGqCjv*Cuk`p9Yzp#2uzyH@=Jo(7-gHJyB z>}V_JSy=F~dY4mA1@Di*h#&XWJei$kQaCoH2_zg^CON(Pf@!kE2WHRD6D!RFMDA_K zJ&>g#T*Q#6dNt`P%cA`?6@BJ=3fewtBq(q&T$EMy{rf}08DzDmtDnm{r-UW|K14Uq diff --git a/crypto_monitor_gate/static/icons/icon-16.png b/crypto_monitor_gate/static/icons/icon-16.png index b3a4ee1ff49f1a22c8a11bf51e8b9d9cf1b3c226..8ebd22a43fdeb2013114fd87a3ab6eb20da6c5a9 100644 GIT binary patch delta 237 zcmVTB!AFJL_t(|+U?TMDnxM{1@O=Bc0)9Z&CN|@HdA6L8!IoM$phS- zr8Tmc7r+~+c>|undiKh4qKs}fiqW-kEwJH7Da$#_)AyY3`Tk*q5F@iew}}&MqDBw9 zWnNr;txY201};8?Ei_T#JR5YsHB2J`+E~EGaCz_clYDx(i)N;c87!h6uI%5yWUnJM zCQQ92S}pV9^4Ag2M@Z&p!Si}YwR8I85@QBuxE?#)60&I_pOJ2_{rL(@II173b{J2+ n_U|RFxdR-RdGRuO-haj$dowU+ip^Jy00000NkvXXu0mjf#BFcv delta 133 zcmV;00DAw40-^zsBz|d0L_t(|+GAiC1@r|Xkgxe|h5^W$kIcJ)qVR@o16D(skON37sTQlI n8@3G$Up_o%BrB9h0bu|D(H$jCcf{$o00000NkvXXu0mjf#=$iQ diff --git a/crypto_monitor_gate/static/icons/icon-192.png b/crypto_monitor_gate/static/icons/icon-192.png index 92351e1a28fcd565bb47991ca538d9a016c72174..9039264533cb1dbf32fdbdaf908c9eec004609a1 100644 GIT binary patch literal 2990 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 MGh5SoW6y;D0*D)RfB*mh delta 1781 zcmV9px;r2^jv{Uhf+4#syoBH;3va;W zCUO_Kg{-sJ+<*%=;v(4x%uW&z+=w`X5+OL{V!nFXp8l#jRi{q<{?ITz)jiWy{XFNq z=c#k5A^-pY000000000000000006+ysD|`m_io&-ePzSo{eQdH6$21FGB-p;^cb@l zD#FK@jZhIj#%zQM@ng)5U^3@@``6og8V50r!5cAx(~xS4pr3gDfUku*W=~An@O}fOJ#s*94tIP-1-1k4Zg68?(WY- zP4{7}$Kfchoqs*M8h<3~0TLSEqTtV;Z+;-Eo?Ff~#B=#RI1a1ccNBXk;{P*g3DkiB z>ZQ+zTYf0Ry4Z*RRQOzyE3Nd#+r)Wkfgbi1^1#F5hGbHtBz-}`#qWNv`Xgnv)`Ot6U&Qk^T9D0wjEl4#P+ znZ26$v84&>PRKJrJ_-M*EPk#R5 zcmF*2RSb%8ihtGbLkx=2#ovwz#Gn|k_}epq7=IK46@Po>kTC!t21STL%?1S{D1iVm zD7t6=$+LJH54U>HZYRaWpvX}Cr)+A1W@m)c>u09b$2P*B=WRTUoAG-h@ryx`vG~{Z z1nr4GhS~!tgGv{FTCs~kF#z!&KDa;V26SdY40aKJYT*~OAjW{0_{|0d@rywbjb>h^ zOn+AL6Ms=LC^KmJM_B?9Kk?_S9Wf~JXDWWPK{0yqn+=LlxBM~msSwH_XLrS*h;|l` zFK*i=79F1W#h}FB((8vQelaLUS@v|R9oGgm*bR%~LHuD+yfTRRjRB(7`P}u%1H_-F zeq0-r_+!ksNSY~uwij29A}UY(bxDij%YSNFb2EdMUkuutxE8l}Ewu8}p1On*Xc)Zu z@rSdY?>v6G@kykddk0ac>jEV`gPOA$wES7j21OsGQaLTZ*`UQ6qHVF3SN50-#V$e>+zbLY{#7p>M&_TBR^V|9`L)l4>7&MZ`p1=LFblZ!C-{09mjDKC2 zLCh%zZJhaU`uaPMpEeR_4yBTozw>K@mYMPI+FGAJAO;6T7=M)bAqH(}usc-oZ*$MDU0zT01HVh;;e-1tO;AFs zzbNYY`+$`#crj?B(niUn1j_IR8Rw6bCLsPObUi>C{S*;{UUrQhD1S04fohiofxATJ z$hMa_+4l7a*9FS`3K5HGe#9vx#L5vs_2EJlYD1XGD&>M(B0Wm0)KVncY zf)WT2gTla93<~9s7!(6H!p9G9i~)e`4DkNl>q;4fzRI8V`V)h~I6w&mh(RF+O<{m# zb=dJd?)u~b#188LR_mu}{eLe8h1sAEE{p*Zl|j-Vq)LC7=dJzn2)439y;?2Ra+{qC3_9Xt(@nv-MBb0~~+IS}BBR(_Om98#K~m#O-DH*PoT*Q7?}#+j+oo~#VemJv`6T?;>Q zSP#(GPJ{Tf=mGQwgdZ6!z03+mApB7qfEkFM0T_bd0RR910000000000000000IT>6 X=W%98v%82!00000NkvXXu0mjfRHs$g diff --git a/crypto_monitor_gate/static/icons/icon-32.png b/crypto_monitor_gate/static/icons/icon-32.png index dc2186fecad6ff9a4f843361c6b029752d9abe6e..4add43fd969e40679d39b2c1e605c3ed3403e72a 100644 GIT binary patch delta 481 zcmV<70UrMG1N#GzB!9w5L_t(|+U-_7OF~f?e$Mr(`4QL$ltj`OLDAq4(hvr|+F8lJiY;}0gyr;~Hxzo?q4zkUv3G$ObfB>WGNCYD0|%hd=b}uM%YwjL zbebU>OgnQR79&!g0HpC1qsIDQGC`+OYSG~R(8Yk6hH{l3%j7PBmh7@ z4I|<7Rn!Lru7BV@D}x5!Ot7!f@4eQeoNBVQ`>7_kn z4lmTnKsFNn_;os(^Mv!;kQ`pT1&`Igf^6go*_#K5_HK|SbMZ&5MtuPQ@UprODpMHz zE(o11AVxiOt}$pQhkvF9WNzBYX)+l~o-Z5@UUss5cUXs3GWZp57KC35Z1F`n-BUm?{t1T~F?hl@16|Gv{_9 z6!}rzTY1GRD>T>y;A(x})=rTHoiN>Qk3?z5GM_G;nBRBVL&qR?;Q_7Z1!r<&>?c=f zN>5khY0|Ovz<=P)`{xl(dqL?_0KEtYsOK`48``0n-LUL)LO||;ZhF;o833wwAs@0gl>GgU=%;(aF~<0Hd;*=9&3%9I+=>7I N002ovPDHLkV1ip9*=_&; diff --git a/crypto_monitor_gate/static/icons/icon-512.png b/crypto_monitor_gate/static/icons/icon-512.png index a46fe9341add0179596e838b3d3680fbbbe92d08..7c41ef91ede771e7f299e094e58f0e2e52b6c0ee 100644 GIT binary patch literal 8836 zcmb_?cT|&2)AuF;f`AmMN{fPmdec#)CMv}WBHSV(1OXL6z?&{D!AeI2D^d(y1f)wx z9svPq0wN%U-XZi5Aj!A!dA{@h{XXZ-IXPGM+TGci+1Z)j%qH}bvC(d>eOv&5-Dl6} zUj_gPe<>G2SK1FMIOA{tE{<5wZ`E zNYdz4_DHVGg-fSiO^{w3Y0Uju(CoS|=W@CAL30I#VqCrimz)rq10jrhw4aUV(P3O2 zzbc>42{WcZk=^X%Q0(|nAysqx{?BG4%Gad2sy&FXO|Paea6%^juRjF`RoDjaG#6Q3 zOaT|-BAt`WmDqrgANYa;xO_A}7i}8mo|liaQysiY~Zmpjvuzy z5RVZ5ZrGB9c!EdyhP6JRh=L+G4LEZI&CgaR1j4Yyxg1_#tPci(B&e4Ly*DI*oCGLG zXu&>^+pYzSbHDHVOtC|Ymw$gkla8!w(3b-U4COIC23@Wz!HGl?NAreJn!DLf5y7(x z)^B7mKL(7aZXVqtDr49!0Q6M@7Yx(OGld5$!!sp}1($%e}ynqlhw0eN7%uG>P|JfcvGmxB1Ld`o}bzI*U zx1LKhhKtUOlAT7--<&RebLao&&v{0OIWNM@=VC@Zc_2xnUgX13`(h|eeQT>AX8R+6 zz%94`8r6F&<#^jiCHo{MZ$HL#M>~5d`eljL#d$70Wr1K@i`>(eyOH;K5TT<yq6sZSEy;UXEFpZnBunq&Mu_cM7$pChfb zz+EJ{OO(6Bk1mL;6T+1WG4ro62DYnmtnPx&8)m41_`196)E|kw(;Hbtec(v3VQ4=O zLX_vrC=YolpQr4Zo>atZp9+=p96 zA3*2rk;spe z#LkW5cP1!ZvuvLBq8I^iC}@aKSrO>N06AF26a8z!ibP(VkucL`sz``XJN94zFL&&k z9H!NXts;l}(xsgNi=Bl@^e4LUwButNPJW20NT>XhKlr(f^dwr1nBRJ z>htczAGHR+Tahiohnn=0RO|YhqXY4pXh7(!D|rd#uW^b|s2AAB{{lrvA4eXegc(AU6D&AZMEu;+pzu9wT?cnAvU|>|6M1VD{{rgp z)uJEZMz9mlR&7gD*vxhiKi+VNxoQ2pMpWbmv4gIC-Xlr0AY$7!(T+v-;Di&qlTrNI zB}*n^;G1h_DdrM*-BCesArRZ*d6%vx1LgNV%mIH*b}*wW{3+!0&s%-ly-W>HhQ{Jkr;?zBkn3&^`Y{0SXzSwq9PZFEv_A< z`Y^|YeSMf9p_g6EMSP@b7U}up6iyQO(EqrTqOCm`pmqDaEgSJyUp)bM_L?E@<9RYs z9d_Yol)?1(pEXfL0D$K;@H*nfi+(0ZN33kg5_yRmSmGV%od6E@vJt088=0pDq%kY1 zlKfKWZiJYdE)fGd${v#|Yv2Irk1^m8joGn?4%yL@dfn&+w1B;i%n^RLVgvS1_n!!Y zfrDWn!2tbNE(nQ4075G7vP)f|_ zpc;+TTAJ!OUJ>GbxA!sXw!w|I)dMqm^E=Et@5Rn$i3wOSu+JqoP2%D7vHTaES2up= z86}2pRYeqrx&c#HeT|XNW;q+m38ZjNH;~ zAyqqCc2g`xBA+HjIjT!uf( =p(^uUkel!cPrmgq51Fe{n0z`b3V9pVyFS&coh1 zpJCgYo;etR?{+O$a^ikz$YUYt4CmGD-`1x^HX72pMU7PLov0IUXHcd=UHPnUr^E+C zdMVXt;Yqz|RZzY%+}`o|TLdS3oNACJjqz*vS68S7Ji^Ao(H19qpI0 zvS>zf-`K@PIC^p>*|O88sUjtanxYagW0DdyCBwna2BuTbT?tv)yP7h!V_~EkSnE6Q zXf*syvy<6QkSfM2M!jzjz`o5s&Z3FguFs|t;Lg#h$HglA^0jD7Vki7uc?gS7O{*r2 zQAi}vKVO|?#|UO8v4weQ${z)x{-~kZb#G)ZYk+1 zHQ%o8wj~}0XDDwN)!{=@_4hq^46X8P>!<0z-k9q6CW&o5l{W02ZGgbU5#LfnA(a{w zGzvY8dA{!xgSOlS-cg6mEFQJbIwycp^7h%yj8kbJ*z4LlWgVRsV;DiWmmeepT9-qsN!(Pe|q|i&*ODG=7h) zW>Tdp6dnK|=sQNX2(50fIoh13-EZrl$@YB!yTzDP5D0BlJ_(4{e;+m=PYnsDjq$07 zNG7j+kV%=U?Bapo<&$%C{JQndhJ5unufOc&4PnR0`x$G8WBga&0da zZHMN}qNQB@<2+wfBDak*ru^Xd1b;iB=tO4>4iHtU#kLpsR*5D!$0jLSwRCQWYQ%E^ z3X=GXQOIB}wVg@d@Y+dAE4!h*?|f23Ls(De)%-(mYnXFSzJ$Dwape75h9ha)Ig9^n znvkiYfoieF^Su=Y1ykMf-`|NmMr}mZG5n4GSsW73O{nN`9ijQ_Pvj^?#~gL_B*_3V zq@Ga8KPT#dRA-4*PnZBt4ty4CsUC`5v=HF(n z)|e?8E`RDX)p2r-gIgG8RGmC_d?2fGyF1e+&|kgxu6uzD0LVRld2tPFi3}|tpMzjc;=?U9gMiCaOX&QcQ1TUVz zNq=KsHh?+MmqTcg_{YecZrJU5RYHdRS#vgA`uu{ux744N_hQ#K zF9}7z6V#;;T!f}tn-))qaG7dSQ^m?RkI3nb90uP!_UMgt$R~K~r(^9G$_?_DBib7} z>d7tFmzgP;d(@PC+D?nzbQig=;Fof?HL+J(vS|$=hlL*MN|~6hX!ZU=>AdA%g(|*Z zUfC~=kwYe%y(HB>_DBy(#Sd+jWh(e$;-x=jNK6z)`7mSv&gSnnO%<-f+YT#*k&x40 zo^4YpCAN2rqFh${cB^a#=Y9QVk?Tyq^T=CjyU^wq9!8{ZDGm+YnUz!B^TKVBr&Tsb zTI@Huu~C^nwf&!ow~8?`k{XBc_%~(P^QwWE<_w9&aA?N&yH-UrjDC<~bNpz-vH7$F zd`N#J)w}0vZ?3h_LjtYXkvGa=*5gH`q8I|Wd#|()slfxLrCLf{tR#drjAfU*e|P4V z3i-l^Ps}pL&3t|+)0aaQMIyio33@}d;$8xMq4kYj_bjTZ2Q=^iv z7w_l5uH^~*t7k_t#88a`yPo6dD$)G4jaZ*DwdD@|yakz_q=JR<_OH8h+E8^VwD0A= zrNSo*#qBnw^O_7rhYzARSp$2Ih>&*VR@IhGpD5ByKPasdMuq=X z#CXb}`lyv1b4@M5*8a#;3OEtgSmY*EU3SZ?Tl%V00*r{3ZMMdY^B1QT^rJ!)sQHi%Iux^C7|g zD?vR1GvtY&g(o4`2EY7jvk&f({w<Fsb`uD2B6QC z$%kjOv=NFa4jKq4yzsg~%K@$?X@$0I>{?tt3IV*Y)4Dy$w4v*znjf&ATZ0|HOj2!} z_%ZV+Q1Mrvhtuo=v%j6vHfY0yhLUxp)r9c0bk;;fiyt-@%-<0%eZbZ%Pd8_hw?Cs0 zoZwjoFK+#3%v$-l9CB|)B>()!{wFhyYOwrG(>O8Y*G{66Vc@bo2T~GDS2|i>*LLdPe4>*SSL-lR^6Eixksax-l1{M&u3+bMy+C;NILY1J2 zUh!RYyH<$jq37vE{IU;Y?T{@OoJ(xt1KAqsHJqOu)G(~&opg$i4~nkHo)x-v(F4O$ z?}sbV4Qg{;boYgt(lOS~y0%VaoAH8nk3Y)E$q)Fu9G_dJ_Wu`?W2q4GsR(p7&0&vb zd$_#ppY7G|k-i!;+iv35VtS%h9Y6uCjwM;X+IoUZv**3{XR(|ZchO|u@7K|YZ?Z}X z8QDD)yg)q-ohAyR`mqPj9(ddOJ-TOdRk5Wlp$Va8KO8Tr6?_s6yj8*P)vF({*uESr z7y25S#pV#W*Z8k2a^R~d?7wXwV{)st(^r155z&&T_v4RQl=jy>?V>-ItTYjtoS(o! zrRrB?ATD1CTGv4%p)utkhD*>gPV45_(=*4A|K?bOH*JVr{(EBnL=29lpA5gTsw~2j zW`b_tADS63Mx-(Jo>L;c*G0eqq*e+$bTf%TqQjEq(CWa#0&-_3_YCt6Q6^<+M^}Oe z>fJlb#^bhrO3dO@c@ff-5_#Mf@=|o(qvuKH;0kUwDaCX2y{XoW0WT-i+CVw5Q2PFL zYMPdTdSn1quHPU3WiRm^e--NHsxRVRMy2K5s=}R zh-!L#h@T9KTrKN|4fGb;ST={E)uuY@RULQgCC7%gKZl7}U{c`Ibr!!aGsx@rJ-n+Q zp(%oaNq*<`zw|EieaXzTW33x%QA1tMB-0&l>6y&DFw&=F4DB&J1EbWrJYUl_>lIhI z!w}zTKB@6^N!K%>t)-Btv2JZ{oYRMmD2;6))is3MvK3VAlh84qokjjGSD)pUZob0l zJE&rH3YYad+ul@XlwIW>jonml^@Q9ZxUWwXYtyhTzi%I@S$sWRvsQT~ozIiLDc8k8 zq7o8?>3Bc9&<1&6*Dk2PEbe>l1(|fevm1*cQw!2`d|U#p=f7ARV!z~!;wK6m(1n0z&0=7&|HMbwZ=+G4kW3?!M{R+Ysbm~YMSpP_g1Qo24Zd7^sc1U*Pb5*h+TH#X8Qu>Ln212m2g#yyY2M4 zMZK@7R)snLJ|0+Ni05A#do0izGGxMq7))IrHiO8O5ZSQO!vRD7FJsQlrn(S*Wcj2o zV?I}`dYW81{}}oWWgAY2;39@hk_6A<>xrJplj-lp81vK=zt#kfho3n49W58qx9wJG zuM9jUv>tZefEmZ0_;z|t7#2y~PfY0gOfb0X*DI>4`tz_4U7W*ydNkW^m9RbKs8iNJ z#K6qx*JDzFyY*c?W&!r&ZcMyWuR_>GH`;acylecOYbWINuR_!zh2$`@n>HgyZ7J~S zx5KmUkldTB?_I8b`qhp+G=aOy(0#lv5}sJEk2at%wR&58e(>IGcMTb72`ZoHyeNJm z7=YNI#X{d{* zSwDI?tjDx!#ln<6lG7>S-U#uXL)QL#blv=Ai<lP z@m|mshi&d&NcRDxb?}4~Nwuul2SE(9lU6 z*<=G&Imzmic_$iXI3GJh`X8W4CBwlXOtY}jN_vVXJpEdW$t*Oh6}TTC*jd0z)@EVF ziXJTNJqwLgtk`x4I`vY;$Pp!dS+#V-JB%-;?=t*g|HE)|D@`KwE>n7D5OTzRl|dC?*z3G>d=pq?Lr@T zqj&K6Ao_scxtO@~0x#_JvxLs3eNKzNWSCITmPObUO5TC54q7|khV+>&ql-S>2V7(6fsmT6U4IQ_qQ zz$)*5vE-+Ec){f|Lyq^GyZufQNapr9-_I^S38u%fOATK&ki_4;Xfwbrq_YE({Q!NE&Q6p} zTs7T9loO5)>!2S!ph0dg{pPP`6!XIJ5?NXRQb?jdl-~BIav7iwo^$~1h}c+bgLaX zIMa^bWEU)*A0hbHasqAZB`*Xh2&7Wl@Zi_TD7jhU`6#>x@L}fswMPgXNa9A6x^mAz zygxO_bSPnJ-$5kv5)}clf*=X5Eg*kM@?+vF7-?QqCE)pwD7?U&u2din(tRw!>-qaH z>l#ugc!@ahETM$C!RT`!(|!7PYItjT=ea*s34ZKxd4zcVc@#Tztj~i9uTQ!Y!C0%t z{UabbFq>gziAr84ry-Ih7hW!luw4@c&lmxOer~2#K0OchNst>^>O)oH1gRFArB%EY z+oIr5z{%mO24p{&0whu0j`6(Sri_A)+>#bYGsGA>Vn485nWC5WvO8KVQ@S^5cyaT; z&EZW1alV*Y%6H;6?!LD?3&T$k(iqZ@9#=r{Swuvz@ND@Wlag7Z_9E z5`wgj%ay`GY@te8-^y8W`^tNqnD)GN zN#~ruuY?gwf75+#qA`&V3m0M$_Fl*my8j@+P_%a7m&EaJiRCVxls00&~Fpe%Y6?vy7GbJ4{WZN44pG`d}wf$I@v%FDQq6nrNw3%1PDFqAUqYNz|*|Y0ciFk+8%CUoBJbyxZ z@8EcbRd@|}_9L#gt>_CIB6&cHB2J+eEWIOWpozI;PWgq0rR%p&<`gj-x9VQ+0|hpl zjaH4_&FVxJKh~U%>s~JhxOpCcj$Mxl{_KH9HW|5_PY)BPpJx$66uJ;&x+w9ArQ@fF zf88CaC^R{lR@M{^Fl?zMc-)0y=TJn!)y-0$-7WpqjQjG8GXK4ouJFz}njyz7q9RH= z8oHqwTp?tK(;F&Y9)|pvEwV)vpKQpzAUF*#yQ)Zp+qr+IxcH`Ta)UB%pk3}i+@^O* zo*xKWF8NGo#Z6eyxWFk~x(KK7pKU{g~Da4xqK{ieDB5 z<%(=jhQ$qG0s_;xA14O?Jy4Ga-|lmYDe!Qz)#m1IP`;A#Sc2_FAQ8_RAFzI(s^w)v zj(`<951~{j0FLKpJ9JnABxH++SJo*3P6WL9EPhl9QMmb5nbUGjuOCd0{NXATtH5NIG4!_uLl8F4InCmOfzD8W|Is(?6vOgSimbpmS( z)+)rIMWq6Q3M!CD#94_WC_{+IAP5OEBxE>wJM_N$-XC!DLvr@c*=w!6hHrg){}i+| zz=}DZ2>@2#1}<6wfTKqo7^diFApW%mz&`fdMGIENzwc?fd)%pJ(5z);UC0*43k;X& ztgPaaC6k<8HcB>bfG?v{j#TWgduQU_LjV2HWX2@o>xU<@>O&dlgvIQF5|5U?`1a<8 zIL+RWH^cMIKe^8oB$n@LKNB9ZCnNyr`fq=v*&imdUv)=UtWIW%!zisJuKgg83v9S- z2C#>~Hx}7R_j<|+U`}!2Ql>-Wc zy`Zr#-)Y6RGVSRSrOdNu+XnsZ5{+uNTD5+>VQNv)!J%y}nt5BgODi;U{x~^4o~pd5 zU(+0Bu}ycp?$Wi&f!ec|t{sd2B-pzQo3H#<{w!zT^nX}iKk}#G#o|_xE=2U_ z?w8lwIpz7$B$80B7q6es_;u-ze2sWLZ&mimlNEPiqZR;tGrF+pqX;)s=2Nz`K$56>ZqcE-A|~f-YZS^n6Q^kom8rU4HKj zC9w@|v;R2x>+!t`zso0si7RqD|1b^f(eB9)gf z7&~A89jQ%G*O{3BVL0yt#90pRGLL?v|Mx+gxH&ra0N}pM0;c_YZk^8elET@cR~%JFb@e_4#AP zaP@ig=e)El`Kxam?Y__J8BVk(bYG^E`GYm@47Ed5V_J9u>d6FI-MdQdl~IAM9eKIA zIz@a(Y35LsiSYhe8Kw7BG`lyOp7K97b|}qK!2P{Vv%w*G{&wuBEz2^6oSV?{DcEGH zb{)2*n6MO(bF}h;O2eRM^A%hyoNkDDa@a+zGz%?tZ%#V7@lRIqBQIUuT63>EaWXV} zBjD{gW62bxfPMvZwsi@Hzwx!3MOY;FE2+E)JO0UCpG41N!V2Uz(j^SnfH2)LXZ-74 zir2K5L{q+;J!6U65OZfBxaqT*RR1h>PtDv3Fxy*Kpid#MtLU#^yYO5682!_%#!)cs zAerzaC-~qrvM+}!a1)TT-LN;odBY>h3gFGCyTQ=D2A`?J{Og&;)!!_F&?yIzY0nw#t#)Fj*y^WZ zH31us##NPTIMcx~r|M6I`7MnZ8@Yl?#1l5qi}B)o2C9Dr6ysTcvTT`Tt~=a2~sw@d{xP#r~{k&71)hk=ll;jEuF+_=OB zOT+1*H{#xrb+K-6V!QjpBdIV`1eX}Vq(Nmk1Tmm<7$^4wQDhGj6uZttXAe$3SO8K3 z9sGc-a)O47wIOIyv7RT&-&`p~wQ{x0b^| zEGBklK|&P>x&O~`@y@o;A!5J^E^OWpEqyE)NW_TcAgr~3YaeEv^FtdcmxXlD88DOr zQmuQ#6#O8tM)kGyNh-tpKk81PATlr*mri{bE{kNNkdWn3hJXk#HN56s$m0fG=p2x9 zxgZfe;?-_vf%jNks#Yo{(>k>{xe>YY2NyzQ4;vr%=lTL)t>WNUW&w@-p1F{L{!CeD zjIJw)mCMHC11VSw>FYY5Ay#s}rr9EZ%`(LX5-@-e!`3pK2A`JAq#*~BeMf|@I5{8@ zc`*WKFfbyN;tXhCDCppM7*#5Yk%`!n1-8VZFdqwo0QNbNy-^sB4J6S3STM;KkXUgp z3wnn~!x?NOUZE54EzcDkgHKha&1p?;?it?8S9DnD-13WrQ%XS0*R%QR)+TqHOm^YE zQbuob;5W4i^y{IRMl1gkP-_n`)6#Gw1bZtQw!!!r6Gq`C;lo9C_F=>>4rC~nBTSd`|vMyGCF`n5Xn;a=_=!u z>T{7=RA76@l9L!8eVP;x`c*5eRHIkd*_dGm+qhz79jY%EaR9KXgbK(iMH$Ceck6ND z=)NJrS#>UwC6dKeezq~IVUn}A*r8TGIFdYUq&wa+NDjL_)m8!;DAG;C1_OF`g{Smr zs#70;9ggITlm}XofDsXYYw%c%)ho;_1s@LeM^t}DI$L0S8&sQbS-R)W& zEn3~J!pX`BVx^~UFcuU3R_)3(LsH@~Vjd0sreK7NQQAnFTM8=Ydz-Q)Rg=eymn7d8 zc#_bvlLaAqji4S6qCvU{)uF5Hh^*ZhU%cOyY3iZN=pOX*Vxc0!B%E2|u_&I%6UcLZ ze_Ks>S)h$t31$(-nv}>!yp-rm%8_XXoZQV|Q|Y4S=`aw+@H=Omec+X-U+u+E;8~{f zY-jJ3^7=eu-Q;NaV?(iG4()=aA)Bh2Q>d{LBqR87ENqD9`jJ73i@M!5GIp;#p;5Qb?I{Yqj(u^@Pqp^5z zn(-}B94qU5kS$;BKxry~m20*dDRZC}S_@S1=8*0^VtL-%;8CtL4-~ln)uZeljIiLw zo;8H^j7dcsvT0Bh#F=<87)CcZ(mt9^YOe;md= zKHq|H;qMVECx7qpP!|Pmz(vxz5SYd<5GwKl|FdO@IrA1kESiiLZ(=C$@~ z2048rSegWx-emCk!~lW8eDW#q$YvZrTL zE_kJZL>6S8NOdYu>oZR`JTqzgV%R~iZZRSU_pVYlC^9!m=P}@bqt#Dx-lj`o`n9RZ zzSHwGmA5rUd&W^qEbR)=I~oK7(T6^IYK;p}hY+#?Q}RVdJ7z6_Eg#J`*dCCJJ_KEx z$5)p=Cj~ph$pfVAK^9-_IlDd$?P(+lKV=wl1lsPYf}!WU4vA{wgbzKLydAMpa~e{R z=w;557UwgTww_q*AEZd=<1+D6_{ysTiOrEzmcCJwyQ66Wb6XlMY+>V?=vtPXWs0_ z7v0FX$sLPAB=41GrW~r*B8HXawijtxK%_`}5vpU!2zEkyq7RN=(OB=-TY+RUX+ z?I=7w-Z>K>@ZfJDxTDep5jGMx&m6`&^*HIvj(_Mt8Oi0M=F0PDMgp9Gkq>V)MypL2 z5bm8@Dt0(M~f%Z z$iyl{ZqNwf2m?-;<7DJQOp5qSBGhRg8mIkq4mV8hR-iBW8e5W&uNpl|P}ALlzfY9Z7kH;6*DP z=paNn#k?B;!VdI1!mhV%0gC+-~sh;tP)f!y#PK74T@pxP1k`?@me{PNuJG!u*%PZLi?S#=(y z9dxKU=LJS|_coZ5-rxv$;d?*5=e%&%nfn@exs@?4TQ+?XazbEqQrA$7zrfTKVfuBdv!67#yZf{ zvD)m^N>s-@cxsA?zjuMZ`LB`tez;T$X+Vz35G7X3vx5F+zPybEzlBrTgQkQV>dRzv zG#$|zqxVkqd=_XI!5W2P3Ql;T`k8Oj@AeRrq&W-+5-(Ee?pQM0TWi0idG=Dvl)|>Rv=woP0M9 zgWSQ|Il3KKs3|V(my9L8tOidyUjE7b!5hI#J2K(puJg#)B8jNn#bX(G&A+3@P@x5^TU~=aah}VA)8uhO0NHO6&+KyW(eNB>IkUP zEGxx}wHdB7DF1?#o;7JH=7N6ab}W?MN%@ZjPi@oCPo!mt;ZrbJTVZ~;>Fo9^A~uB+ zOCBs_Vz5NDP+};#>LN;cfsSNFCg^7D9T(2L?0+!->*cLCF7>^C&e5$&a#AD>y|{B%^&`I^RI=s?ygV#uld9bHQbk56?9v^MCcB^rKtU*GlcW$H)u2KAT7#J(qW+asBia51{3Y3B^} z%LV(=wnuL1+7T8pw0F-ns_S7z!<-uzdQQKufBSH2aKPJ!!pl}Wjy)Z7vEg0eWzW~@ zXO$K2@rPre*U?L7GkhpJ>`QKU&aJZrM+UPiI@UT}TR$tDeQo`&D~g7_&#v3?G42Z= zXe;wE6cy@Kb@}&Cs5azSOuBK+;neoJdp~-XzP%r{u{-WgyR`E}9`d8i0{%Vb`3+wH^?5r!piz`b$8`^ST zHWpqNym@dT_QsJ1$E=-tZf`bu zSJvGO4p`e*IId&)t)zxIbs7C#x#StFB}%ugI`MqjGw1s+8(RIJOxyFmaI1d#t-hPv z5-NYYp+9LAEt71F7S-M!oz*MSOr?A-^Sg2%z%JgDI@P1}o7=MI9j)2>?2N3e=k#S+ z+zqD~X;MUfoh;t1X5NXMF$>~{mmbx0#nBLup%e7>)`>x3peeP3zf6Ix3x=TGpeg>p z(NWM`{r3om{XpL3+yvWcpt)p+E^E;Oob&*Gr`DDR3qafw04y3 - - - - - - - - - - - - - + + G diff --git a/crypto_monitor_gate/static/icons/manifest.webmanifest b/crypto_monitor_gate/static/icons/manifest.webmanifest index b2ffb73..8d8b774 100644 --- a/crypto_monitor_gate/static/icons/manifest.webmanifest +++ b/crypto_monitor_gate/static/icons/manifest.webmanifest @@ -1,11 +1,11 @@ { - "name": "交易监控复盘", - "short_name": "监控", - "description": "加密货币永续交易监控与复盘", + "name": "Gate 交易系统", + "short_name": "Gate 交易系统", + "description": "Gate 永续交易监控与复盘", "start_url": "/", "display": "standalone", "background_color": "#0b0d14", - "theme_color": "#0b0d14", + "theme_color": "#17E6A1", "icons": [ { "src": "/static/icons/icon-192.png", diff --git a/crypto_monitor_okx/app.py b/crypto_monitor_okx/app.py index fe63210..64708fe 100644 --- a/crypto_monitor_okx/app.py +++ b/crypto_monitor_okx/app.py @@ -6451,7 +6451,11 @@ def login(): return redirect("/") else: flash("账号或密码错误") - return render_template("login.html", exchange_display=EXCHANGE_DISPLAY_NAME) + return render_template( + "login.html", + exchange_display=EXCHANGE_DISPLAY_NAME, + pwa_app_name="OKX 交易系统", + ) @app.route("/logout") def logout(): diff --git a/crypto_monitor_okx/static/icons/apple-touch-icon.png b/crypto_monitor_okx/static/icons/apple-touch-icon.png index bd835ad75be5d5fe23ae62a783a6517351447cc8..82d1e827cf2c4b8d333a1d29784266a766e37647 100644 GIT binary patch literal 1032 zcmeAS@N?(olHy`uVBq!ia0vp^TR@nD4M^IaWiw)6U_S5Z;uunK>+RjMezzS&8ZOQZ zWR({4i2L~OeOOqS_EcV-1=`_yTz#@O_Hy$#yRMq`S z@^EU_>C^9@Yh*BT|M79;j=a&%A9du>y=Wn0+t~XWDOIzsebg}g|MP3Gq$uxUfqVDf z&+fO{CiB_mQKG~li@sBlCBEy|P_iB4k|c|N4CPiLIV{pHJ~y z8qd=8GbV8QKM$9U{OYxJf+s8&%{vsg*NoX&EETUPR^puC@+ma)O?B1# z%df7u)F~@v{pHEi@5M2nT|-{8e`Z^^R@yr@boPa7d|6*6dfhcTFvV=H_Z>T>r+twp zrdZs)q5EQKZThdRNnW$heV#D=TJQTe=Z}W<{cINcYN=k-`EpP6h3m_Szg>bEcGWwO-eTlZ=@7F_?cYerc{;C$t0y49cMUb}H99@#5@;qc?j z$1k0Kf9dsp_FYf!D)((oI+MK5Z0`52ou|?*m(~8dB+{Gvf7aDL z%jyf!i_1O<^8Njum32Hu<%MqG`NRKSO*JlE6l*o{)~7@I>1U2M-IMydb;rv8(+}ra z?mZz}d~rd3@2{XcEr)A0_Pd-p+War?icIjz8LL@za}?X<-p>hneDKo$ueoYk!qG=! nS%HG(l3Nb2^1!kp!;>%K|BuV=P`Ug3DM-xI)z4*}Q$iB}Zh`2i delta 1728 zcmV;x20!_T2+s|WBYy^#NklDt9Bo_>JoDjT838Zw_MJ}Oa(}i!K z?M?J9dJA25pXLU#=%!@R?hENIv?P#C2(d_Lpv2RKzhqkwk*S1Sa@42~A{TXD>8~ z$=x+0GNYvPTM-#0RqG`G(U*U|t;ca324HTBba>E~6$-@E$x>DN_@V=n*S z)sJa*{PNpVwK(SHeQx)-RV^Ru)y`E!6({j24$eMq$BTz|JNIuVh0xUi_Ya^;T97Md7s#h87chyPdYB=*l_{v%oB zNGxlpob~Sd8dE2F)9YedU(xWso*S$OeK(5^MqbsRLq6SJj|D!&x zL^7kVzucofvNO=ck1k@z$b*ZL7^R|d+DAj;S74_K%(4QBhOl8w#FdB^sUXBX_aWOi2=|<$TS)<5N246h=;l}s=KKe=IKp8SG`o7^L zWG8d?QtK3A!!oZYwN4=hDD(Q2TBi^YIS_`Eh<^;jNr2%b42`$(?MlDDdXvR)5_;m` z>2E7Z-M(X}Q;42qZd$3=Z-1wAWG6%pBF~8*cjHONGN*UJa1xnkGC6v5} zF+rq}d2;k9((XQ*cC6U49hrNPIdlq9p3FLhv2DXasYWx0Rhe}PA!dji*q+KPa*#O; zCx3y=hLcokG8;}pv6VT)P9c$_v#kP}&Q3IGWrv-U$eqKhtMifBa1x4p@@F0zMXqF6 zwu5CkokB9(#vr-lX=cObZs6QVn%HKHHCRbj%jg*B1#!Dr}trp$cx1pg52d* z<~rwBeGivc-+dDi5%+)jwNZoO`p-8llYf|D8-v!}wxLCnd@Hj~;UHz+WcALwG8<0H zK8trLU^y|v&Pm-1_w$d9#96n3cTv5|5Lx8d*sejT+e;;Upq^TQ?B{BFE6yq{*yPSj^5zUdwe6(9HvhEa~OH5{K&&6~K z$t-SokCii;zVNl}3uIyEq>W2`efLp_9Nu3AA_rhNX@j{s2G(qWw{?TzBqBqn5D+<_ zGK(A_w#WgI!@Z;&PfnCL=K1?sxoZW2!u`{#D5K)LJ(Wz zfXJazL*yVbL=J2vA3wa&DTKA>WJ14x_qq~0&~@Bc?3GR-bPCB0!%1;PdC>LV0W5#hDpW=4Xm9Jz%@5b|s8$Mg;rYCo})y9Rm+J$&pnWqa} zCPIG}uVz;4<_}VSfA(F7O^$gv$BAwy`g&vk&b`)uYdm?(dkHSZ6TpoNy{^>AlfGn* zO>W;zY$8WV+Zb%(&N-s|^E()+RBRF#B{Z>#T%^zhColj2000000000000000NXh?J WB2CB~Ct>&i0000)Gl)5&Bk+i}hU-r5eKi$*#(UftnNxwo>Ci diff --git a/crypto_monitor_okx/static/icons/icon-16.png b/crypto_monitor_okx/static/icons/icon-16.png index b3a4ee1ff49f1a22c8a11bf51e8b9d9cf1b3c226..5ea0f5422de454851d400bdebed62f036540ae4d 100644 GIT binary patch delta 78 zcmZ3)m@`4e!`RcsF{I*Fa)JaaGrvTk=b!)o|J%1Exw-Lt^_jA(A&EJnBk+i}hU-r5 heKi&5EM}!-urM&>unTlX-H~Si0#8>zmvv4FO#ql^9BBXm delta 132 zcmV-~0DJ#zq5+U3erZWWK~#9!V_+Bs^aVD2iqV1_lNuY?^Vo2wgLV0mzz<%)5c2@P=&zRzsPP14t{W7OSQk mwhatlK0Ie6E0jk8VE_Qp9VJb7#ObyG00006z?u&p8bva+8uKQkIZWS|EG%U`SsuzzwepI7W`;Wk**Rj;4kGC`>+iSbNsB~M-TbFS=dE}Bdorab>G zzO>n!6mHG<_1xmmVS_t+VrD)1l%ccr{r)@BQvbf`&Gb{&DD7AHo!hsANpLbff z&5v65?~T-ft+g{k8$#Uw-+%Xi^F5BuTmiQ)+D9`aA9YGN`{4PG>06>1y!G1q>|gwF z?rPXM^F-lKKMCI@C{j#y$q6jPf7Px7lxRt6#sk zeqz5<%sl>%10SB>`|e+=`EPms{CWG=|NY+nU%Ed7IZGI-^6gu<-_H_ zjEZ-@Pn~xudj2EE9>ExEEslr#)_sbJemgy{Jg!I8l;+I1g2Rxn5t5h7+utR6AS>a6_kZbC)=b<7ADGKFNbu}sU`c$y e2rmm5c07~+&fH+;SYrPcB9px;r2^jv{Uhf+4#syoBH;3va;W zCUO_Kg{-sJ+<*%=;v(4x%uW&z+=w`X5+OL{V!nFXp8l#jRi{q<{?ITz)jiWy{XFNq z=c#k5A^-pY000000000000000006+ysD|`m_io&-ePzSo{eQdH6$21FGB-p;^cb@l zD#FK@jZhIj#%zQM@ng)5U^3@@``6og8V50r!5cAx(~xS4pr3gDfUku*W=~An@O}fOJ#s*94tIP-1-1k4Zg68?(WY- zP4{7}$Kfchoqs*M8h<3~0TLSEqTtV;Z+;-Eo?Ff~#B=#RI1a1ccNBXk;{P*g3DkiB z>ZQ+zTYf0Ry4Z*RRQOzyE3Nd#+r)Wkfgbi1^1#F5hGbHtBz-}`#qWNv`Xgnv)`Ot6U&Qk^T9D0wjEl4#P+ znZ26$v84&>PRKJrJ_-M*EPk#R5 zcmF*2RSb%8ihtGbLkx=2#ovwz#Gn|k_}epq7=IK46@Po>kTC!t21STL%?1S{D1iVm zD7t6=$+LJH54U>HZYRaWpvX}Cr)+A1W@m)c>u09b$2P*B=WRTUoAG-h@ryx`vG~{Z z1nr4GhS~!tgGv{FTCs~kF#z!&KDa;V26SdY40aKJYT*~OAjW{0_{|0d@rywbjb>h^ zOn+AL6Ms=LC^KmJM_B?9Kk?_S9Wf~JXDWWPK{0yqn+=LlxBM~msSwH_XLrS*h;|l` zFK*i=79F1W#h}FB((8vQelaLUS@v|R9oGgm*bR%~LHuD+yfTRRjRB(7`P}u%1H_-F zeq0-r_+!ksNSY~uwij29A}UY(bxDij%YSNFb2EdMUkuutxE8l}Ewu8}p1On*Xc)Zu z@rSdY?>v6G@kykddk0ac>jEV`gPOA$wES7j21OsGQaLTZ*`UQ6qHVF3SN50-#V$e>+zbLY{#7p>M&_TBR^V|9`L)l4>7&MZ`p1=LFblZ!C-{09mjDKC2 zLCh%zZJhaU`uaPMpEeR_4yBTozw>K@mYMPI+FGAJAO;6T7=M)bAqH(}usc-oZ*$MDU0zT01HVh;;e-1tO;AFs zzbNYY`+$`#crj?B(niUn1j_IR8Rw6bCLsPObUi>C{S*;{UUrQhD1S04fohiofxATJ z$hMa_+4l7a*9FS`3K5HGe#9vx#L5vs_2EJlYD1XGD&>M(B0Wm0)KVncY zf)WT2gTla93<~9s7!(6H!p9G9i~)e`4DkNl>q;4fzRI8V`V)h~I6w&mh(RF+O<{m# zb=dJd?)u~b#188LR_mu}{eLe8h1sAEE{p*Zl|j-Vq)LC7=dJzn2)439y;?2Ra+{qC3_9Xt(@nv-MBb0~~+IS}BBR(_Om98#K~m#O-DH*PoT*Q7?}#+j+oo~#VemJv`6T?;>Q zSP#(GPJ{Tf=mGQwgdZ6!z03+mApB7qfEkFM0T_bd0RR910000000000000000IT>6 X=W%98v%82!00000NkvXXu0mjf4XahD diff --git a/crypto_monitor_okx/static/icons/icon-32.png b/crypto_monitor_okx/static/icons/icon-32.png index dc2186fecad6ff9a4f843361c6b029752d9abe6e..ea8a9a28efc1db7f46b8a2ceeaaff8e4019d0a96 100644 GIT binary patch delta 227 zcmV<90384E1O5S!BYyzJNkloi zN>WUyZnp2vmaUU>2E)Gtv>Pth+k0uv^KpmW4M>F77y*rVPQ6IDX*;nAkcg8oB8m*e z7$-(J6JC1lQt`R9T=~KhSx)_zkWMBwkyD(MLv;gd9^D*Heq3PreC&002ovPDHLkV1h~FU?2bh delta 472 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 literal 6059 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 - - - - - - - - - - - - - + + diff --git a/crypto_monitor_okx/static/icons/manifest.webmanifest b/crypto_monitor_okx/static/icons/manifest.webmanifest index b2ffb73..7d82187 100644 --- a/crypto_monitor_okx/static/icons/manifest.webmanifest +++ b/crypto_monitor_okx/static/icons/manifest.webmanifest @@ -1,11 +1,11 @@ { - "name": "交易监控复盘", - "short_name": "监控", - "description": "加密货币永续交易监控与复盘", + "name": "OKX 交易系统", + "short_name": "OKX 交易系统", + "description": "OKX 永续交易监控与复盘", "start_url": "/", "display": "standalone", "background_color": "#0b0d14", - "theme_color": "#0b0d14", + "theme_color": "#FFFFFF", "icons": [ { "src": "/static/icons/icon-192.png", diff --git a/docs/shortcut-icon.md b/docs/shortcut-icon.md index 693f635..ca869cf 100644 --- a/docs/shortcut-icon.md +++ b/docs/shortcut-icon.md @@ -9,13 +9,17 @@ 3. `link rel="icon"` / `favicon.ico` 4. 若都没有 → 灰色地球或网页标题首字 -本仓库已在 **中控** 与 **三所监控页** 配置统一品牌图标(深色圆角底 + 青绿趋势线 + 简化的 K 线),与页面 UI 一致.PNG/ICO 由 **Pillow** 生成,避免损坏的 favicon 出现花屏. +本仓库已在 **中控** 与 **三所监控页** 配置品牌图标.PNG/ICO 由 **Pillow** 生成. + +- **中控**:深色圆角底 + 青绿趋势线 + K 线,安装名「复盘系统中控」 +- **三所**:各所用交易所标识色与字标(币安菱形 / OKX 方块 / Gate G),安装名分别为「Binance 交易系统」「OKX 交易系统」「Gate 交易系统」 ## 文件位置 | 位置 | 访问路径 | |------|----------| -| 源稿 | `brand/icon.svg`,`brand/icons/*.png` | +| 源稿 | `brand/icon.svg`,`brand/icons/*.png`,`brand/icons/{binance,okx,gate}/` | +| Manifest | `brand/manifest.webmanifest`(中控),`brand/manifest.{binance,okx,gate}.webmanifest` | | 中控 | `manual_trading_hub/static/icons/` → `/assets/icons/...` | | 三所 | `crypto_monitor_*/static/icons/` → `/static/icons/...` | diff --git a/lib/instance/instance_embed_lib.py b/lib/instance/instance_embed_lib.py index 2577194..4f85483 100644 --- a/lib/instance/instance_embed_lib.py +++ b/lib/instance/instance_embed_lib.py @@ -179,10 +179,21 @@ def register_embed_routes( return jsonify({"ok": True, "page": tab, "html": html}) +def pwa_app_name(exchange_key: str) -> str: + """安装 App / 主屏幕显示名(各所独立标识).""" + ex = (exchange_key or "").strip().lower() + return { + "binance": "Binance 交易系统", + "okx": "OKX 交易系统", + "gate": "Gate 交易系统", + }.get(ex, "交易系统") + + def embed_context_extras(exchange_key: str) -> dict: return { "order_rule_tips_tpl": order_rule_tips_template(exchange_key), "include_transfer_block": include_transfer_block(exchange_key), "ui_open_guard_enabled": ui_open_guard_enabled(exchange_key), "ui_orphan_recovery_enabled": ui_orphan_recovery_enabled(exchange_key), + "pwa_app_name": pwa_app_name(exchange_key), } diff --git a/lib/instance/templates/embed_shell.html b/lib/instance/templates/embed_shell.html index 9d355b9..121598d 100644 --- a/lib/instance/templates/embed_shell.html +++ b/lib/instance/templates/embed_shell.html @@ -10,7 +10,7 @@ - {{ exchange_display }} · 加密货币 | 交易监控复盘系统 + {{ pwa_app_name }} - + - {{ exchange_display }} · 加密货币 | 交易监控复盘系统 + {{ pwa_app_name }} diff --git a/lib/instance/templates/login.html b/lib/instance/templates/login.html index 6e85d41..efbe399 100644 --- a/lib/instance/templates/login.html +++ b/lib/instance/templates/login.html @@ -4,7 +4,13 @@ - 登录 · {{ exchange_display }} + + + + + + + 登录 · {{ pwa_app_name }}