From e03cce20d6c3e1d477064dd300b7aa401f71ecd7 Mon Sep 17 00:00:00 2001 From: dekun Date: Thu, 4 Jun 2026 10:17:22 +0800 Subject: [PATCH] feat: add brand icons for Chrome shortcuts and PWA manifest Dark cyan-green candlestick icon for hub and four exchanges; generate/sync scripts and docs/shortcut-icon.md. Co-authored-by: Cursor --- README.md | 3 +- brand/icon.svg | 31 +++ brand/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes brand/icons/favicon.ico | Bin 0 -> 14540 bytes brand/icons/icon-16.png | Bin 0 -> 224 bytes brand/icons/icon-180.png | Bin 0 -> 3353 bytes brand/icons/icon-192.png | Bin 0 -> 3644 bytes brand/icons/icon-32.png | Bin 0 -> 538 bytes brand/icons/icon-512.png | Bin 0 -> 10988 bytes brand/icons/icon.svg | 31 +++ brand/manifest.exchange.webmanifest | 23 ++ brand/manifest.webmanifest | 23 ++ .../static/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes .../static/icons/favicon.ico | Bin 0 -> 14540 bytes .../static/icons/icon-16.png | Bin 0 -> 224 bytes .../static/icons/icon-192.png | Bin 0 -> 3644 bytes .../static/icons/icon-32.png | Bin 0 -> 538 bytes .../static/icons/icon-512.png | Bin 0 -> 10988 bytes crypto_monitor_binance/static/icons/icon.svg | 31 +++ .../static/icons/manifest.webmanifest | 23 ++ crypto_monitor_binance/templates/index.html | 6 + .../static/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes crypto_monitor_gate/static/icons/favicon.ico | Bin 0 -> 14540 bytes crypto_monitor_gate/static/icons/icon-16.png | Bin 0 -> 224 bytes crypto_monitor_gate/static/icons/icon-192.png | Bin 0 -> 3644 bytes crypto_monitor_gate/static/icons/icon-32.png | Bin 0 -> 538 bytes crypto_monitor_gate/static/icons/icon-512.png | Bin 0 -> 10988 bytes crypto_monitor_gate/static/icons/icon.svg | 31 +++ .../static/icons/manifest.webmanifest | 23 ++ crypto_monitor_gate/templates/index.html | 6 + .../static/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes .../static/icons/favicon.ico | Bin 0 -> 14540 bytes .../static/icons/icon-16.png | Bin 0 -> 224 bytes .../static/icons/icon-192.png | Bin 0 -> 3644 bytes .../static/icons/icon-32.png | Bin 0 -> 538 bytes .../static/icons/icon-512.png | Bin 0 -> 10988 bytes crypto_monitor_gate_bot/static/icons/icon.svg | 31 +++ .../static/icons/manifest.webmanifest | 23 ++ crypto_monitor_gate_bot/templates/index.html | 6 + .../static/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes crypto_monitor_okx/static/icons/favicon.ico | Bin 0 -> 14540 bytes crypto_monitor_okx/static/icons/icon-16.png | Bin 0 -> 224 bytes crypto_monitor_okx/static/icons/icon-192.png | Bin 0 -> 3644 bytes crypto_monitor_okx/static/icons/icon-32.png | Bin 0 -> 538 bytes crypto_monitor_okx/static/icons/icon-512.png | Bin 0 -> 10988 bytes crypto_monitor_okx/static/icons/icon.svg | 31 +++ .../static/icons/manifest.webmanifest | 23 ++ crypto_monitor_okx/templates/index.html | 6 + docs/shortcut-icon.md | 41 ++++ .../static/icons/apple-touch-icon.png | Bin 0 -> 3353 bytes manual_trading_hub/static/icons/favicon.ico | Bin 0 -> 14540 bytes manual_trading_hub/static/icons/icon-16.png | Bin 0 -> 224 bytes manual_trading_hub/static/icons/icon-192.png | Bin 0 -> 3644 bytes manual_trading_hub/static/icons/icon-32.png | Bin 0 -> 538 bytes manual_trading_hub/static/icons/icon-512.png | Bin 0 -> 10988 bytes manual_trading_hub/static/icons/icon.svg | 31 +++ .../static/icons/manifest.webmanifest | 23 ++ manual_trading_hub/static/index.html | 6 + manual_trading_hub/static/login.html | 6 + manual_trading_hub/使用说明.md | 2 + scripts/generate_brand_icons.py | 214 ++++++++++++++++++ scripts/sync_brand_icons.py | 64 ++++++ 62 files changed, 737 insertions(+), 1 deletion(-) create mode 100644 brand/icon.svg create mode 100644 brand/icons/apple-touch-icon.png create mode 100644 brand/icons/favicon.ico create mode 100644 brand/icons/icon-16.png create mode 100644 brand/icons/icon-180.png create mode 100644 brand/icons/icon-192.png create mode 100644 brand/icons/icon-32.png create mode 100644 brand/icons/icon-512.png create mode 100644 brand/icons/icon.svg create mode 100644 brand/manifest.exchange.webmanifest create mode 100644 brand/manifest.webmanifest create mode 100644 crypto_monitor_binance/static/icons/apple-touch-icon.png create mode 100644 crypto_monitor_binance/static/icons/favicon.ico create mode 100644 crypto_monitor_binance/static/icons/icon-16.png create mode 100644 crypto_monitor_binance/static/icons/icon-192.png create mode 100644 crypto_monitor_binance/static/icons/icon-32.png create mode 100644 crypto_monitor_binance/static/icons/icon-512.png create mode 100644 crypto_monitor_binance/static/icons/icon.svg create mode 100644 crypto_monitor_binance/static/icons/manifest.webmanifest create mode 100644 crypto_monitor_gate/static/icons/apple-touch-icon.png create mode 100644 crypto_monitor_gate/static/icons/favicon.ico create mode 100644 crypto_monitor_gate/static/icons/icon-16.png create mode 100644 crypto_monitor_gate/static/icons/icon-192.png create mode 100644 crypto_monitor_gate/static/icons/icon-32.png create mode 100644 crypto_monitor_gate/static/icons/icon-512.png create mode 100644 crypto_monitor_gate/static/icons/icon.svg create mode 100644 crypto_monitor_gate/static/icons/manifest.webmanifest create mode 100644 crypto_monitor_gate_bot/static/icons/apple-touch-icon.png create mode 100644 crypto_monitor_gate_bot/static/icons/favicon.ico create mode 100644 crypto_monitor_gate_bot/static/icons/icon-16.png create mode 100644 crypto_monitor_gate_bot/static/icons/icon-192.png create mode 100644 crypto_monitor_gate_bot/static/icons/icon-32.png create mode 100644 crypto_monitor_gate_bot/static/icons/icon-512.png create mode 100644 crypto_monitor_gate_bot/static/icons/icon.svg create mode 100644 crypto_monitor_gate_bot/static/icons/manifest.webmanifest create mode 100644 crypto_monitor_okx/static/icons/apple-touch-icon.png create mode 100644 crypto_monitor_okx/static/icons/favicon.ico create mode 100644 crypto_monitor_okx/static/icons/icon-16.png create mode 100644 crypto_monitor_okx/static/icons/icon-192.png create mode 100644 crypto_monitor_okx/static/icons/icon-32.png create mode 100644 crypto_monitor_okx/static/icons/icon-512.png create mode 100644 crypto_monitor_okx/static/icons/icon.svg create mode 100644 crypto_monitor_okx/static/icons/manifest.webmanifest create mode 100644 docs/shortcut-icon.md create mode 100644 manual_trading_hub/static/icons/apple-touch-icon.png create mode 100644 manual_trading_hub/static/icons/favicon.ico create mode 100644 manual_trading_hub/static/icons/icon-16.png create mode 100644 manual_trading_hub/static/icons/icon-192.png create mode 100644 manual_trading_hub/static/icons/icon-32.png create mode 100644 manual_trading_hub/static/icons/icon-512.png create mode 100644 manual_trading_hub/static/icons/icon.svg create mode 100644 manual_trading_hub/static/icons/manifest.webmanifest create mode 100644 scripts/generate_brand_icons.py create mode 100644 scripts/sync_brand_icons.py diff --git a/README.md b/README.md index 3276f2b..c45b0ca 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ cd crypto_monitor 四所 `.env` 同步脚本(计仓 + 自动划转):见 **[docs/env-sync-scripts.md](./docs/env-sync-scripts.md)**。 计仓模式(以损定仓 / 全仓杠杆):见 **[docs/position-sizing-mode.md](./docs/position-sizing-mode.md)**。 -每日自动划转(双向归集至目标 U):见 **[docs/auto-transfer-daily.md](./docs/auto-transfer-daily.md)**。 +每日自动划转(双向归集至目标 U):见 **[docs/auto-transfer-daily.md](./docs/auto-transfer-daily.md)**。 +Chrome 快捷方式图标:见 **[docs/shortcut-icon.md](./docs/shortcut-icon.md)**。 --- diff --git a/brand/icon.svg b/brand/icon.svg new file mode 100644 index 0000000..3813302 --- /dev/null +++ b/brand/icon.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/icons/apple-touch-icon.png b/brand/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b498f87a73b27b62bb5a9c6d38e24677550792 GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/brand/icons/favicon.ico b/brand/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee96d170ddb6786c543b3fcf6e675b7501643e40 GIT binary patch literal 14540 zcmeHOZEq7t5ZM%(2xD%Ujif`5`~l=M4<{TZz_nQ zR&CXO^pEg=nLf|l&3S#^yIa4+a$8%P?B3q(&NH)fv$L}o=RR^DyH?AgY`LqSIQOM< zgX>S7`xb5a{T1iF`^>qoJF95rZxw`x&^H|cg>%_Gt^Y^<^b@%Xx&ms0#+K@aH-PIW zb^XOj;`;IcbniC0-jH_FhN$e@?FhlK|IT0l5e(6<>L~YI&!IE<;^CyxXH^>Dt5nt( z%sR5;1W<)zuvbH*2^Ep4c2DGXkT`+(b*1IIDIi9D5|_Ll^rhx-!GA>?c}`fcsC z2YxA56`TF3hN_>uz@vxCzAsNu?twC`rTwdV5AOM63|f~pUjy(MbQAc|W3)hDf#`Ge zm)%P*mVXyP1N1teYan{QH4weuWe`2!D(C`e1#}K{7IX&mIp`#4Y7sETEzn#sz}vzF z+@Z(4Wu9-sa%?@M-hK=GQw$UGHIHp`5j78~+k0qzXHl9xMDpLA1y6qrv&l&QdwyT7 zk2H)iAuH0>mm*@N=eqMf2tO>G*=ox&U3dMK__|!cI*K>bx!}T^>tr8GBmp=q_YFy= zVVU<`h3s?;5wahUHKPpIZc_eEQ@XhZ@=8APka|XxVQ$HUlRJoLhJVV849QER%W8V* z8VMsOpF<2=xr`Cu4ShW$66(noh|v%*AcE;3QZZgBzi!85My#c5wcVF_M8Nc>`QTy6 zyeoN_MPpkUkqI&6f;Xhokgi5&sp!twkiXA9ugeU@u=WHqMUQJtEO zeg4*l($@MAYxfTGOYV%gtKJPV=MG>9n8(E0i6LvYH9pAK8s$BhzZ=YTC5T$?@OI$O z$FS0Clu>8j@&WvTVOqY${@md()G;}$N@6JXpY|I50sPB%Sw0^5?Fjg5xKp!GWgz5t z%)yK?z*lR?<;z)BpCtzPC=L6n_=WBn2D3@N7pZGNnfXNd5q0ive*kf%-3M8;!JY0d z2)o_T_~W!qf?=HTm(Tt`HGqr(vW@&PW3UGL29#$EvU_M+{+1e;i3TkES;u;4>5eZ@ zzXY<6j`d-3{z^)0iib zo50NQkJv3TJj(JI0=_BcVH0a6YX_r(cT1|A?{TBH=#?{PeAn`1ckGJMHHb@N0^^{v43&!Q(~4 ze;W9?#zp8~_Zy3b{|xYRosPi&6t@2)7XQ4QtDHr~0{Q*AjKw}OHWZ+ku_?>Y)O&7! z6`H(m5mQ~TW4qQOuCk2XRNRCPJCNY+z#-wY<3Z1wf2fnhp#WfzKf?favvG(O%P8sAVVS> zJX!e(fS;Rv<0}w@%hQz%_6@w2fYXa1Z&M4dgqjW|J~e=fdXGLXUE zhhCkp8^RCCierZQm)QtUzTSFvT{eFu?bK^ZIFT!P##f`(tqV(@SXT8LoY0O+FoRPw zVz1;M!Zw6Iq-?awIz~pKt-@}8f!g2O8dEY%h<)CMx0CD9BwZ_QKK&?ay)qX00K1_8 z<_~jF6QP-G4nnN1K_~pAtIp5JuK<4pCyuekq_!UrK(51Xkm#(i8+{RYQb-wM`OWJ& z%Xp5yt-~#L$~P}uv3x9RJB)VpO8$WUabg=g?!2B$KP$}KSb%?-eH!D zA_M=W!^bsFoifmt=KVg{mm=7UPK@2;^kuO1!PaU0l0+ju$jC2R7!!I&Pq$>5hqDTB{vSzl^ksex(@`~w@hs{a50 literal 0 HcmV?d00001 diff --git a/brand/icons/icon-16.png b/brand/icons/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..28404502e9a4198494577422ae81a9186c2e15cb GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%ROBjLn>~)ov=}`*?`B@v{^f? zV4@PQYg&Sc+rkAN6Ay`K1{rWVXH1{3KT{>7W6RDL@0x3#e{T`^dA-hdK~cKev(>XW za~?_;r@FDR9(P-=*1VmwdG7okbH^Nq>&br^{MZT~-$~{bt#Z70A<5vl6PwP5i=hF# zd8Tif*jaG>`q|nYYSqh2*Q(Uacq~(yqg{CXcRAm-4w2fA%PUrE{kYJQ>ik@}O@58~ Y3iAbL?e1Q=3v@Drr>mdKI;Vst07?8>?f?J) literal 0 HcmV?d00001 diff --git a/brand/icons/icon-180.png b/brand/icons/icon-180.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b498f87a73b27b62bb5a9c6d38e24677550792 GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/brand/icons/icon-192.png b/brand/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a9171b0b7ae1e13dafc87eec14cc130e29ba53 GIT binary patch literal 3644 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 b{7V%zC>q{)=Ik%wtq_oQ?Qv|d4^00L78#Y> literal 0 HcmV?d00001 diff --git a/brand/icons/icon-32.png b/brand/icons/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0c5cf083d0c7a381d560a1a10c3d43105f12fa GIT binary patch literal 538 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/manifest.exchange.webmanifest b/brand/manifest.exchange.webmanifest new file mode 100644 index 0000000..80d2b68 --- /dev/null +++ b/brand/manifest.exchange.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "交易监控复盘", + "short_name": "监控", + "description": "加密货币永续交易监控与复盘", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0d14", + "theme_color": "#0b0d14", + "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.webmanifest b/brand/manifest.webmanifest new file mode 100644 index 0000000..a55c73f --- /dev/null +++ b/brand/manifest.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "复盘系统中控", + "short_name": "中控", + "description": "四所交易监控与行情中控", + "start_url": "/monitor", + "display": "standalone", + "background_color": "#0b0e18", + "theme_color": "#0b0e18", + "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/static/icons/apple-touch-icon.png b/crypto_monitor_binance/static/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b6b498f87a73b27b62bb5a9c6d38e24677550792 GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/crypto_monitor_binance/static/icons/favicon.ico b/crypto_monitor_binance/static/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee96d170ddb6786c543b3fcf6e675b7501643e40 GIT binary patch literal 14540 zcmeHOZEq7t5ZM%(2xD%Ujif`5`~l=M4<{TZz_nQ zR&CXO^pEg=nLf|l&3S#^yIa4+a$8%P?B3q(&NH)fv$L}o=RR^DyH?AgY`LqSIQOM< zgX>S7`xb5a{T1iF`^>qoJF95rZxw`x&^H|cg>%_Gt^Y^<^b@%Xx&ms0#+K@aH-PIW zb^XOj;`;IcbniC0-jH_FhN$e@?FhlK|IT0l5e(6<>L~YI&!IE<;^CyxXH^>Dt5nt( z%sR5;1W<)zuvbH*2^Ep4c2DGXkT`+(b*1IIDIi9D5|_Ll^rhx-!GA>?c}`fcsC z2YxA56`TF3hN_>uz@vxCzAsNu?twC`rTwdV5AOM63|f~pUjy(MbQAc|W3)hDf#`Ge zm)%P*mVXyP1N1teYan{QH4weuWe`2!D(C`e1#}K{7IX&mIp`#4Y7sETEzn#sz}vzF z+@Z(4Wu9-sa%?@M-hK=GQw$UGHIHp`5j78~+k0qzXHl9xMDpLA1y6qrv&l&QdwyT7 zk2H)iAuH0>mm*@N=eqMf2tO>G*=ox&U3dMK__|!cI*K>bx!}T^>tr8GBmp=q_YFy= zVVU<`h3s?;5wahUHKPpIZc_eEQ@XhZ@=8APka|XxVQ$HUlRJoLhJVV849QER%W8V* z8VMsOpF<2=xr`Cu4ShW$66(noh|v%*AcE;3QZZgBzi!85My#c5wcVF_M8Nc>`QTy6 zyeoN_MPpkUkqI&6f;Xhokgi5&sp!twkiXA9ugeU@u=WHqMUQJtEO zeg4*l($@MAYxfTGOYV%gtKJPV=MG>9n8(E0i6LvYH9pAK8s$BhzZ=YTC5T$?@OI$O z$FS0Clu>8j@&WvTVOqY${@md()G;}$N@6JXpY|I50sPB%Sw0^5?Fjg5xKp!GWgz5t z%)yK?z*lR?<;z)BpCtzPC=L6n_=WBn2D3@N7pZGNnfXNd5q0ive*kf%-3M8;!JY0d z2)o_T_~W!qf?=HTm(Tt`HGqr(vW@&PW3UGL29#$EvU_M+{+1e;i3TkES;u;4>5eZ@ zzXY<6j`d-3{z^)0iib zo50NQkJv3TJj(JI0=_BcVH0a6YX_r(cT1|A?{TBH=#?{PeAn`1ckGJMHHb@N0^^{v43&!Q(~4 ze;W9?#zp8~_Zy3b{|xYRosPi&6t@2)7XQ4QtDHr~0{Q*AjKw}OHWZ+ku_?>Y)O&7! z6`H(m5mQ~TW4qQOuCk2XRNRCPJCNY+z#-wY<3Z1wf2fnhp#WfzKf?favvG(O%P8sAVVS> zJX!e(fS;Rv<0}w@%hQz%_6@w2fYXa1Z&M4dgqjW|J~e=fdXGLXUE zhhCkp8^RCCierZQm)QtUzTSFvT{eFu?bK^ZIFT!P##f`(tqV(@SXT8LoY0O+FoRPw zVz1;M!Zw6Iq-?awIz~pKt-@}8f!g2O8dEY%h<)CMx0CD9BwZ_QKK&?ay)qX00K1_8 z<_~jF6QP-G4nnN1K_~pAtIp5JuK<4pCyuekq_!UrK(51Xkm#(i8+{RYQb-wM`OWJ& z%Xp5yt-~#L$~P}uv3x9RJB)VpO8$WUabg=g?!2B$KP$}KSb%?-eH!D zA_M=W!^bsFoifmt=KVg{mm=7UPK@2;^kuO1!PaU0l0+ju$jC2R7!!I&Pq$>5hqDTB{vSzl^ksex(@`~w@hs{a50 literal 0 HcmV?d00001 diff --git a/crypto_monitor_binance/static/icons/icon-16.png b/crypto_monitor_binance/static/icons/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..28404502e9a4198494577422ae81a9186c2e15cb GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%ROBjLn>~)ov=}`*?`B@v{^f? zV4@PQYg&Sc+rkAN6Ay`K1{rWVXH1{3KT{>7W6RDL@0x3#e{T`^dA-hdK~cKev(>XW za~?_;r@FDR9(P-=*1VmwdG7okbH^Nq>&br^{MZT~-$~{bt#Z70A<5vl6PwP5i=hF# zd8Tif*jaG>`q|nYYSqh2*Q(Uacq~(yqg{CXcRAm-4w2fA%PUrE{kYJQ>ik@}O@58~ Y3iAbL?e1Q=3v@Drr>mdKI;Vst07?8>?f?J) literal 0 HcmV?d00001 diff --git a/crypto_monitor_binance/static/icons/icon-192.png b/crypto_monitor_binance/static/icons/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b0a9171b0b7ae1e13dafc87eec14cc130e29ba53 GIT binary patch literal 3644 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 b{7V%zC>q{)=Ik%wtq_oQ?Qv|d4^00L78#Y> literal 0 HcmV?d00001 diff --git a/crypto_monitor_binance/static/icons/icon-32.png b/crypto_monitor_binance/static/icons/icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..ef0c5cf083d0c7a381d560a1a10c3d43105f12fa GIT binary patch literal 538 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/crypto_monitor_binance/static/icons/manifest.webmanifest b/crypto_monitor_binance/static/icons/manifest.webmanifest new file mode 100644 index 0000000..b2ffb73 --- /dev/null +++ b/crypto_monitor_binance/static/icons/manifest.webmanifest @@ -0,0 +1,23 @@ +{ + "name": "交易监控复盘", + "short_name": "监控", + "description": "加密货币永续交易监控与复盘", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0d14", + "theme_color": "#0b0d14", + "icons": [ + { + "src": "/static/icons/icon-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any" + }, + { + "src": "/static/icons/icon-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} diff --git a/crypto_monitor_binance/templates/index.html b/crypto_monitor_binance/templates/index.html index ee032f4..26f6b41 100644 --- a/crypto_monitor_binance/templates/index.html +++ b/crypto_monitor_binance/templates/index.html @@ -2,6 +2,12 @@ + + + + + + {{ exchange_display }} · 加密货币 | 交易监控复盘系统