From f58eda042194c88f5bb00f12fdf3870be940d0c2 Mon Sep 17 00:00:00 2001 From: "marcinlei@outlook.com" <1750818448@qq.com> Date: Sun, 24 Aug 2025 22:37:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=B7=BB=E5=8A=A0favicon)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oneketdiag.spec => onekeydiag.spec | 111 ++++++++++++-------- resource/favicon.ico | Bin 0 -> 15086 bytes resource/favicon/android-chrome-192x192.png | Bin 0 -> 5703 bytes resource/favicon/android-chrome-512x512.png | Bin 0 -> 16973 bytes resource/favicon/apple-touch-icon.png | Bin 0 -> 5344 bytes resource/favicon/favicon-16x16.png | Bin 0 -> 451 bytes resource/favicon/favicon-32x32.png | Bin 0 -> 965 bytes resource/favicon/favicon-48x48.png | Bin 0 -> 1466 bytes resource/favicon/site.webmanifest | 19 ++++ src/main.py | 17 +++ src/service.py | 12 ++- src/timelineEvent.py | 7 +- 12 files changed, 118 insertions(+), 48 deletions(-) rename oneketdiag.spec => onekeydiag.spec (65%) create mode 100644 resource/favicon.ico create mode 100644 resource/favicon/android-chrome-192x192.png create mode 100644 resource/favicon/android-chrome-512x512.png create mode 100644 resource/favicon/apple-touch-icon.png create mode 100644 resource/favicon/favicon-16x16.png create mode 100644 resource/favicon/favicon-32x32.png create mode 100644 resource/favicon/favicon-48x48.png create mode 100644 resource/favicon/site.webmanifest diff --git a/oneketdiag.spec b/onekeydiag.spec similarity index 65% rename from oneketdiag.spec rename to onekeydiag.spec index 6bc1b42..c8eda5c 100644 --- a/oneketdiag.spec +++ b/onekeydiag.spec @@ -1,47 +1,66 @@ -# -*- mode: python ; coding: utf-8 -*- - -block_cipher = None - -# 定义所有需要打包的文件和依赖 -a = Analysis( - ['./src/main.py'], # 程序入口文件 - pathex=['./'], # 工程根目录(确保能找到子模块) - binaries=[], - # 配置资源文件(子模块会自动识别,主要配置非.py文件) - datas=[ - # 若有其他资源(如.ui文件、图片等),按此格式添加 - ], - # 隐藏依赖(若打包后提示缺少模块,添加在这里) - hiddenimports=[ - ], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], # 排除不需要的模块(减小体积) - noarchive=False, - cipher=block_cipher, -) - -pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) - -exe = EXE( - pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - name='OneKeyDiag', # 生成的EXE文件名 - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, # 启用压缩(推荐) - upx_exclude=[], - runtime_tmpdir=None, - console=False, # 隐藏控制台(GUI程序) - disable_windowed_traceback=False, - argv_emulation=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None, -) +# -*- mode: python ; coding: utf-8 -*- +import os +import sys +from PyInstaller.utils.hooks import collect_data_files + +block_cipher = None +# 获取spec文件所在目录(项目根目录) +spec_dir = os.path.dirname(os.path.abspath(sys.argv[0])) + +# 定义需要打包的资源文件 +resource_files = [ + # 将resource文件夹下的所有文件打包到程序内的resource目录 + (os.path.join(spec_dir, 'resource'), 'resource') +] + +# 收集PyQt相关的数据文件 +qt_data = collect_data_files('PyQt5') + +# 合并所有资源文件 +all_resources = resource_files + qt_data + +# 定义所有需要打包的文件和依赖 +a = Analysis( + ['./src/main.py'], # 程序入口文件 + pathex=['./'], # 工程根目录(确保能找到子模块) + binaries=[], + # 配置资源文件(子模块会自动识别,主要配置非.py文件) + datas=[ + # 若有其他资源(如.ui文件、图片等),按此格式添加 + ], + # 隐藏依赖(若打包后提示缺少模块,添加在这里) + hiddenimports=[ + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], # 排除不需要的模块(减小体积) + noarchive=False, + cipher=block_cipher, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + name='OneKeyDiag', # 生成的EXE文件名 + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, # 启用压缩(推荐) + upx_exclude=[], + runtime_tmpdir=None, + console=False, # 隐藏控制台(GUI程序) + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, + # 指定程序图标(使用resources文件夹中的ico文件) + icon=os.path.join(spec_dir, 'resource','favicon.ico'), +) \ No newline at end of file diff --git a/resource/favicon.ico b/resource/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c83210e80c9d93d86f0c98aab111b9338111ed7b GIT binary patch literal 15086 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 E0LcG*l>h($ literal 0 HcmV?d00001 diff --git a/resource/favicon/android-chrome-512x512.png b/resource/favicon/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..259efe42ae56deb02419f2cb3e433db6c7dad46d GIT binary patch literal 16973 zcmd^nbySqm*X}z*NJ*zKq=ZPTfI}(+LrF=A(uzR~i1bK_fJ29hGy)<5l1fS{N(u-_ zcX!8d&!E5W-fyjY*ZuddbzRiF@5z16*=O%(Kid~NTIjQ6=g1%kI;*CN(t{v4_!AD1 z5QAS^PkRo)FH$GfTP_ep*@*v!#a*Oig&9KM(vmVUsapRf z3?_ucKa`u{+Tx?qK9j`<2>bkuKFaM}x8LTahIxqgG7*#VoRH8EO_onaBwSoxZ_o2z zJ={f~YgK<7o#Z0FyF2vzaC<|Uo#TxQ@A=u9nv_Es&D0#P>FAlNSVXo9GIT-#e`Jx6?J=|xC-L{_TbUfUvp$Q}x{V97Oy@GZVxN0bus?Wr-z zmlj7YriwW_nkLHlXV&YikC{adP^hAad#MDqq+|8ks7#*WFie@bERzp6_d=#MOXmvt z40wz(?aC#2uo?7toS!>gXI_WU3P(PLf9}KZLz&a2R!rmwg`yWJGA6WIA)mm%h@#a1 zFKVbUVG1-f%4Q#8F^PNJ6>D@fx+N^tB+N)zCSPvuXqz5xi*KC}lOH#?-g6oa%sAWy z^uTSvl1swOCs5av5)#sLKbF=aB=WS31SL-_G);gX1$TztXA%Kcim?gMS#$OyQXL8U z)ACl&LwOZHE1s4Qm3totWz|D>j$VWaJjvCE$CB0ufi_*!uG3IcK~C$SonzGmXdQl9 z)s^=a97TRwv-_<+DfPwEiXlkVSSadmi8<9S5ty#%-{)A-*SwtXiB4yzyPIwRPd9`r z_ULG6g80ty*0IeqadLBWZ=>$P>oUOn(nnrw(Q{7xD?W<)M2IT+JA#E2)i_KD10;e& zp-|&AFKDU%^(IhNZwi0P0MXDy1=q{N#=3wgb?*kckWu&j9ge`KdINa-(HG=@{c_YX?{UwiflFMhhnWw@wQG-#U6q=IHb4oCk%m!oZa^PI}z?H+cso%q^Iq8{->S6>u=#sa77dEh%gB;TP;`CwF%+BM}6h+p(t;g^Jqk zit6o(;MhI+ zQ+*5h-*Mir-{J|qrqK)QSsB8#-ngjq`5{p@AqrKUdIR=AXn+gxtX}9sHl%iyh*{!L zmXH8;d1drP=*u6vpxmRf0s{YQ^C2iyt3>tV@5c5cytVt~3{IJu8ZD^;4;4fP?D2?u2N)|EbwhdraCnwA__LU{8d?#jfa$C>!oL54(i%O9SAB7L z20PHC^yM#zJCtRR0TZvT1?4zO1T$E!1Qb|LT^)_XUPtvf4l+RCxdPbq@9u1C zBt72DC~W3c1#K-{S|-C33^!@Oa!1MTCk1?_stS%h8t>K(2{}Mjg2CrsneL_$AkL&X z7mR;bm3v?pos5w%{{iO&4E80;z9TH z5_05Vy!5b1kqS!w(JjtZCPh?m>OGi~0Y@xWQT)-jrA@Kpch8OCA*vppjF|R|@WQk%zY+{L%3m>J|rYs?W|1Cul91WT-ni63s zzqE=LliqMw()vJ~U8OmM6fXkGE>K>oPaVzq(s+q7$@4H}O!a#tm=dAlB)rqmTp01} zGF?h?5R1a0Ulkgnx$spGp{OpT1$nPXRxAj185#wZ1wR5Uq*v!s0>$;zgBc4$}yL6uDM+v<~0K7r=*OKZ6h<(R%0Da#_F! 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 O|J0PVP#>>b`2P=85qb^) literal 0 HcmV?d00001 diff --git a/resource/favicon/apple-touch-icon.png b/resource/favicon/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d448a5782241c61a55cd7ea596d8f176397b6868 GIT binary patch literal 5344 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 Ms-DUhuub@X0phwn1^@s6 literal 0 HcmV?d00001 diff --git a/resource/favicon/favicon-16x16.png b/resource/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8af6bdaefd5b69f73816cae44250760e53dd62 GIT binary patch literal 451 zcmV;!0X+VRP)LlT9c@Q5c4wJ2Q7&e-lkpLNwW6VWF|m6w0ioq!h`L zVqq~B7DBSH5*xBovYNz7O;#v>$xk-YWZ|!vi4kfV%-_8h<6drA%$Rp|I^TJpzVAKf z2z+a$vqm99b+7pa;lE~8LN;aqLpEj|z#y72nx%{ZCUsHX;G%J8hPS&*Oi~`Nw|0Q95R67`udvjP zrPR*dz7K%M^FvDNoPPrpSq7k>q=LxPy{;C24+CHnb3jq_0E0>V2}U$iKxI=K52xF}uWOVnRsdQimdGu#@#H_@(zmQZ4`w~o_l{B9F~G-Lh~tIP t)TruHHi%|W6fJ{vrFEdDpQ*C`jbB8Yc=o&Z-68-0002ovPDHLkV1mrW!$|-D literal 0 HcmV?d00001 diff --git a/resource/favicon/favicon-32x32.png b/resource/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..8877a0e5d247cc07c513da33d3a312c18267c3fa GIT binary patch literal 965 zcmV;$13LVPP)f!Kskjnp(+9BH4sUv5;R~0JnD&Tc3GL6IjUS z$i!xeOa{1c`~#vtom&}zv=~-xC7mK1^dl$Z*j(+j_Vm*=xRbR5!vx-anW%uIkpvZ(y9%0k&r|@hZqR#F_PR0SSwY1Z7&mKDZw_|H= zBNLk?{KGhtpT9?9`e$7LO$Cbizec?t06;kCFTHFu;qq<-z~$Y@@PSXc@y^`{CNtCi zF|v}#^|#)~j(s1oX3K5=5TI<@mBW-vy7H@PH?CPvo!!aclW$;YY-aYt_k8)pU3~NA z(~RxiMex``Ocooy(f!o7b}S800aFE_yfWqn2i`j##MazOu~6XKLoZZ3KmW-gGVwXg zwg$Yz4=fKLpObal1(UhL@AT~eO0#D1zb+Q?L?#0Oc>0Ex2S8DOo3J>VRa;3(G_-Y= z04`4G#%H1t0P5YIWdc-@bDdYU6PKq{&}xGg;m>1-PKW*#Ku6y;ptL;Ch0ZcRcLk`d zOa*Y~4FDv6zqB-fK`{Ppa%+>D?rrx1FcUb9oQ(6^cV7XhQ?gw4>(=4!*$lw6e{5+0 zqs3Y^xx>@V(B5}2*W1Y}GUtxI4nXMS5tMWaho_76w~wgtCR+o((ftTU6X|G}(1{N< z-_&l$cBg8u9T=wG?V*rUaCo|D+0ctY5XdVs<8MEwj`;b=4C4o%W#F*`YGWtA8Mor5LglThXNDs`;6) n<^ca+Os7J6e7O@k=*;hV^D#J7a$~E zP-bL9s*H!jVuHgm4u{1Ak8}D_<`x!+0+I?!kzc)+^=6md2D`}s^POJkTbeQ4dImnP zXTg(X15tp@IKp|eNEQu|ObdlZi_{G-z%oZ3*t`P*kr)6Vj#i-b{Ui8u z-;PHzoQM^0+AKjfk3DgE)jdP6vbgyk5Acr-%(1d)hH_?HrPe$^ZcJ zgjA@sxiAfM1^J5Qu~@ZrH#BRvK#{TvLTMCSwn>=p_Tj(w3+O-lOUNM{3gim7m;%_6 zr*P-u?+l)_W^<5F%KGO~(Qq31RkeuES_5&k0(^lG5`_xt+#)>v+CEe?oJLCV*02N+ zE8z1mCtx@N3^!XDT&c}w@SL4{7|)hz^L^ZI{u$O$J)+{1kX~8=WqKAwQF3hBUyqKT z4x{JP5Azh@^D?;C>-v=d{J_d-7ACNzp}P5)_Ix1lL|`7@xsaq z;SV9I*8#vaH3>V2_-Vlc4R6wgHKNwiM|UbfXAcPZwe#V&H-RnLKc@0)Wd;TnOn%uGU=0$8tnIHOTAfUD^H3km`d$FQXorrr3q)e5w7INpX}9cT@Zqaxh`vMtLTMCx z#W-P+@QbIM01B_95)*4X9Se*LSjKlP|Oui7GV9m zhiLAavf}E|kBG?wEHAcVG+J!?>JQeNL&0Vk#_11s2X7MqY})@dQi`7g;9r*Yx+eOe zwKBI58Kp1LtC-tiM@#*FjI{kTKLMJx&!F_ckvSzl+Mz@1H+8U&j}d+HDr=Cla}Q&= z4TSC92y};QVCuig8I!mhjnQOq-t3s1fZb%k{agP+-_i_2=M~O-ZZy_o@WLr%mhVEs z>h+K(ra>T