From 58ca1600506b6378da094074e036c63cc3ec73d5 Mon Sep 17 00:00:00 2001 From: punix Date: Sat, 14 Jun 2025 22:16:15 +0200 Subject: [PATCH] Installer divided into several modules and added new MessageDialog module --- Changelog | 15 +- ensure_modules.py | 68 ++ lx-icons/128/error.png | Bin 5872 -> 7105 bytes lx-icons/128/info.png | Bin 5790 -> 5681 bytes lx-icons/128/question_mark.png | Bin 0 -> 7173 bytes lx-icons/128/warning.png | Bin 0 -> 3583 bytes lx-icons/128/wg_vpn-stop.png | Bin 15155 -> 10900 bytes lx-icons/256/error.png | Bin 12081 -> 13474 bytes lx-icons/256/info.png | Bin 10319 -> 10030 bytes lx-icons/256/question_mark.png | Bin 0 -> 12246 bytes lx-icons/256/warning.png | Bin 0 -> 6394 bytes lx-icons/256/wg_vpn-stop.png | Bin 24552 -> 20573 bytes lx-icons/32/error.png | Bin 5215 -> 1330 bytes lx-icons/32/info.png | Bin 1594 -> 1275 bytes lx-icons/32/question_mark.png | Bin 0 -> 1551 bytes lx-icons/32/warning.png | Bin 0 -> 838 bytes lx-icons/32/wg_vpn-stop.png | Bin 6205 -> 1963 bytes lx-icons/48/error.png | Bin 5813 -> 2271 bytes lx-icons/48/info.png | Bin 2240 -> 1901 bytes lx-icons/48/question_mark.png | Bin 0 -> 2389 bytes lx-icons/48/warning.png | Bin 0 -> 1416 bytes lx-icons/48/wg_vpn-stop.png | Bin 7247 -> 3233 bytes lx-icons/64/error.png | Bin 2793 -> 3266 bytes lx-icons/64/info.png | Bin 2801 -> 2555 bytes lx-icons/64/question_mark.png | Bin 0 -> 3189 bytes lx-icons/64/warning.png | Bin 0 -> 1648 bytes lx-icons/64/wg_vpn-stop.png | Bin 8885 -> 4670 bytes ...ols_installerv3.py => lxtools_installer.py | 890 ++++-------------- manager.py | 493 ++++++++++ message.py | 384 ++++++++ network.py | 40 + 31 files changed, 1178 insertions(+), 712 deletions(-) create mode 100644 ensure_modules.py create mode 100644 lx-icons/128/question_mark.png create mode 100644 lx-icons/128/warning.png create mode 100644 lx-icons/256/question_mark.png create mode 100644 lx-icons/256/warning.png create mode 100644 lx-icons/32/question_mark.png create mode 100644 lx-icons/32/warning.png create mode 100644 lx-icons/48/question_mark.png create mode 100644 lx-icons/48/warning.png create mode 100644 lx-icons/64/question_mark.png create mode 100644 lx-icons/64/warning.png rename lxtools_installerv3.py => lxtools_installer.py (57%) create mode 100644 manager.py create mode 100644 message.py create mode 100644 network.py diff --git a/Changelog b/Changelog index 1df4d59..a6ee910 100644 --- a/Changelog +++ b/Changelog @@ -2,7 +2,20 @@ Changelog for LXTools installer ## [Unreleased] - - + - + + ### Added +14-06-2025 + + - Installer divided into several modules and added new MessageDialog module + + ### Added +4-06-2025 + + - replace modul path /usr/lib/python3/dist-packages/shared_libs + with /usr/local/share/shared_libs for better ensure that the shared libs are found + + - add ensure_shared_libs_pth_exists Script to install ### Added 4-06-2025 diff --git a/ensure_modules.py b/ensure_modules.py new file mode 100644 index 0000000..53419b4 --- /dev/null +++ b/ensure_modules.py @@ -0,0 +1,68 @@ +import sys +import os + +# ✅ Path to be added in the .pth file +SHARED_LIBS_PATH = "/usr/local/share/shared_libs" +PTH_FILE_NAME = "shared_libs.pth" + + +def ensure_shared_libs_pth_exists(): + """ + Checks if all site-packages directories have a `.pth` file with the correct path. + Creates or updates it if missing or incorrect. + """ + # Search for all site-packages directories (e.g., /usr/lib/python3.x/site-packages/) + for root, dirs, files in os.walk("/usr"): + if "site-packages" in dirs: + site_packages_dir = os.path.join(root, "site-packages") + + pth_file_path = os.path.join(site_packages_dir, PTH_FILE_NAME) + + # Check if the file exists and is correct + if not os.path.exists(pth_file_path): + print(f"⚠️ .pth file not found: {pth_file_path}. Creating...") + with open(pth_file_path, "w") as f: + f.write(SHARED_LIBS_PATH + "\n") + + else: + # Check if the correct path is in the file + with open(pth_file_path, "r") as f: + content = f.read().strip() + + if not content == SHARED_LIBS_PATH: + print(f"⚠️ .pth file exists but has incorrect content. Fixing...") + with open(pth_file_path, "w") as f: + f.write(SHARED_LIBS_PATH + "\n") + + print("✅ All .pth files checked and corrected.") + + +def main(): + try: + # Try to import the module + from shared_libs.wp_app_config import AppConfig + + print("✅ 'shared_libs' is correctly loaded. Starting the application...") + + # Your main program logic here... + except ModuleNotFoundError as e: + # Only handle errors related to missing .pth file + if "No module named 'shared_libs'" in str(e): + print("⚠️ Error: 'shared_libs' module not found. Checking .pth file...") + ensure_shared_libs_pth_exists() + + # Try again after fixing the .pth file + try: + from shared_libs.wp_app_config import AppConfig + + print("✅ After correcting the .pth file: Module loaded.") + # Your main program logic here... + except Exception as e2: + print(f"❌ Error after correcting the .pth file: {e2}") + else: + # For other errors, re-raise them + raise + + +if __name__ == "__main__": + main() diff --git a/lx-icons/128/error.png b/lx-icons/128/error.png index ae580f8eb9f0a8dbb8cd2b58fe534946d03bc397..e94b55a584373a1ce82b71fd8fe43c5167111e75 100644 GIT binary patch literal 7105 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 diff --git a/lx-icons/128/info.png b/lx-icons/128/info.png index ccba61196f38e1649ff842ffc93bb15de2757bb8..7974653782bbaa217981e7ce1610386b3eb817c1 100644 GIT binary patch delta 5653 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 vR3$EX>4Tx04R}tkv&MmKp2MKrb@L`9PA*) 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 Hu0mjfkBm|3 literal 0 HcmV?d00001 diff --git a/lx-icons/128/warning.png b/lx-icons/128/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5eff7a0f00b105a9a70551fce622f8fbd8d3f3 GIT binary patch literal 3583 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 diff --git a/lx-icons/256/error.png b/lx-icons/256/error.png index 7734e3acd54e0e380cc2f5ae1ac9ef14c24c7ee5..e034b9a360ef8bcecccda572262df2ec3f2b24ba 100644 GIT binary patch literal 13474 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 literal 12081 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 Uk5udfeC9Nu`B+!2S`{Apf41?jj{pDw diff --git a/lx-icons/256/info.png b/lx-icons/256/info.png index 8c1ca4f62bc7220c78f1d74413495b9c9d435627..fd2488f1d6ef19357a32668d1f2df3232685c6ee 100644 GIT binary patch literal 10030 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 V463h6rI1rhz>s_@t6Ccw^MCz~y_5g| literal 10319 zcmW++1yoc|7oQDa>7_wx>68>nVM!4b5k)|dMN$O;rE_Zq!p1C z5Rh)^W%t|v_s)4|-rRTR&diN@_x)z#%*`$`(w(6L05D!MHn0EyLV1Kh5!94|rIGdl zr4o5hU*G(azCOzPk(cW|4;KI=lf#lP7=K1{M^6`+)ZXA*Lwym__p37HcvxyFsTXA~ zQ?ugmXj$;wy-OB$d{iS5k9D3}(r~%m=C`BL-J@7 zbSc9$?JirQ0_@BVH zbYND&BN%r`btR(b#Q(H&^|}lK8(}y)Ma#KTtj{&{B9r4xK5NIbrV*1q~)4<5L9`U3q& zE_ZxgoKXSyeD9(zUbRd=amhz4$T`4~;@ECd2X281!O72QDHOz4!!< zk9dM!jE%%aJVh@?b>N`S`l;}gcM1IvJcXE;5Ed7D(M%7mYb=>H*C(ABD@rX2I38x2 zE>AvUg|Y&T*7ie9S=8G(O$$X3@$W`y7!3ZmcM}KqjV{Ew(|@tLqi45szfk zV@?!v$buVeV}Z%BJyLgRbw9MF4{Vlf^jr|-Jecu%NRf!M&_PK|5L`XlJYX1Au=e@BI3L?3-{X^)&UzPIxYp4BQcnMqh8Sdar^u!l4&Ry$Gq` zq0(W^++3LSglSHE{oq^ja%tlGNk)_=dspu3sg_{hV8&HeX(P&HCi$89|0D)#lX|?a zC=~N9Dt{&_fD>K^4*?KQw;}ZBn&*Tqq2Hr!X!}{wMwS<|_HL8_7mv=g$iB+$Yg^Y5 zYP9GD*D$GVUhQq;2G{P3oQfj8>I!uLciV2~;y~SbADP{PmuIY1D`pqVUFuH7R~2V1 zb3)F-T~?`$LG!m`y+4UQ=$*^6vTJ!z4aQItA z{;U0Qa9iY|S$R?OMxo}Q(0K`nBz7k!_;+*j16rrQeuU9!s-{=+4a%|G9xGHbzfVF3 z%H?g(3aPvzj)t8gBdU-PqmF=_J&DPW>mDL@AuxqGYS56>C3olXgO<*r?~5rh=Rfe- z9lbN7dek(QnF+m#?6yE~Cu4M0RplrAXq7*yLY#77xZwP{D)x@`%YWLcPfy69Yn5Ud zV(>bZ>CcU@DSO>ZPl3peI}#f-;pm!%fjf+_#9c^<@YwmXX1Za&xGf~zfCuX4s@p9nWQF^iFF@~!HZPJ^7;#d1wV#95P(iZj2H}L!P~F2<;oi1 zSdOyXPlh_YPHbJ%>R}aaB2PGbS(;Opb++a!r_b7NqQlqTJm(%2cu6yAuZuGLkH0#6 zw`yuPji-?fH>LMNmTAp*t!?O{ZO#&Qr7=r=zW-vNrD8>UMnN90D&Z1{&=02u3bP3x z=AId!K63EjG53)N{y2$JXY%HoCeluzW8Z}qrpS6K#~CApvk!f8>zH{Xv%HmGU@j{gdw5l?spFNJ=~8QGzzG>k=AA4B7y ziX4VwIGbOrjFX!1I#XNOuw~0gybK+*;G856ivx!l>A4Nrogy1XFvz$1Hj4l4QFBt6 z9rKqgAOy8e_GW#o*90+xngfbVuZ&KH-HdbDm>-@Fek)zSrWv)u=DbxMXuCWwP2!8W zaaTQY&%vQF=@rL1hT1ih4HU3FGnry=)~wdgO5D>Xes|-CqxY2yypp`QS&|Y^6~YAR zXT(0tlzMVhNgE@f)#Rs?ymcJOE&s#7h1b?0UI7ACwof8Zyti)n!SU>n>XfeOs?dQ2 zS@t7EaKiBY9nm4O#Le=V=0Wq;Kbhd?nxsLhPWg7%h|XEls>;j}!t7#bx#kx>pFrO^ z`%55+##Qvls%Dxx`iKl>g!4^~BGPB$T&E777Q3B>Nmni;@85AAW`W%n+PVcd2EN~P z_UYxLE@DViShy<@3C_d`bD*HT@0H!pELvf_oz%u!+$03oX4DN-cbvoiqTtq#lsh(; zo&XWZpqh1GK&=_=a3UF^u&2Oo6|%hW#ZJ6+!B=GU3CD?9(1} z9L}b09`pNrVtVok7wKBx4``#?M=fqtw}y8%H~c?WwYZTmtleGuXZ`UUY! z(Y-U1?T9e^eSW`_Ss1bT^ECC#yIw}P5xiGPnEZ?okA>pW*;n9hEDF56uN4;!TxH|L z>M!^M-OzZX0wW8;K;7Y$!qL_Bp{o4TYKbnaT$CC_2>PaX#Z!+jObB0jcaIX*Hv?Nd~kK}znU)fr!grLSS)g0ADc!k^p)lP6SQGJydwoG zr7)NCZJ({iFxR#B#a2zvNs4Cn8a#Av!0+3Wz{H?`AH^hq^^UxTE=iredxhHt+^8I~ zeQi~WIG3j4)K8bC(xy3l?3)-#R8sWTte=*DxLqD+&Oq_@Y2`$ozljhB-FK`FyAnfM zr_FHz0XJ$;M2td(ymLof~H6El<8CN`w$9*2iJtQGsOft%3q^`gI z#IXC@L|msmggd#>ruMpgOWAQ%h%G=dfIO{4vy9~mp3mpk*7WPI=t^2bl3d9Jw!fm& zd0J_}D~m2xEeUPtsMWI$7l-isO4Pj3cD9cjGeM^QM+ zl)Em5@(U5nq<(SYQ6b_g+`l%(At8L@~F2X8jXm_X=92PVF)b zODeYBt-8&I=b47!ir8O8Mo<;-cot`$^SU?uB_I*@5N2M;=Ws@E##D!ZP&&Gr8S4cj z2-98C%e!;qnFjV}=2gto8dB9Yh>beV=33XT1!_DXqhMno?{0Cv6Wb_oB zL>QCirhDIJ_#>e|m}BEh(*2iNY4V?D;;%a?)Uy+uu@ph*SKzG7emEmo^1mHPAe8cG zdaW&D?ADTIEhll1og;`*o(W!$9(+Bm?x1MRsOaH+XJeEr5BlqtCJCYRWDJ zNjbn{i4v{JM~t~m|5zie>A3Tv$M4aXvA=+b&qTxgB&drX(zbs_-=-g|a@_0#-ms`M zLKW}O4~C}Ch5t=A6?4HANkMyc8PIv`i1}LZLw-2aYBjJCPm{-PuCmc=I7{EAb?Xn* z*AQr)TZ*Gsh(Lz}2U&I-rkVx{iwWMl?``zQ9NQN$gTgd84#;ITq?R{CR#FVO+f*(J zgSt$;r{>ZKRWp0*fQ7^Y^`u)1bh_V(KvfQf-vjL z-VhCUY7jVzWZ=*_;SDgCEOPom-pGB71UIf`hKwNza^CjS@&Tthnges*KNe5IBqj!8 z9$s;`v8s-R5^mkB!NB6f5H=`-4Geq3~WfX`3K{j)$&c8<%*V`m-jIcU6a zGTC{bOc#aB`+03xDMb6n-;z=6HGL$yHPZSTKM+5WFIc-O$;PG7&W)WV{oHU1QQ-pv zW2%^6sUN8xa5=E!i4xU1XE!cM3UVnt+>g2Ad=b-0^9Ug}1p2xock+qNLo50q97*X!DzLC<|4g2kqjkThXGQs2uo#>kafte}a+F zH)ar@o;LvPI~I8%lEzY$6V#{mmfk%5O#E#{H9^5Bxm<)Ygy;5#sibY>8HoWul!6gl zA(ht2m4>sK2G>oZj5!q$?C99^#$G{Y$Kx1Hv0>ra8q;Xk;P1^~tXQ{OF1LaS$1`$0 z7TL|8yuCP}s|H{{#i@?|K%4JE^GW8rRsjhvu7_N}+)zkQ(wz%g#FN3d6h5&rmaV>R z(Mp{?R0~Zj$nEbyVN5}hafSJw1jKW$sv|^Io zsWP`G8Ku%A;C5HG(eE3SavyeooC#${!+yp<6b~598`ZiFO0_ngmPbJx6r*5yKOBC= zXSKin8-4B=6ujL(xbK=vei{*dM*J)k_nn<7vfCY=HoUjnc8ury)A)^OCI`@=$w_lv zxH9m5lx)aO8);(r_TE=@rVf>Js%sbE*X+)sof5)ce8QPmx}c{T?m>SjGw$@b!l3yK zlChxTZ__OaKoDc6j(qX~D!k_wB=EY?gX@6QRa+We5nd!P7igFU{MNVNe` zXuz3i;=TFu8fn=GLF{NzgxLuX%9E6L41~l?WY#;l4>LjVBopSuWIiAwbcK_{&2TSba7ftOX*$r?F0TB zI^riM@*pqz(&C_$1kxz~{;$qXL{*Its-=5W#~+S65(n`-LrcDF2oV;~%yG%el`87I z6%L$50PX>__&gXW7`lRrkF**2nVbB@uSzGnb5fNCF!bkB$n!rZEEyS@(#O`RV+W+| zm;t!;pCI)hMZ4>TXzMj42k_(oCW`|Vw7!kBk$hEA#jBt#yDhb!P#J&F13CA7SseL@ z`>xS_zF4N2+q6lE|H^*Be^zqVASCfgolvzc`lfE?zporFqe&5GX^o(0RA#cLz9lNV ziTR8pN~A?0FGLD_)@evEQ^hA`cs{ETl_`17mUD?n{>5Av4?_o~8=7+Fn@}FNpW!{6pc?8&xVM-wwUr6o*jt!xf zpkOeSkhMC%u03G|$!+RmLmbY>-X7#zOhphkeL?WI*L|rTBqyn ze|@6CFnZ-b4i)e%aIp2c4wNv9$nt~=#c-wvmMX!);T?@BxLyLxn33t;yX#Zu?6hbI z%!3pI7zy)k^6y04#s`2*TmJtW3bM4yJt(TiMU)-S;W7k2TGls*{?9ploEk0~cT~~G zmaiF>kXNP58J3874#8dU?WT=nGw2pQ4xB!3tLJF5zsUN-2a*^x8w@(ht}E#)M6|v+HD$&05q%sItwqIN0&dY<$4K(V+d3^G0{0p4x0aQM}m&V5ah!7i_U%w zvx*CmZBWAc+D(mh_@{?&6E{};QAMSYE~@gU;nb49BmqE=z?AEu1Y}k)R0Wj!{;A#c z7m?NB`UjlfQ0vN2fYU=Gjg!bH_2i;F5vJOf_$@OVfuzk#rqoy}+-FVSV_FV*u>D)a zqF|=9<-HcjT8u9A)v0FL63+_PdnYo~wpr1!({uiEbY}u}Jd#oW>1fw^9J^Mn!(d*^(nA*J__Vn+$oIKsMZvCW@_AhVbU4v)^QTOc@ekU zX2Fe=<`}a+&_$}wPd>rF*ODxQsr6&sRiYqy7Rej;CKiAE4*3pzWf#J@a6gkjltT$1 z3YzzW@IZ#cmOP`KQ`%arESUgX!tPw>0VLM{FUwy-G@@@qx>(Ez{Xz3xIexF7nm`FE z`*WY)ZW+?i=)Dsf8rjzFk~qfUCeKIwtNLcBC%{Xk#x!YWn4`1Jj6`r;hjav7Xj8rV zYoW^{!4GDw*tLqJ69R*$yB}|ZP>wI~JjXTc+T9S>6A{J4l^|Pmc=`gDM&KKViyd`V z7S>2-(KW3N&_ z61B>FI16@eCBGs2T@v&rxjkXh`zXSDp=#p($#sjzYm@De(IC5s_v}f-4H)shE zpf*5?`}Ej+!`N?q^jQVjZ2s#DSn&{^|9Q=|F4&MCIcNa3b(UQ?vdWLVeD`3mcw!=X zUr;|V88Pa)g5`&JW35>G$>=+Jl2*>g8n-yy$)Rt*#^RoNgC9qbaCOi*ORK5!4-O2Z zZXjG}JY5_&FVwTma~+IAdp2DSC~zZLFBR~C+>=EgW@x?Oo4Z0UZtn}K)rhnlap~ut zKbYq9u-oDrT6G$qg^ zkb8G$faioqAjOt(C=A?W%D>Te6cYM0)qTsL{txRDH1#oNocktdoq}BT1arN|q|GosfXJoF>)YS1!$Mu$r=(eFvXR=Qe+7KQI zmwy4<>el6xr`pgt2%p&>Vt*7#uqIQSqg5yLPnOoNX`^2!+$Hk&Nk!*QpFBE?v!d+! zfYIgAL=Z?5C6Ko?CY8Y#yBV}_mY{mF* ziB9KLE<;i><{i6vKS|dI1ih41_C1`&Pq<66(?&&8pkmdAh+IY)f(iK748TlW?Lh$rrPBeP<@x4ffs8W#z5_F_B!16?O~?{3 z-7@1(v6T*xtdMk~PeGR$PcA(`Q#Y`-Wfr9j(lnn*~VmyU%slHm|HrSI8azsbY#; z?|cQZ`S!*`6kUgS?>0#{{spbXr9iyUbkaUnvUZuMJrgP)rKGFAq!iaW-~MbhI=kru z$;{cw-Dfng535euTMs%=Q6zc7pNm`m${8|wjNar3${+aToCm3=X0ui&t) zu?+wFNje!Z|7`Gx_x%v>p~LHcoZ7vZ%Z^&jX`2LzGtcMYh{N8THB*7{!(&2@P8)2i zmJYc#jrpH{6O|K|Swd1>le^eR%w=o&stAnV@pXMJ!vIdd{b8 z030M}m^w7=LoOVDs$xo#pFLZAQcY)T^n+{g9z5769Dr]^;U=-B>;7yGg8ID*%| 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 literal 0 HcmV?d00001 diff --git a/lx-icons/256/warning.png b/lx-icons/256/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..a30311f75577f76af69ffa4e13f65fadef727b59 GIT binary patch literal 6394 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 ri)I5Q6BT0bj|fs4a4@H8dQZL0xW1 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 UW=mxUld%s#Svp$0G4oIPKRMk?dH?_b diff --git a/lx-icons/32/error.png b/lx-icons/32/error.png index 18e6c64edd48e952a215b866721caa49114ee4c7..876f5d3257e13a182922c60a9aabfaa56235ddb2 100644 GIT binary patch delta 1267 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmwlQ0l4f9VDc5daIaKe{~t00eeP zL_t(o!{wJ*Y*bYk$A4$J(-zul2qLnW5H@L|FC~?@#Vwjh)Wn1bB|Knaj2ai}3q*|# z5R9@;h?oE_i4Tw%8kEFnqAwKMfSsbyP9a?^p_I0?r9f?GyYuP^oDm5e^K`o{A@Srij9(A0x)1eHQ z3lvYm(>LMWMMd`~wLX#y8r0Gteb&~7jadae2+Z=Pe{6E_>yGnuTB*Lt!2K<*_0=C8 z=VRb8VE$x8s1a+Q7l=(3ngSW}-z$|k>^PqR&j9l#L?5#D0fDQdFNuMi3Ww$LqDAAv z>$Y!~KaU=jp5kJ^Cx*YUcD*O!?!54WrKQGIs&;hn2*~N`YLRqW&Nnql@8ZRQ@FYm> zjvbOrebWj51uS18#ZynL7^e$bR1wX!P z*BE@%emig=qu(#qeg~`q?#(G6t<)cWmo|jMlDg%^9nHyK)V5LF%_{%M#(Y zmc~Z8I8LNQjX4gy11tyjc)<6+0XU<61!iD4Ji4J2<10QfBRcD2R$rqw7 ze~>6CL8mm6zxBz&T@1 z0PBFIK>{iRb2>=fzJ21lZsvk(X^})Cktw3BO)f28o>RavYkvmb3rfpsFcc~egzw*< z1wVW0lyuFTCy^~%Bp#1vMn`+QbX8OYe+u~AarOXj03}%hHWw8cSE*M2fSNsfvf&L4 z(miL+*w!1_yg69JiWM2~L2LVGz(>GKxze$U8Iv&$ku_`N%D}+bi<=`6>7G41YyXdI z+LR$;WMo7lm6bv6UpE>7fdXoZi;G>Q+A~C~UM&Ot{nA`tFFmtn%Q-;{R(&+cmXJ#N>!|Zf~rtxZnw2nF=IN$ z179uo`#-n07k{6XnfY(L+kzwZm~L7Kl7LEuCIul$s%6;v)a_E7fyS zsdJwslO4S<1oQ*#Kv%xQiJGK09H7wqqUqkXz}v(Wkm4qMz`MVrXG8zFA<%eD`!>te dM4whLEnVI|D`@8r4?)~oh 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 SmxgR~l&_bcXQ_MCmj3|Jn%LX` diff --git a/lx-icons/32/info.png b/lx-icons/32/info.png index f11ca97307c53d8a165e26e6f15dcec10d32ed02..5104d27de7b8d3dc0aa1b57ae9ced127dbc2a5e8 100644 GIT binary patch delta 1212 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 B%_aZ< literal 0 HcmV?d00001 diff --git a/lx-icons/32/warning.png b/lx-icons/32/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..582dd540c79a87bfa3b701e8a430eefcc10c252e GIT binary patch literal 838 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 literal 6205 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 diff --git a/lx-icons/48/error.png b/lx-icons/48/error.png index 92a731a24e0d3066650c9f206538d77ea2aebc9a..d425d8ecbbd006043760a5426c7b667c000a414a 100644 GIT binary patch delta 2215 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 literal 5813 zcmeH~cT`i^7Kd*DX#xfW273ria6$@6AQ2FONDYK0UAakaNF>c9kbt77polOd44@)| zjDmL7-JVuH-DhMcw1r(G~P~T0kt~YDFn3K6`)X?BChvZhv>A0sthZGulv(!!%;p`aWkmWVh!K7^8`iXjxF;Bf#z zaWgL@R(KAlJ27UTrnT(I)s>~^{ZBW}U28`UD)BF(7U&shHM`6i8j5^PwTvjhRB~E( z08%MW>|l8CHX-`NoSF9Lrn$%KAu8pS0mC|qzh@sgk1Ts}tW9>ZG4`o-N9zzgadoZ_^seyex?8J z9MkNHWi}rRFZVNoY@#|`!v|9XXVn{Bjxo_cr89r9aI|T9nTbjHEf!->(vC%P>Cl5| z69X|1HEsS#IlX9~dnEuMvUpxz3_mZg4~fI+mZs;s`JVN#*x0?-Kf(c>f_#Xqpx&U- zW+$2DFf7~k4^g+rz1E@6EHM4fr}21CPb;&du_-!ICvq`z0?g zxoNC^?B3Ib9{aZK;3PKz^b=RZ(T<#>2beu(r!6WdIft)&&k8Cic;Hh1^lsmHd|_g; za$GukfU*VQp6}9ZaLx7(s_aIMVaxbA%cX@8z0zL2pB#NBE+jYgIk!yNHl=I^;aYWS zFY-tfmsOb;-PWF6wb^R_-mvRICLlGRka`1-a@B#`RoCff$n3C zypq1v^A-m6X$>#Zj7+<{yjt_vu8OXhn0{T0>)MXW*pj0!5jIPl>JpU{UZ(I zGt$G%Eo!H{?)<%;)VlIDP*ELuaaK-OxjIXV54f+YKE_qT}dd zFNn+YO_M-jX+hzvv?LaVjb7xg@2a4}00ATeQ3?THD5Wag&}uFfzE+vBXq4JTmgI(x zqBBrlA_;^dIuadm7@C5YLO{Fgqg*9y4mH$!$$JER=Z5CWWMV27E0@b1hNLVBPb}k!geVmgWQvkyZfG>zj`}b@ftXJJ zh!;xVs{rePRe)kF-Vuit2(X_=NM*DX81jBV{}>?+hZi(96q1UPB`k=R0tsbSpCj0; zkMZJU316KKn}vn=kN|d-!oA|Z=+eiJ&iELik|2>M5UZnLvA^(?@i?Ev`eJOV7IiwG z4+IYX$o<0mL+)y4*o#i5dW%@es^R&0yP;M6Q`sUGk4;ry;z16D;^czI;BgdZ3=t2J zFfL3d7KX$ISrjG{??hn{K12Blr7}>+f>bCN?#P2VB+v!VA~IbtY!(xTA+qpz424Z( zVL*t*ByuC6O69GfSfglESCXz590Va}J z1SZGHMU7&!s7pi=0SHegPXH!DSg|ls-JlYjx|reTh9)@TK3N!iP{x4++|YqMVY1>= zLpVpbns{ddnM5IyoQW<@1RQB{%xd0JNFs$RQN_gL9G%GOaMiR>;bdT8K~#NvX&LUrG$w3LUI1$zn)(S39wN|M4>WQ-d(p%1jRI>mJhQU!Vp9CYm7YzG8VXSJ; z_>i$H_CGXnRXcpP$-r@wHhA-b_d@K)&G5Zus%_{0_<27U|HmF+^tVpFO5bmCeUs~} z6!5Z!GXs3Qfp@BJ`RS^k zV2hsEH(Ck+j#jE4LQ%OW1vcu){OB~D2YSZF)<)O=V54Ev3>hs-<|PuSp2`9B!y?2+ z$$2s^O7*Z9xz6Z2m_E(VdvQ4T&Xed^et3jw{P?X^11-mDel8B3zmA!?byz>kl$dEj zYOB!F-Th1xZ>zoLT=2YkOkZp5z+s)-9K`gsjBI0#HJd{WhMeyS{AUGl*ST}3*G{!c zC$>AK{CTA=jEaBUe`Uum>Cm#oUyrrk9M=dIF!RcWM`$*h9)J zLu=uiTI6eIXo~xLf@gZHz-W4`nph(`(6unwE@n3%-Mr7(V-C>kY2eb}<&}MA)tss~ zn-mi*h%OT1I`6DTf`<6~tcJBUQC0IVbq)?TQQQ8~I%u2VZ`s=4u*YTKO!tu|XNRU4 z#y^^3;%lVo5!b?W1(3i&6mxk;r{fExz^aEfBP%r5F7u@LBJs>$rd#648I}OvdcfDR zCNwAcEt^j7*txF3sEF%~X#JsRh#)w9NWeuX1sX zwR>&cuzvN_o0vz}?a!XP3Iy2rAACN(ygH%~I@P(|Q#R*^^YS%(ixa@;#b+LKpXcs1 zADp-_8$ttlz~1|5B6mPWnyn1mY=qbz zcgeEIp74uxqNy&r-CUQS>JzcEa^xB!(7_x?pRS9;w#~JkmSkUCdpOSFd2`2RTakVi zIS4U$@BY;*{h}7#gQKrHk%yHAggw?583*Q1m1}RfjL1X~+04acKvuhVNn*oGJJjEj zP({A-gqu(J)N*o|X_V3EBgB<5?y1K%``2PE;v8B%PHPoR2Lxkjn=`H!?S3`Dz4;u8 z1Q<5QLZ9j$G}KN+a1WURi<|d~UMlvY^q4DZ*C#}eHU-cw*AJYWHX&3-T}M zX7sm?6fLC&g>>uyhpK`Nx}(AG*cuI9m(gp&P( z4|NwbnWBT8@@-r9mYD&0?KNgyi$i=?@QcknGNl2<$!1WTZk`h1<^1p;F@vz{8n8-s|~e z)pQSOHFngvW5d4s*&s2?;+Cjn3`!njq%1fZ_TUA#{eHt(QNg-e{`jAC%kOUt*KUi< zlK>$tV;b2(H6xA*Z;7s}=U(jWLuM#f3(OEe!1(woVMj-LHL$C&Cg}$$XZy%}O@7ve z72$=i5Y1)wFDY|=OJ8xO&%poYEqYaOef`#xNzrxp6|Rr;w#Po+^3LB{xq3y(ZAq7Q zP)GaU8Xh5liKpvpCig*RMGGq9QC8yyo80GYe-X8)yA))n&Bbo94Db^JSZ2 zVxX_IDy_0>>*Jl~9pCjHdh=!=(DJwP3%|)@0-6vB^C>qs%rMUx*|@Ub>g-9opNF)? zRsqk7#*lY2!MNppBed|{>le12^^{=}bC2^%hDh;a&b*uGynUyDfz&$Q+geNWg->jM z9-1=jLpC>+gct*mLl0$XY@KDpb*0R0+0sVs>)#plZ8JP_o$_#k1=s$^TAJ(OWlF9&wC$VEM9r3vdeEh1L6(D9-7}V>&@HZB@yv=6Zz|OwqMNl z)Kb`-phsrk%|uSqjvKpUc)9j?D~^ht3MTZ|MVWe3U2zfOTMAb^Z2MQftTQ-ck%3l> z#Z)rhT!J|ClXT5y>D(D14oXwb##^s86+F7{9Ul15gLvbm@4RZy(k1a?`%B)8b93-Q wn|VvzISckI8T69xFOgK>q|e&l>b%6}*w1S~CM|D=|33gfT9CKWGhzL|0qr%~2LJ#7 diff --git a/lx-icons/48/info.png b/lx-icons/48/info.png index 52206e6a20efff6a0a667385d74e756718843528..45fb93f6666addf39998f886cbc4d4fa49e68d0a 100644 GIT binary patch delta 1843 zcmV-32h8}u5$z6;BS!!PXF*Lt006O%3;baP00001b5ch_0olnce*gdgAY({UO#lFT zCIA3{ga82g0001h=l}q9FaQARU;qF*m;eA5aGbhPJd?2jFn{R=3=s$fdBcRDp-?O3jr$Oe|)&f&@cn10-uF|@&ds5NDy!XCxD1eyp}1E zu}t-YOg%+bqKEj|Hh`NlI1a#eeGW#-bErcF-uTeYP-xtQX4R)G0O$&0n9e!XGX;Lz z;wFH8a64+}tV6kU>WA3TA9nS9y1ZWi&jGN6*pig24S%W-JWXHu`=we)dxRJ*A;OrF zPpr+;RyO-}=4{soC*HenAJ^Nn0I~o~Au^dkwL#^ApZ3hrCSQ&JC8p3F0JI^PAkP`b z-o&xCS5CdZOUKU!7y(SZzGXR6=>Cz+ZM2&3>`Avj zzZ^<<9Dq6iqXC2f_yh?ilPE-hE_$(JCR6Fv|0rK7I)Zf#i^ku%zFBBt41kExg8FaJ zEPt#4s$0C8n5MiT)OS8oOsbuE()L2JR_wY zmS-}j`qi6-t(83{8{N2Pt}ie29O_J9)4&B4kqA$oefe47HvnOA4h8_E1qoZt3u=Vx zDm{BsLME29T$MLJW>*_F?Wt@{->9+E0R#m2pyZ7h0Ad~{Ft?g&Ud11(SEeki5q~6# z6R2Ol-v^+vs)}}nX~8L1)C%B!Vcwc2fx0P?U^%({h-smwAtH9&0k60TkjVWARXBVh zzXMv8%!lPgV$M0QMgrNCVN0MLp*$1n>4;}IM}M^uu#%_K1!IN$N8g5d1~^Vu6L@af zxpefvfYiZ|YXZ((r5kb1f3B+CH-A!n*72{iQujhGZ1S>E4$gO0mHo$iq5!u<{$on5 z7+coBKO>V!Z58=ORSZ3P@OJ?^D@m>(f#a)Zow6;yts21RGU-_F_H~^Cv>|dJqbPyD zUo_WXh+X6180oH~Kk@hxLx4_61Wc!22NdUUk zp(w6_>@V+fV<7nyIMV0Kd&Z9J{>F;#(8bQ{B8^VDTP&U7?il+qVn2>V{nPLR~ z(L#3r>t^@9?;bTX)|L?gpMOlA>D>I<$GKx)I$gOwAu(b9vI_+OKG?Mo0Z<}0y)$aU z{FXJUUt9KHm6YZ{EZVvG)laf*ANC59=>u>EK#zFVMNM250Y^)!GHr2S>Yb|}^o2t! ziP5n2i#X?Ys{8o96C0oY%I^MtKQOY0|%{_bP3!#j@XJ74b=2Qni} zLzjI0fE0DJF0(l`9Ci~QG`Ny5CQYMg+ z#Bl9;(YvyWFZm>GI7EC>*T664G*?I27N8swhLotunWppgObSMlw9Pu@}6C0@JD%KDY{cii!XL002ovPDHLkV1kX3d4K=_ delta 2184 zcmV;32zU4G4!{wRBYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmKp2MKrb@L`9PA*) zAwzYtOBHdfRVYG*P%E_RU~=gnG-*jvTpR`0f`dPcRRiT0kfZ^H@jN&2pHZ5F0Q+pvIku50HaTJ*^nK{Pg5us zf%h}|raUlm3k28PzID!V`T%69SLqwz;1HN7QTDpWyAcO^`}S{5r++`8k#f0#S|XB> zYA}E32^tC<0PmMRP5=M^8FWQhbVF}#ZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b z2AD}iK~!ko)md3=R8<)M{&Vl0wKJ4bXiKddXcWOH(I8N<0TE+Dq7RxNK4=tUP~4(V zKByR8Kp_~gF%Ta##w{T+5kv$RRAh-MD#U+ns1^hYEz{Yzd+#|uaBewFXK#V=Bqwuc z+Bx%m|Nj36_@6JTgEK|F5TFYFCdQf!jWKX4@>&e2C<0tu3R7W%bLh14;%tS20#Wt zRuZxDG*Xa+Rw;Pz9j{UIy_+8-&G>&5pxIS?x9FL~v<^MkcAs~~L!QjwKOqtAWdK+; z&RhuyYJPN&;k#naY7kouz&FNeLt`%AE#4{fr<*qYYM(s7^TMte4FQ_?*giuKv~B|E ziAqgQ)MB5StHaYibEavDgZ9Y-w*0y%;@A}tpujzEle=xkI)Ii{3gp#!er$hucoLrM z3SxOz5Uqma>prtG5=@`yZoBFF%s_9Ch=h0^0X5tX%Z8OY(0|RsM*w=V8iNS<7$!6t z!@I%9sxm0%^3NE5=PQpxYnUXX+c;^qE-7%PD!AC`)cSPjY7nixK=o4T1w++BeiWjX6@Py=6VtkD&9XNJ z7&<5GnAWIaTB8QT22SN_EBT4(4e&MnoeO;)mQv3sWrtm`m?KTU3xKy)sXaW`k0p!F zl|~S_r)#}&}drV$ztxnxd;sk&NL{8YMB z;v8NBn`dPK{99k*=azY*C!SYYJ7x87DWUWrqNkqlb2A<0$98|^l<9@7HvDWvGbO~g z^+do<4jcu9Eq&8eMlrllF$Zp?x68VtE>^bx*S{p_oU*N=1Ws?9-VcZ`>caf3OeDFt zyHA47${HwJlEB%pWxa_}PL0Pz`U8LbB%;4%CFqnwz;qh@LNgc<-o55q2(k0hN*Y(5xMIf-#kM_nSOSg#h$;k}W=52nN(cZVvbTF91b_dc#{F#UM0n?`+hIpj5_ClF z^BS2_1ctSc-M`jM{k?ky1m9Y@^2@w01wNNNJ@nnWkNJPmFC$X&VYwsH{?!l)0HWNr z5CPB{?%ojeU%O~MF@0${5aTo;sGmDFY6-;b3czQgN5kK}@riZ#y))8e!T?SK7?95i z*%O~fKr2H40FVo9voeEyJG@uTi;!l_2FO)3^a&tlpWE588W7wZ>f0CI_QDps_cKS@ zVF`Rtk$!(hwSDKc+|-Sftpjj3E!}>D(RB4n(u@V8o!aqS;&?K&>+|G}XG79K;|hTx z`RqvE#K`NYiU2qSn9~)J_j2F(``?*k1lu1a-8~;5Pc`Kw&%};oP9FR*zH8-Sk?2h; zaXu3E`HpK_a901e)C&)|JpOsAu}?vB$QYmSF-MTbx)zNQ0*1duwzSY7|OK32f)kP zIs+`&)&Qn^gq6`n{1oy2J?f7;Ri#QGrR;2;)Jxu#)qKgPXu~1mQlj16* diff --git a/lx-icons/48/question_mark.png b/lx-icons/48/question_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..f10ca66994882a611a37a16cb9f369681e7383c3 GIT binary patch literal 2389 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 W4V@#RWyQMy0000004R> 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 XAQ|IFccM~r9vnPgwUIGK|qihDIzFUWdKF0 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 diff --git a/lx-icons/64/info.png b/lx-icons/64/info.png index 4917814edb0efe700a138f6c8975718e602ef06b..bce3e28641811631372c72e87076ce8bf5bcd404 100644 GIT binary patch delta 2502 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 Eg1~<;6951J diff --git a/lx-icons/64/question_mark.png b/lx-icons/64/question_mark.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd9d5fbdc83e8cdf889d89c8535da9da281b68e GIT binary patch literal 3189 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 P00000NkvXXu0mjfASKk6 literal 8885 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 g9w1NL71-36I-0qjSZ{ZY^ 0: - latest_version = data[0].get("tag_name", "Unknown") - return latest_version.lstrip("v") # Remove 'v' prefix if present - return "Unknown" - except Exception as e: - print(f"API Error: {e}") - return "Unknown" - - -class NetworkChecker: - @staticmethod - def check_internet_connection(host="8.8.8.8", port=53, timeout=3): - """Check if internet connection is available""" - try: - socket.setdefaulttimeout(timeout) - socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port)) - return True - except socket.error: - return False - - @staticmethod - def check_repository_access(url="https://git.ilunix.de", timeout=5): - """Check if repository is accessible""" - try: - urllib.request.urlopen(url, timeout=timeout) - return True - except: - return False - - -class DownloadManager: - @staticmethod - def download_and_extract(url, extract_to, progress_callback=None): - """Download and extract ZIP file""" - try: - if progress_callback: - progress_callback(f"Downloading from {url}...") - - with tempfile.NamedTemporaryFile(suffix=".zip", delete=False) as tmp_file: - urllib.request.urlretrieve(url, tmp_file.name) - - if progress_callback: - progress_callback("Extracting files...") - - with zipfile.ZipFile(tmp_file.name, "r") as zip_ref: - zip_ref.extractall(extract_to) - - os.unlink(tmp_file.name) - return True - - except Exception as e: - if progress_callback: - progress_callback(f"Download failed: {str(e)}") - return False - - -class AppManager: - def __init__(self): - self.projects = LXToolsAppConfig.PROJECTS - - def get_project_info(self, project_key): - """Get project information by key""" - return self.projects.get(project_key) - - def get_all_projects(self): - """Get all project configurations""" - return self.projects - - def is_installed(self, project_key): - """Check if project is installed with better detection""" - if project_key == "wirepy": - # Check for wirepy symlink - return os.path.exists("/usr/local/bin/wirepy") and os.path.islink( - "/usr/local/bin/wirepy" - ) - - elif project_key == "logviewer": - # Check for logviewer symlink AND executable file - symlink_exists = os.path.exists("/usr/local/bin/logviewer") - executable_exists = os.path.exists( - "/usr/lib/python3/dist-packages/shared_libs/logviewer.py" - ) - executable_is_executable = False - - if executable_exists: - try: - # Check if file is executable - file_stat = os.stat( - "/usr/lib/python3/dist-packages/shared_libs/logviewer.py" - ) - executable_is_executable = bool(file_stat.st_mode & stat.S_IEXEC) - except: - executable_is_executable = False - - # LogViewer is installed if symlink exists AND executable file exists AND is executable - is_installed = ( - symlink_exists and executable_exists and executable_is_executable - ) - - # Debug logging - print(f"LogViewer installation check:") - print(f" Symlink exists: {symlink_exists}") - print(f" Executable exists: {executable_exists}") - print(f" Is executable: {executable_is_executable}") - print(f" Final result: {is_installed}") - - return is_installed - - return False - - def get_installed_version(self, project_key): - """Get installed version from config file""" - try: - if project_key == "wirepy": - config_file = ( - "/usr/lib/python3/dist-packages/shared_libs/wp_app_config.py" - ) - elif project_key == "logviewer": - config_file = ( - "/usr/lib/python3/dist-packages/shared_libs/logview_app_config.py" - ) - else: - return "Unknown" - - if os.path.exists(config_file): - with open(config_file, "r") as f: - content = f.read() - for line in content.split("\n"): - if "VERSION" in line and "=" in line: - version = line.split("=")[1].strip().strip("\"'") - return version - return "Unknown" - except Exception as e: - print(f"Error getting version for {project_key}: {e}") - return "Unknown" - - def get_latest_version(self, project_key): - """Get latest version from API""" - project_info = self.get_project_info(project_key) - if not project_info: - return "Unknown" - - return GiteaUpdate.api_down(project_info["api_url"]) - - def check_other_apps_installed(self, exclude_key): - """Check if other apps are still installed""" - return any( - self.is_installed(key) for key in self.projects.keys() if key != exclude_key - ) - - class InstallationManager: def __init__( self, app_manager, progress_callback=None, icon_callback=None, log_callback=None @@ -532,17 +31,17 @@ class InstallationManager: self.progress_callback = progress_callback self.icon_callback = icon_callback self.log_callback = log_callback - self.system_manager = SystemManager() + self.system_manager = System() self.download_manager = DownloadManager() def install_project(self, project_key): """Install or update project""" project_info = self.app_manager.get_project_info(project_key) if not project_info: - raise Exception(f"Unknown project: {project_key}") + raise Exception(_(f"Unknown project: {project_key}")) - self.update_progress(f"Starting installation of {project_info['name']}...") - self.log(f"=== Installing {project_info['name']} ===") + self.update_progress(_(f"Starting installation of {project_info['name']}...")) + self.log(_(f"=== Installing {project_info['name']} ===")) try: # Create installation script @@ -552,17 +51,17 @@ class InstallationManager: self._execute_install_script(script_content) self.update_progress( - f"{project_info['name']} installation completed successfully!" + _(f"{project_info['name']} installation completed successfully!") ) - self.log(f"=== {project_info['name']} installed successfully ===") + self.log(_(f"=== {project_info['name']} installed successfully ===")) # Set success icon self.update_icon("success") except Exception as e: - self.log(f"ERROR: Installation failed: {e}") + self.log(_(f"ERROR: Installation failed: {e}")) self.update_icon("error") - raise Exception(f"Installation failed: {e}") + raise Exception(_(f"Installation failed: {e}")) def _create_install_script(self, project_key): """Create installation script based on project""" @@ -571,7 +70,7 @@ class InstallationManager: elif project_key == "logviewer": return self._create_logviewer_install_script() else: - raise Exception(f"Unknown project: {project_key}") + raise Exception(_(f"Unknown project: {project_key}")) def _create_wirepy_install_script(self): """Create Wire-Py installation script""" @@ -581,7 +80,7 @@ set -e echo "=== Wire-Py Installation ===" # Create necessary directories -mkdir -p /usr/lib/python3/dist-packages/shared_libs +mkdir -p /usr/local/share/shared_libs mkdir -p /usr/share/icons/lx-icons mkdir -p /usr/share/locale/de/LC_MESSAGES mkdir -p /usr/share/applications @@ -617,23 +116,23 @@ done # Install config if [ -f "$WIREPY_DIR/wp_app_config.py" ]; then - cp -f "$WIREPY_DIR/wp_app_config.py" /usr/lib/python3/dist-packages/shared_libs/ + cp -f "$WIREPY_DIR/wp_app_config.py" /usr/local/share/shared_libs/ echo "Installed wp_app_config.py" fi # Install shared libraries echo "Installing shared libraries..." -for file in common_tools.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py; do +for file in common_tools.py message.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py; do if [ -f "$SHARED_DIR/$file" ]; then - cp -f "$SHARED_DIR/$file" /usr/lib/python3/dist-packages/shared_libs/ + cp -f "$SHARED_DIR/$file" /usr/local/share/shared_libs/ echo "Installed shared lib: $file" fi done # Install LogViewer executable if [ -f "$SHARED_DIR/logviewer.py" ]; then - cp -f "$SHARED_DIR/logviewer.py" /usr/lib/python3/dist-packages/shared_libs/ - chmod 755 /usr/lib/python3/dist-packages/shared_libs/logviewer.py + cp -f "$SHARED_DIR/logviewer.py" /usr/local/share/shared_libs/ + chmod 755 /usr/local/share/shared_libs/logviewer.py echo "Installed logviewer.py (executable)" fi @@ -670,7 +169,7 @@ fi # Create symlink for Wirepy ln -sf /usr/local/bin/wirepy.py /usr/local/bin/wirepy # Create symlink for LogViewer -ln -sf /usr/lib/python3/dist-packages/shared_libs/logviewer.py /usr/local/bin/logviewer +ln -sf /usr/local/share/shared_libs/logviewer.py /usr/local/bin/logviewer echo "Created Wirepy and LogViewer symlink" # Install language files if available @@ -703,7 +202,7 @@ set -e echo "=== LogViewer Installation ===" # Create necessary directories -mkdir -p /usr/lib/python3/dist-packages/shared_libs +mkdir -p /usr/local/share/shared_libs mkdir -p /usr/share/icons/lx-icons mkdir -p /usr/share/locale/de/LC_MESSAGES mkdir -p /usr/share/applications @@ -741,17 +240,17 @@ fi # Install shared libraries echo "Installing shared libraries..." -for file in common_tools.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py; do +for file in common_tools.py message.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py; do if [ -f "$SHARED_DIR/$file" ]; then - cp -f "$SHARED_DIR/$file" /usr/lib/python3/dist-packages/shared_libs/ + cp -f "$SHARED_DIR/$file" /usr/local/share/shared_libs/ echo "Installed shared lib: $file" fi done # Install LogViewer executable if [ -f "$SHARED_DIR/logviewer.py" ]; then - cp -f "$SHARED_DIR/logviewer.py" /usr/lib/python3/dist-packages/shared_libs/ - chmod 755 /usr/lib/python3/dist-packages/shared_libs/logviewer.py + cp -f "$SHARED_DIR/logviewer.py" /usr/local/share/shared_libs/ + chmod 755 /usr/local/share/shared_libs/logviewer.py echo "Installed logviewer.py (executable)" fi @@ -772,7 +271,7 @@ EOF echo "Created LogViewer desktop file" # Create symlink for LogViewer -ln -sf /usr/lib/python3/dist-packages/shared_libs/logviewer.py /usr/local/bin/logviewer +ln -sf /usr/local/share/shared_libs/logviewer.py /usr/local/bin/logviewer echo "Created LogViewer symlink" # Install language files if available @@ -800,7 +299,7 @@ echo "LogViewer installation completed!" # Make script executable os.chmod(script_file.name, 0o755) - self.log(f"Created install script: {script_file.name}") + self.log(_(f"Created install script: {script_file.name}")) # Execute with pkexec result = subprocess.run( @@ -820,12 +319,12 @@ echo "LogViewer installation completed!" os.unlink(script_file.name) if result.returncode != 0: - raise Exception(f"Installation script failed: {result.stderr}") + raise Exception(_(f"Installation script failed: {result.stderr}")) except subprocess.TimeoutExpired: - raise Exception("Installation timed out") + raise Exception(_("Installation timed out")) except subprocess.CalledProcessError as e: - raise Exception(f"Installation script failed: {e}") + raise Exception(_(f"Installation script failed: {e}")) def update_progress(self, message): if self.progress_callback: @@ -853,10 +352,10 @@ class UninstallationManager: raise Exception(f"Unknown project: {project_key}") if not self.app_manager.is_installed(project_key): - raise Exception(f"{project_info['name']} is not installed.") + raise Exception(_(f"{project_info['name']} is not installed.")) - self.update_progress(f"Uninstalling {project_info['name']}...") - self.log(f"=== Uninstalling {project_info['name']} ===") + self.update_progress(_(f"Uninstalling {project_info['name']}...")) + self.log(_(f"=== Uninstalling {project_info['name']} ===")) try: # Create uninstallation script @@ -865,12 +364,12 @@ class UninstallationManager: # Execute uninstallation self._execute_uninstall_script(script_content) - self.update_progress(f"{project_info['name']} uninstalled successfully!") - self.log(f"=== {project_info['name']} uninstalled successfully ===") + self.update_progress(_(f"{project_info['name']} uninstalled successfully!")) + self.log(_(f"=== {project_info['name']} uninstalled successfully ===")) except Exception as e: - self.log(f"ERROR: Uninstallation failed: {e}") - raise Exception(f"Uninstallation failed: {e}") + self.log(_(f"ERROR: Uninstallation failed: {e}")) + raise Exception(_(f"Uninstallation failed: {e}")) def _create_uninstall_script(self, project_key): """Create uninstallation script based on project""" @@ -879,7 +378,7 @@ class UninstallationManager: elif project_key == "logviewer": return self._create_logviewer_uninstall_script() else: - raise Exception(f"Unknown project: {project_key}") + raise Exception(_(f"Unknown project: {project_key}")) def _create_wirepy_uninstall_script(self): """Create Wire-Py uninstallation script""" @@ -900,7 +399,7 @@ rm -f /usr/local/bin/wirepy echo "Removed wirepy symlink" # Remove config -rm -f /usr/lib/python3/dist-packages/shared_libs/wp_app_config.py +rm -f /usr/local/share/shared_libs/wp_app_config.py echo "Removed wp_app_config.py" # Remove desktop file @@ -934,11 +433,11 @@ if [ ! -f /usr/local/bin/logviewer ] || [ ! -L /usr/local/bin/logviewer ]; then # Remove shared libs for file in common_tools.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py logviewer.py; do - rm -f /usr/lib/python3/dist-packages/shared_libs/$file + rm -f /usr/local/share/shared_libs/$file done # Try to remove shared_libs directory if empty - rmdir /usr/lib/python3/dist-packages/shared_libs 2>/dev/null || true + rmdir /usr/local/share/shared_libs 2>/dev/null || true else echo "LogViewer still installed, keeping shared resources" fi @@ -984,19 +483,19 @@ if [ ! -f /usr/local/bin/wirepy ] || [ ! -L /usr/local/bin/wirepy ]; then # Remove shared libs (but keep logviewer.py if we're only uninstalling logviewer) for file in common_tools.py file_and_dir_ensure.py gitea.py __init__.py logview_app_config.py; do - rm -f /usr/lib/python3/dist-packages/shared_libs/$file + rm -f /usr/local/share/shared_libs/$file done # Remove logviewer.py last - rm -f /usr/lib/python3/dist-packages/shared_libs/logviewer.py + rm -f /usr/local/share/shared_libs/logviewer.py # Try to remove shared_libs directory if empty - rmdir /usr/lib/python3/dist-packages/shared_libs 2>/dev/null || true + rmdir /usr/local/share/shared_libs 2>/dev/null || true else echo "Wire-Py still installed, keeping shared resources" # Only remove logviewer-specific files - rm -f /usr/lib/python3/dist-packages/shared_libs/logview_app_config.py - rm -f /usr/lib/python3/dist-packages/shared_libs/logviewer.py + rm -f /usr/local/share/shared_libs/logview_app_config.py + rm -f /usr/local/share/shared_libs/logviewer.py fi echo "LogViewer uninstallation completed!" @@ -1014,7 +513,7 @@ echo "LogViewer uninstallation completed!" # Make script executable os.chmod(script_file.name, 0o755) - self.log(f"Created uninstall script: {script_file.name}") + self.log(_(f"Created uninstall script: {script_file.name}")) # Execute with pkexec result = subprocess.run( @@ -1034,12 +533,12 @@ echo "LogViewer uninstallation completed!" os.unlink(script_file.name) if result.returncode != 0: - raise Exception(f"Uninstallation script failed: {result.stderr}") + raise Exception(_(f"Uninstallation script failed: {result.stderr}")) except subprocess.TimeoutExpired: - raise Exception("Uninstallation timed out") + raise Exception(_("Uninstallation timed out")) except subprocess.CalledProcessError as e: - raise Exception(f"Uninstallation script failed: {e}") + raise Exception(_(f"Uninstallation script failed: {e}")) def update_progress(self, message): if self.progress_callback: @@ -1050,6 +549,32 @@ echo "LogViewer uninstallation completed!" self.log_callback(message) +class DownloadManager: + @staticmethod + def download_and_extract(url, extract_to, progress_callback=None): + """Download and extract ZIP file""" + try: + if progress_callback: + progress_callback(_(f"Downloading from {url}...")) + + with tempfile.NamedTemporaryFile(suffix=".zip", delete=False) as tmp_file: + urllib.request.urlretrieve(url, tmp_file.name) + + if progress_callback: + progress_callback(_("Extracting files...")) + + with zipfile.ZipFile(tmp_file.name, "r") as zip_ref: + zip_ref.extractall(extract_to) + + os.unlink(tmp_file.name) + return True + + except Exception as e: + if progress_callback: + progress_callback(_(f"Download failed: {str(e)}")) + return False + + class LXToolsGUI: def __init__(self): self.root = None @@ -1061,7 +586,6 @@ class LXToolsGUI: self.project_frames = {} self.status_labels = {} self.version_labels = {} - # Managers self.app_manager = AppManager() self.installation_manager = InstallationManager( @@ -1073,7 +597,7 @@ class LXToolsGUI: self.uninstallation_manager = UninstallationManager( self.app_manager, self.update_progress, self.log_message ) - self.image_manager = ImageManager() + self.image_manager = Image() # Detect OS self.detected_os = OSDetector.detect_os() @@ -1094,9 +618,11 @@ class LXToolsGUI: self.root = tk.Tk() self.root.title(f"{LXToolsAppConfig.APP_NAME} v{LXToolsAppConfig.VERSION}") self.root.geometry( - f"{LXToolsAppConfig.WINDOW_WIDTH}x{LXToolsAppConfig.WINDOW_HEIGHT}" + f"{LXToolsAppConfig.WINDOW_WIDTH}x{LXToolsAppConfig.WINDOW_HEIGHT}+100+100" + ) + Center.center_window_cross_platform( + self.root, LXToolsAppConfig.WINDOW_WIDTH, LXToolsAppConfig.WINDOW_HEIGHT ) - self.root.configure(bg=self.colors["bg"]) # Try to set icon @@ -1107,7 +633,7 @@ class LXToolsGUI: except: pass self.root.minsize(LXToolsAppConfig.WINDOW_WIDTH, LXToolsAppConfig.WINDOW_HEIGHT) - ThemeManager.apply_light_theme(self.root) + Theme.apply_light_theme(self.root) # Create header self._create_header() @@ -1141,19 +667,19 @@ class LXToolsGUI: content = tk.Frame(header_frame, bg="#2c3e50") content.pack(fill="both", expand=True, padx=15, pady=12) - # LINKE SEITE: Icon + App Info + # LEFT SIDE: Icon + App Info left_side = tk.Frame(content, bg="#2c3e50") left_side.pack(side="left", anchor="w") icon_text_frame = tk.Frame(left_side, bg="#2c3e50") icon_text_frame.pack(anchor="w") - # Werkzeug-Icon + # Tool-Icon tk.Label( icon_text_frame, text="🔧", font=("Helvetica", 18), bg="#2c3e50", fg="white" ).pack(side="left", padx=(0, 8)) - # App Name und Version + # App Name and Version text_frame = tk.Frame(icon_text_frame, bg="#2c3e50") text_frame.pack(side="left") @@ -1168,13 +694,13 @@ class LXToolsGUI: tk.Label( text_frame, - text=f"v {LXToolsAppConfig.VERSION} • Linux Application Installer", + text=f"v {LXToolsAppConfig.VERSION} • Linux App Installer", font=("Helvetica", 9), fg="#bdc3c7", bg="#2c3e50", ).pack(anchor="w") - # RECHTE SEITE: System + Dynamischer Status + # RIGHT SIDE: System + Dynamic Status right_side = tk.Frame(content, bg="#2c3e50") right_side.pack(side="right", anchor="e") @@ -1186,13 +712,13 @@ class LXToolsGUI: bg="#2c3e50", ).pack(anchor="e") - # DYNAMISCHER Status (anfangs leer) + # DYNAMIC Status (begin empty) self.header_status_label = tk.Label( - right_side, text="", font=("Helvetica", 10), bg="#2c3e50" # Anfangs leer + right_side, text="", font=("Helvetica", 10), bg="#2c3e50" # begin empty ) self.header_status_label.pack(anchor="e", pady=(2, 0)) - # Trennlinie + # Separator separator = tk.Frame(self.root, height=1, bg="#34495e") separator.pack(fill="x", pady=0) @@ -1208,18 +734,18 @@ class LXToolsGUI: repo_ok = NetworkChecker.check_repository_access() if internet_ok and repo_ok: - self.update_header_status("Ready for installation", "#1abc9c") # Grün + self.update_header_status(_("Ready for installation"), "#1abc9c") # Green elif not internet_ok: - self.update_header_status("No internet connection", "#e74c3c") # Rot + self.update_header_status(_("No internet connection"), "#e74c3c") # Red elif not repo_ok: - self.update_header_status("Repository unavailable", "#f39c12") # Orange + self.update_header_status(_("Repository unavailable"), "#f39c12") # Orange else: - self.update_header_status("System checking...", "#3498db") # Blau + self.update_header_status(_("System checking..."), "#3498db") # Blue def _create_projects_tab(self): """Create projects tab with project cards""" projects_frame = ttk.Frame(self.notebook) - self.notebook.add(projects_frame, text="Projects") + self.notebook.add(projects_frame, text=_("Applications")) # Scrollable frame canvas = tk.Canvas(projects_frame, bg=self.colors["bg"]) @@ -1415,7 +941,7 @@ class LXToolsGUI: def _create_log_tab(self): """Create log tab""" log_frame = ttk.Frame(self.notebook) - self.notebook.add(log_frame, text="Installation Log") + self.notebook.add(log_frame, text=_("Installation Log")) # Log text with scrollbar log_container = tk.Frame(log_frame) @@ -1445,7 +971,7 @@ class LXToolsGUI: # Clear log button clear_log_btn = ttk.Button( - log_controls, text="Clear Log", command=self.clear_log + log_controls, text=_("Clear Log"), command=self.clear_log ) clear_log_btn.pack(side="right") @@ -1453,14 +979,14 @@ class LXToolsGUI: self.log_message( f"=== {LXToolsAppConfig.APP_NAME} v {LXToolsAppConfig.VERSION} ===" ) - self.log_message(f"Working directory: {LXToolsAppConfig.WORK_DIR}") - self.log_message(f"Icons directory: {LXToolsAppConfig.ICONS_DIR}") - self.log_message(f"Detected OS: {self.detected_os}") - self.log_message("Ready for installation...") + self.log_message(_(f"Working directory: {LXToolsAppConfig.WORK_DIR}")) + self.log_message(_(f"Icons directory: {LXToolsAppConfig.ICONS_DIR}")) + self.log_message(_(f"Detected OS: {self.detected_os}")) + self.log_message(_("Ready for installation...")) def _create_progress_section(self): """Create progress section with download icon""" - progress_frame = ttk.LabelFrame(self.root, text="Progress", padding=10) + progress_frame = ttk.LabelFrame(self.root, text=_("Progress"), padding=10) progress_frame.pack(fill="x", padx=15, pady=10) # Container for Icon and Progress @@ -1474,7 +1000,7 @@ class LXToolsGUI: # Progress Text (right, expandable) self.progress_label = tk.Label( progress_container, - text="Ready for installation...", + text=_("Ready for installation..."), font=("Helvetica", 10), fg="blue", anchor="w", @@ -1518,7 +1044,7 @@ class LXToolsGUI: # Create buttons install_btn = ttk.Button( button_frame, - text="Install/Update", + text=_("Install/Update"), command=self.install_selected, style="Install.TButton", padding=8, @@ -1527,7 +1053,7 @@ class LXToolsGUI: uninstall_btn = ttk.Button( button_frame, - text="Uninstall", + text=_("Uninstall"), command=self.uninstall_selected, style="Uninstall.TButton", padding=8, @@ -1536,7 +1062,7 @@ class LXToolsGUI: refresh_btn = ttk.Button( button_frame, - text="Refresh Status", + text=_("Refresh Status"), command=self.refresh_status, style="Refresh.TButton", padding=8, @@ -1585,23 +1111,23 @@ class LXToolsGUI: def refresh_status(self): """Refresh application status and version information""" - self.update_progress("Refreshing status and checking versions...") + self.update_progress(_("Refreshing status and checking versions...")) self._reset_download_icon() - self.log_message("=== Refreshing Status ===") + self.log_message(_("=== Refreshing Status ===")) self.root.focus_set() for project_key, project_info in self.app_manager.get_all_projects().items(): status_label = self.status_labels[project_key] version_label = self.version_labels[project_key] - self.log_message(f"Checking {project_info['name']}...") + self.log_message(_(f"Checking {project_info['name']}...")) if self.app_manager.is_installed(project_key): installed_version = self.app_manager.get_installed_version(project_key) status_label.config( - text=f"✅ Installed ({installed_version})", fg="green" + text=_(f"✅ Installed ({installed_version})"), fg="green" ) self.log_message( - f"{project_info['name']}: Installed {installed_version}" + _(f"{project_info['name']}: Installed {installed_version}") ) # Get latest version from API @@ -1610,11 +1136,15 @@ class LXToolsGUI: if latest_version != "Unknown": if installed_version != f"v. {latest_version}": version_label.config( - text=f"Latest: v. {latest_version} (Update available)", + text=_( + f"Latest: v. {latest_version} (Update available)" + ), fg="orange", ) self.log_message( - f"{project_info['name']}: Update available v. {latest_version}" + _( + f"{project_info['name']}: Update available v. {latest_version}" + ) ) else: version_label.config( @@ -1634,135 +1164,116 @@ class LXToolsGUI: ) else: status_label.config(text="❌ Not installed", fg="red") - self.log_message(f"{project_info['name']}: Not installed") + self.log_message(_(f"{project_info['name']}: Not installed")) # Still show latest available version try: latest_version = self.app_manager.get_latest_version(project_key) if latest_version != "Unknown": version_label.config( - text=f"Available: v {latest_version}", fg="blue" + text=_(f"Available: v {latest_version}"), fg="blue" ) self.log_message( - f"{project_info['name']}: Available v {latest_version}" + _(f"{project_info['name']}: Available v {latest_version}") ) else: - version_label.config(text="Available: Unknown", fg="gray") + version_label.config(text=_("Available: Unknown"), fg="gray") except Exception as e: - version_label.config(text="Available: Check failed", fg="gray") + version_label.config(text=_("Available: Check failed"), fg="gray") self.log_message( - f"{project_info['name']}: Version check failed: {e}" + _(f"{project_info['name']}: Version check failed: {e}") ) - self.update_progress("Status refresh completed.") - self.log_message("=== Status refresh completed ===") + self.update_progress(_("Status refresh completed.")) + self.log_message(_("=== Status refresh completed ===")) self.check_ready_status() def install_selected(self): """Handle install button click""" if not self.selected_project: - messagebox.showwarning("Warning", "Please select a project to install.") + MessageDialog("error", _("Please select a project to install.")) + self.root.focus_set() return # Check internet connection if not NetworkChecker.check_internet_connection(): self.update_download_icon("error") - messagebox.showerror( - "Network Error", - "No internet connection available.\nPlease check your network connection.", + MessageDialog( + "error", + _( + "Network Error", + "No internet connection available.\nPlease check your network connection.", + ), ) + self.root.focus_set() return if not NetworkChecker.check_repository_access(): self.update_download_icon("error") - messagebox.showerror( - "Repository Error", "Cannot access repository.\nPlease try again later." + MessageDialog( + "error", + _( + "Repository Error", + "Cannot access repository.\nPlease try again later.", + ), ) + self.root.focus_set() return - self.root.focus_set() # Reset download icon self._reset_download_icon() project_info = self.app_manager.get_project_info(self.selected_project) - # Check if already installed - if self.app_manager.is_installed(self.selected_project): - installed_version = self.app_manager.get_installed_version( - self.selected_project - ) - latest_version = self.app_manager.get_latest_version(self.selected_project) - - dialog_text = ( - f"{project_info['name']} is already installed.\n\n" - f"Installed version: {installed_version}\n" - f"Latest version: v {latest_version}\n\n" - f"YES = Update (reinstall all files)\n" - f"NO = Uninstall\n" - f"Cancel = Do nothing" - ) - - result = messagebox.askyesnocancel( - f"{project_info['name']} already installed", dialog_text - ) - - if result is None: # Cancel - self.update_progress("Installation cancelled.") - return - elif not result: # Uninstall - self.uninstall_selected() - return - else: # Update - self.update_progress("Updating application...") - try: self.update_download_icon("downloading") self.installation_manager.install_project(self.selected_project) self.update_download_icon("success") - messagebox.showinfo( - "Success", - f"{project_info['name']} has been successfully installed/updated.", + MessageDialog( + "info", + _(f"{project_info['name']} has been successfully installed/updated."), ) self.refresh_status() except Exception as e: self.update_download_icon("error") - messagebox.showerror("Error", f"Installation failed: {e}") + MessageDialog("error", _(f"{e}")) + + self.root.focus_set() def uninstall_selected(self): """Handle uninstall button click""" + if not self.selected_project: - messagebox.showwarning("Warning", "Please select a project to uninstall.") + MessageDialog("error", _("Please select a project to uninstall.")) + self.root.focus_set() return project_info = self.app_manager.get_project_info(self.selected_project) if not self.app_manager.is_installed(self.selected_project): - messagebox.showinfo("Info", f"{project_info['name']} is not installed.") - return - - result = messagebox.askyesno( - "Confirm Uninstall", - f"Are you sure you want to uninstall {project_info['name']}?\n\n" - f"This will remove all application files and user configurations.", - ) - if not result: + MessageDialog("error", _(f"{project_info['name']} is not installed.")) + self.root.focus_set() return try: self.uninstallation_manager.uninstall_project(self.selected_project) - messagebox.showinfo( - "Success", f"{project_info['name']} has been successfully uninstalled." + MessageDialog( + "info", + _( + f"{project_info['name']} has been successfully uninstalled.", + ), ) self.refresh_status() + self.root.focus_set() except Exception as e: - messagebox.showerror("Error", f"Uninstallation failed: {e}") - self.root.focus_set() + MessageDialog("error", _(f"Uninstallation failed: {e}")) + self.root.focus_set() def update_progress(self, message): """Update progress message""" if self.progress_label: self.progress_label.config(text=message) self.progress_label.update() - print(f"Progress: {message}") + print(_(f"Progress: {message}")) def log_message(self, message): """Add message to log""" @@ -1772,13 +1283,13 @@ class LXToolsGUI: self.log_text.insert(tk.END, log_entry) self.log_text.see(tk.END) self.log_text.update() - print(f"Log: {message}") + print(_(f"Log: {message}")) def clear_log(self): """Clear the log""" if self.log_text: self.log_text.delete(1.0, tk.END) - self.log_message("Log cleared") + self.log_message(_("Log cleared")) def run(self): """Start the GUI application""" @@ -1786,67 +1297,24 @@ class LXToolsGUI: root.mainloop() -def check_and_install_tkinter(): - """Check if tkinter is available and install if needed""" - if not OSDetector.check_tkinter_available(): - print("TKinter is not available on this system.") - detected_os = OSDetector.detect_os() - print(f"Detected OS: {detected_os}") - - response = input("Would you like to install TKinter? (y/n): ").lower().strip() - if response in ["y", "yes"]: - print("Installing TKinter...") - if OSDetector.install_tkinter(): - print("TKinter installed successfully!") - print("Please restart the application.") - return False - else: - print("Failed to install TKinter.") - print("Please install TKinter manually:") - - if detected_os in ["Ubuntu", "Debian", "Linux Mint", "Pop!_OS"]: - print("sudo apt update && sudo apt install python3-tk") - elif detected_os == "Fedora": - print("sudo dnf install tkinter") - elif detected_os in [ - "Arch Linux", - "Manjaro", - "Garuda Linux", - "EndeavourOS", - ]: - print("sudo pacman -S tk") - elif "SUSE" in detected_os or "openSUSE" in detected_os: - print("sudo zypper install python3-tk") - else: - print("Please check your distribution's package manager.") - - return False - else: - print("TKinter is required to run this application.") - return False - - return True - - def main(): """Main function to start the application""" print(f"=== {LXToolsAppConfig.APP_NAME} v {LXToolsAppConfig.VERSION} ===") - print(f"Working directory: {os.getcwd()}") - - # Check and install tkinter if needed - if not check_and_install_tkinter(): - return + print(_(f"Working directory: {os.getcwd()}")) try: # Create and run the GUI app = LXToolsGUI() + app.run() except KeyboardInterrupt: - print("\nApplication interrupted by user.") + print(_("\nApplication interrupted by user.")) except Exception as e: - print(f"Fatal error: {e}") + print(_(f"Fatal error: {e}")) try: - messagebox.showerror("Fatal Error", f"Application failed to start: {e}") + MessageDialog( + "error", _("Fatal Error", f"Application failed to start: {e}") + ) except: pass diff --git a/manager.py b/manager.py new file mode 100644 index 0000000..6448fa4 --- /dev/null +++ b/manager.py @@ -0,0 +1,493 @@ +import locale +import gettext +import tkinter as tk +from pathlib import Path +from tkinter import ttk +import os +import subprocess +import stat +from network import GiteaUpdate + + +class LXToolsAppConfig: + VERSION = "1.1.4" + APP_NAME = "Lunix Tools Installer" + WINDOW_WIDTH = 450 + WINDOW_HEIGHT = 580 + + # Working directory + WORK_DIR = os.getcwd() + ICONS_DIR = os.path.join(WORK_DIR, "lx-icons") + THEMES_DIR = os.path.join(WORK_DIR, "TK-Themes") + + # Locale settings + LOCALE_DIR = Path("/usr/share/locale/") + + # Download URLs + WIREPY_URL = "https://git.ilunix.de/punix/Wire-Py/archive/main.zip" + SHARED_LIBS_URL = "https://git.ilunix.de/punix/shared_libs/archive/main.zip" + + # API URLs for version checking + WIREPY_API_URL = "https://git.ilunix.de/api/v1/repos/punix/Wire-Py/releases" + SHARED_LIBS_API_URL = ( + "https://git.ilunix.de/api/v1/repos/punix/shared_libs/releases" + ) + + # Project configurations + PROJECTS = { + "wirepy": { + "name": "Wire-Py", + "description": "WireGuard VPN Manager with GUI", + "download_url": WIREPY_URL, + "api_url": WIREPY_API_URL, + "icon_key": "icon_vpn", + "main_executable": "wirepy.py", + "symlink_name": "wirepy", + "config_file": "wp_app_config.py", + "desktop_file": "Wire-Py.desktop", + "policy_file": "org.sslcrypt.policy", + "requires_ssl": True, + }, + "logviewer": { + "name": "LogViewer", + "description": "System Log Viewer with GUI", + "download_url": SHARED_LIBS_URL, + "api_url": SHARED_LIBS_API_URL, + "icon_key": "icon_log", + "main_executable": "logviewer.py", + "symlink_name": "logviewer", + "config_file": "logview_app_config.py", + "desktop_file": "LogViewer.desktop", + "policy_file": None, + "requires_ssl": False, + }, + } + + # OS Detection List (order matters - specific first, generic last) + OS_DETECTION = [ + ("mint", "Linux Mint"), + ("pop", "Pop!_OS"), + ("manjaro", "Manjaro"), + ("garuda", "Garuda Linux"), + ("endeavouros", "EndeavourOS"), + ("fedora", "Fedora"), + ("tumbleweed", "SUSE Tumbleweed"), + ("leap", "SUSE Leap"), + ("arch", "Arch Linux"), + ("ubuntu", "Ubuntu"), + ("debian", "Debian"), + ] + + # Package manager commands for TKinter installation + TKINTER_INSTALL_COMMANDS = { + "Ubuntu": ["apt", "update", "&&", "apt", "install", "-y", "python3-tk"], + "Debian": ["apt", "update", "&&", "apt", "install", "-y", "python3-tk"], + "Linux Mint": ["apt", "update", "&&", "apt", "install", "-y", "python3-tk"], + "Pop!_OS": ["apt", "update", "&&", "apt", "install", "-y", "python3-tk"], + "Fedora": ["dnf", "install", "-y", "tkinter"], + "Arch Linux": ["pacman", "-S", "--noconfirm", "tk"], + "Manjaro": ["pacman", "-S", "--noconfirm", "tk"], + "Garuda Linux": ["pacman", "-S", "--noconfirm", "tk"], + "EndeavourOS": ["pacman", "-S", "--noconfirm", "tk"], + "SUSE Tumbleweed": ["zypper", "install", "-y", "python314-tk"], + "SUSE Leap": ["zypper", "install", "-y", "python312-tk"], + } + + @staticmethod + def setup_translations(): + """Initialize translations and set the translation function""" + try: + locale.bindtextdomain( + LXToolsAppConfig.APP_NAME, LXToolsAppConfig.LOCALE_DIR + ) + gettext.bindtextdomain( + LXToolsAppConfig.APP_NAME, LXToolsAppConfig.LOCALE_DIR + ) + gettext.textdomain(LXToolsAppConfig.APP_NAME) + except: + pass + return gettext.gettext + + +# Initialize translations +_ = LXToolsAppConfig.setup_translations() + + +class OSDetector: + @staticmethod + def detect_os(): + """Detect operating system using ordered list""" + try: + with open("/etc/os-release", "r") as f: + content = f.read().lower() + + # Check each OS in order (specific first) + for keyword, os_name in LXToolsAppConfig.OS_DETECTION: + if keyword in content: + return os_name + + return "Unknown System" + except FileNotFoundError: + return "File not found" + + @staticmethod + def check_tkinter_available(): + """Check if tkinter is available""" + try: + import tkinter + + return True + except ImportError: + return False + + @staticmethod + def install_tkinter(): + """Install tkinter based on detected OS""" + detected_os = OSDetector.detect_os() + + if detected_os in LXToolsAppConfig.TKINTER_INSTALL_COMMANDS: + commands = LXToolsAppConfig.TKINTER_INSTALL_COMMANDS[detected_os] + + print(f"Installing tkinter for {detected_os}...") + print(_(f"Command: {' '.join(commands)}")) + + try: + # Use pkexec for privilege escalation + full_command = ["pkexec", "bash", "-c", " ".join(commands)] + result = subprocess.run( + full_command, capture_output=True, text=True, timeout=300 + ) + + if result.returncode == 0: + print(_("TKinter installation completed successfully!")) + return True + else: + print(_(f"TKinter installation failed: {result.stderr}")) + return False + + except subprocess.TimeoutExpired: + print(_("TKinter installation timed out")) + return False + except Exception as e: + print(_(f"Error installing tkinter: {e}")) + return False + else: + print(_(f"No tkinter installation command defined for {detected_os}")) + return False + + +class Theme: + @staticmethod + def apply_light_theme(root): + """Apply light theme""" + try: + theme_dir = LXToolsAppConfig.THEMES_DIR + water_theme_path = os.path.join(theme_dir, "water.tcl") + + if os.path.exists(water_theme_path): + try: + root.tk.call("source", water_theme_path) + root.tk.call("set_theme", "light") + return True + except tk.TclError: + pass + + # System theme fallback + try: + style = ttk.Style() + if "clam" in style.theme_names(): + style.theme_use("clam") + return True + except: + pass + + except Exception: + pass + + return False + + +class System: + @staticmethod + def create_directories(directories): + """Create system directories using pkexec""" + for directory in directories: + subprocess.run(["pkexec", "mkdir", "-p", directory], check=True) + + @staticmethod + def copy_file(src, dest, make_executable=False): + """Copy file using pkexec""" + subprocess.run(["pkexec", "cp", src, dest], check=True) + if make_executable: + subprocess.run(["pkexec", "chmod", "755", dest], check=True) + + @staticmethod + def copy_directory(src, dest): + """Copy directory using pkexec""" + subprocess.run(["pkexec", "cp", "-r", src, dest], check=True) + + @staticmethod + def remove_file(path): + """Remove file using pkexec""" + subprocess.run(["pkexec", "rm", "-f", path], check=False) + + @staticmethod + def remove_directory(path): + """Remove directory using pkexec""" + subprocess.run(["pkexec", "rm", "-rf", path], check=False) + + @staticmethod + def create_symlink(target, link_name): + """Create symbolic link using pkexec""" + subprocess.run(["pkexec", "rm", "-f", link_name], check=False) + subprocess.run(["pkexec", "ln", "-sf", target, link_name], check=True) + + @staticmethod + def create_ssl_key(pem_file): + """Create SSL key using pkexec""" + try: + subprocess.run( + ["pkexec", "openssl", "genrsa", "-out", pem_file, "4096"], check=True + ) + subprocess.run(["pkexec", "chmod", "600", pem_file], check=True) + return True + except subprocess.CalledProcessError: + return False + + +class Image: + def __init__(self): + self.images = {} + + def load_image(self, image_key, fallback_paths=None): + """Load PNG image using tk.PhotoImage with fallback options""" + if image_key in self.images: + return self.images[image_key] + + # Define image paths based on key + image_paths = { + "app_icon": [ + "./lx-icons/48/wg_vpn.png", + "/usr/share/icons/lx-icons/48/wg_vpn.png", + ], + "download_icon": [ + "./lx-icons/32/download.png", + "/usr/share/icons/lx-icons/32/download.png", + ], + "download_error_icon": [ + "./lx-icons/32/download_error.png", + "/usr/share/icons/lx-icons/32/download_error.png", + ], + "success_icon": [ + "./lx-icons/32/download.png", + "/usr/share/icons/lx-icons/32/download.png", + ], + "icon_vpn": [ + "./lx-icons/48/wg_vpn.png", + "/usr/share/icons/lx-icons/48/wg_vpn.png", + ], + "icon_log": [ + "./lx-icons/48/log.png", + "/usr/share/icons/lx-icons/48/log.png", + ], + } + + # Get paths to try + paths_to_try = image_paths.get(image_key, []) + + # Add fallback paths if provided + if fallback_paths: + paths_to_try.extend(fallback_paths) + + # Try to load image from paths + for path in paths_to_try: + try: + if os.path.exists(path): + photo = tk.PhotoImage(file=path) + self.images[image_key] = photo + return photo + except tk.TclError as e: + print(_(f"Failed to load image from {path}: {e}")) + continue + + # Return None if no image found + return None + + +class AppManager: + def __init__(self): + self.projects = LXToolsAppConfig.PROJECTS + + def get_project_info(self, project_key): + """Get project information by key""" + return self.projects.get(project_key) + + def get_all_projects(self): + """Get all project configurations""" + return self.projects + + def is_installed(self, project_key): + """Check if project is installed with better detection""" + if project_key == "wirepy": + # Check for wirepy symlink + return os.path.exists("/usr/local/bin/wirepy") and os.path.islink( + "/usr/local/bin/wirepy" + ) + + elif project_key == "logviewer": + # Check for logviewer symlink AND executable file + symlink_exists = os.path.exists("/usr/local/bin/logviewer") + executable_exists = os.path.exists( + "/usr/local/share/shared_libs/logviewer.py" + ) + executable_is_executable = False + + if executable_exists: + try: + # Check if file is executable + file_stat = os.stat("/usr/local/share/shared_libs/logviewer.py") + executable_is_executable = bool(file_stat.st_mode & stat.S_IEXEC) + except: + executable_is_executable = False + + # LogViewer is installed if symlink exists AND executable file exists AND is executable + is_installed = ( + symlink_exists and executable_exists and executable_is_executable + ) + + # Debug logging + print(_("LogViewer installation check:")) + print(_(f" Symlink exists: {symlink_exists}")) + print(_(f" Executable exists: {executable_exists}")) + print(_(f" Is executable: {executable_is_executable}")) + print(_(f" Final result: {is_installed}")) + + return is_installed + + return False + + def get_installed_version(self, project_key): + """Get installed version from config file""" + try: + if project_key == "wirepy": + config_file = "/usr/local/share/shared_libs/wp_app_config.py" + elif project_key == "logviewer": + config_file = "/usr/local/share/shared_libs/logview_app_config.py" + else: + return "Unknown" + + if os.path.exists(config_file): + with open(config_file, "r") as f: + content = f.read() + for line in content.split("\n"): + if "VERSION" in line and "=" in line: + version = line.split("=")[1].strip().strip("\"'") + return version + return "Unknown" + except Exception as e: + print(_(f"Error getting version for {project_key}: {e}")) + return "Unknown" + + def get_latest_version(self, project_key): + """Get latest version from API""" + project_info = self.get_project_info(project_key) + if not project_info: + return "Unknown" + + return GiteaUpdate.api_down(project_info["api_url"]) + + def check_other_apps_installed(self, exclude_key): + """Check if other apps are still installed""" + return any( + self.is_installed(key) for key in self.projects.keys() if key != exclude_key + ) + + +class Center: + @staticmethod + def center_window_cross_platform(window, width, height): + """ + Centers a window on the primary monitor in a way that works on both X11 and Wayland + + Args: + window: The tkinter window to center + width: Window width + height: Window height + """ + # Calculate the position before showing the window + + # First attempt: Try to use GDK if available (works on both X11 and Wayland) + try: + import gi + + gi.require_version("Gdk", "3.0") + from gi.repository import Gdk + + display = Gdk.Display.get_default() + monitor = display.get_primary_monitor() or display.get_monitor(0) + geometry = monitor.get_geometry() + scale_factor = monitor.get_scale_factor() + + # Calculate center position on the primary monitor + x = geometry.x + (geometry.width - width // scale_factor) // 2 + y = geometry.y + (geometry.height - height // scale_factor) // 2 + + # Set window geometry + window.geometry(f"{width}x{height}+{x}+{y}") + return + except (ImportError, AttributeError): + pass + + # Second attempt: Try xrandr for X11 + try: + import subprocess + + output = subprocess.check_output( + ["xrandr", "--query"], universal_newlines=True + ) + + # Parse the output to find the primary monitor + primary_info = None + for line in output.splitlines(): + if "primary" in line: + parts = line.split() + for part in parts: + if "x" in part and "+" in part: + primary_info = part + break + break + + if primary_info: + # Parse the geometry: WIDTH x HEIGHT+X+Y + geometry = primary_info.split("+") + dimensions = geometry[0].split("x") + primary_width = int(dimensions[0]) + primary_height = int(dimensions[1]) + primary_x = int(geometry[1]) + primary_y = int(geometry[2]) + + # Calculate center position on the primary monitor + x = primary_x + (primary_width - width) // 2 + y = primary_y + (primary_height - height) // 2 + + # Set window geometry + window.geometry(f"{width}x{height}+{x}+{y}") + return + except (ImportError, IndexError, ValueError): + pass + + # Final fallback: Use standard Tkinter method + screen_width = window.winfo_screenwidth() + screen_height = window.winfo_screenheight() + + # Try to make an educated guess for multi-monitor setups + # If screen width is much larger than height, assume multiple monitors side by side + if ( + screen_width > screen_height * 1.8 + ): # Heuristic for detecting multiple monitors + # Assume the primary monitor is on the left half + screen_width = screen_width // 2 + + x = (screen_width - width) // 2 + y = (screen_height - height) // 2 + window.geometry(f"{width}x{height}+{x}+{y}") diff --git a/message.py b/message.py new file mode 100644 index 0000000..342483b --- /dev/null +++ b/message.py @@ -0,0 +1,384 @@ +import os +from typing import List, Optional, Dict +import tkinter as tk +from tkinter import ttk +from manager import Center + +""" +#################################################### +Attention! MessageDialog returns different values. +From 3 buttons with Cancel, Cancel and the Close (x) +None returns. otherwise always False. +#################################################### +Usage Examples +1. Basic Info Dialog +from tkinter import Tk + +root = Tk() +dialog = MessageDialog( + message_type="info", + text="This is an information message.", + buttons=["OK"], + master=root, +) +result = dialog.show() +print("User clicked OK:", result) + +----------------------------------------------------- +My Favorite Example, +for simply information message: + +MessageDialog(text="This is an information message.") +result = MessageDialog(text="This is an information message.").show() +----------------------------------------------------- +Explanation: if you need the return value e.g. in the vaiable result, +you need to add .show(). otherwise only if no root.mainloop z.b is used to test the window. +##################################################### + +2. Error Dialog with Custom Icon and Command +def on_cancel(): + print("User canceled the operation.") + +root = Tk() +result = MessageDialog( + message_type="error", + text="An error occurred during processing.", + buttons=["Retry", "Cancel"], + commands=[None, on_cancel], + icon="/path/to/custom/error_icon.png", + title="Critical Error" +).show() + +print("User clicked Retry:", result) + +----------------------------------------------------- +My Favorite Example, +for simply Error message: + +MessageDialog( + "error", + text="An error occurred during processing.", +).show() + +##################################################### + +3. Confirmation Dialog with Yes/No Buttons +def on_confirm(): + print("User confirmed the action.") + +root = Tk() +dialog = MessageDialog( + message_type="ask", + text="Are you sure you want to proceed?", + buttons=["Yes", "No"], + commands=[on_confirm, None], # Either use comando or work with the values True and False +) +result = dialog.show() +print("User confirmed:", result) +----------------------------------------------------- + +My Favorite Example, +for simply Question message: + +dialog = MessageDialog( + "ask", + text="Are you sure you want to proceed?", + buttons=["Yes", "No"] + ).show() +##################################################### + +4. Warning Dialog with Custom Title + +root = Tk() +dialog = MessageDialog( + message_type="warning", + text="This action cannot be undone.", + buttons=["Proceed", "Cancel"], + title="Warning: Irreversible Action" +) +result = dialog.show() +print("User proceeded:", result) +----------------------------------------------------- +And a special example for a "open link" button: +Be careful not to forget to import it into the script in which this dialog is used!!! +import webbrowser +from functools import partial + +dialog = MessageDialog( + "ask", + text="Are you sure you want to proceed?", + buttons=["Yes", "Go to Exapmle"], + commands=[ + None, # Default on "OK" + partial(webbrowser.open, "https://exapmle.com"), + ], + icon="/pathh/to/custom/icon.png", + title="Example", +).show() + + +In all dialogues, a font can also be specified as a tuple. With font=("ubuntu", 11) +and wraplength=300, the text is automatically wrapped. +""" + + +class MessageDialog: + """ + A customizable message dialog window using tkinter. + + This class creates modal dialogs for displaying information, warnings, errors, + or questions to the user. It supports multiple button configurations and custom + icons. The dialog is centered on the screen and handles user interactions. + + Attributes: + message_type (str): Type of message ("info", "error", "warning", "ask"). + text (str): Main message content. + buttons (List[str]): List of button labels (e.g., ["OK", "Cancel"]). + result (bool): True if the user clicked a positive button (like "Yes" or "OK"), else False. + icons: Dictionary mapping message types to tkinter.PhotoImage objects. + + Parameters: + message_type: Type of message dialog (default: "info"). + text: Message content to display. + buttons: List of button labels (default: ["OK"]). + master: Parent tkinter window (optional). + commands: List of callables for each button (default: [None]). + icon: Custom icon path (overrides default icons if provided). + title: Window title (default: derived from message_type). + + Methods: + _get_title(): Returns the default window title based on message type. + _load_icons(): Loads icons from system paths or fallback locations. + _on_button_click(button_text): Sets result and closes the dialog. + show(): Displays the dialog and waits for user response (returns self.result). + """ + + DEFAULT_ICON_PATH = "/usr/share/icons/lx-icons" + + def __init__( + self, + message_type: str = "info", + text: str = "", + buttons: List[str] = ["OK"], + master: Optional[tk.Tk] = None, + commands: List[Optional[callable]] = [None], + icon: str = None, + title: str = None, + font: tuple = None, + wraplength: int = None, + ): + self.message_type = message_type or "info" # Default is "info" + self.text = text + self.buttons = buttons + self.master = master + self.result: bool = False # Default is False + + self.icon_path = self._get_icon_path() + self.icon = icon + self.title = title + # Window creation + self.window = tk.Toplevel(master) + self.window.grab_set() + self.window.resizable(False, False) + ttk.Style().configure("TButton", font=("Helvetica", 11), padding=5) + self.buttons_widgets = [] + self.current_button_index = 0 + self._load_icons() + + # Window title and icon + self.window.title(self._get_title() if not self.title else self.title) + self.window.iconphoto(False, self.icons[self.message_type]) + + # Layout + frame = ttk.Frame(self.window) + frame.pack(expand=True, fill="both") + + # Grid-Configuration + frame.grid_rowconfigure(0, weight=1) + frame.grid_columnconfigure(0, weight=1) + frame.grid_columnconfigure(1, weight=3) + + # Icon and Text + icon_label = ttk.Label(frame, image=self.icons[self.message_type]) + pady_value = 5 if self.icon is not None else 15 + icon_label.grid( + row=0, column=0, padx=(20, 10), pady=(pady_value, 15), sticky="nsew" + ) + + text_label = tk.Label( + frame, + text=text, + wraplength=wraplength if wraplength else 300, + justify="left", + anchor="center", + font=font if font else ("Helvetica", 12), + pady=20, + ) + text_label.grid( + row=0, + column=1, + padx=(10, 20), + pady=(8, 20), + sticky="nsew", + ) + + # Create button frame + self.button_frame = ttk.Frame(frame) + self.button_frame.grid(row=1, columnspan=2, pady=(15, 10)) + + for i, btn_text in enumerate(buttons): + if commands and len(commands) > i and commands[i] is not None: + # Button with individual command + btn = ttk.Button( + self.button_frame, + text=btn_text, + command=commands[i], + ) + else: + # Default button set self.result and close window + btn = ttk.Button( + self.button_frame, + text=btn_text, + command=lambda t=btn_text: self._on_button_click(t), + ) + + padx_value = 50 if self.icon is not None and len(buttons) == 2 else 10 + btn.pack(side="left" if i == 0 else "right", padx=padx_value, pady=15) + btn.focus_set() if i == 0 else None # Set focus on first button + self.buttons_widgets.append(btn) + + self.window.bind("", lambda event: self._on_enter_pressed()) + self.window.bind("", lambda event: self._navigate_left()) + self.window.bind("", lambda event: self._navigate_right()) + self.window.update_idletasks() + self.window.attributes("-alpha", 0.0) # 100% Transparencence + self.window.after(200, lambda: self.window.attributes("-alpha", 100.0)) + self.window.update() # Window update before centering! + Center.center_window_cross_platform( + self.window, self.window.winfo_width(), self.window.winfo_height() + ) + + # Close Window on Cancel + self.window.protocol( + "WM_DELETE_WINDOW", lambda: self._on_button_click("Cancel") + ) + + def _get_title(self) -> str: + return { + "error": "Error", + "info": "Info", + "ask": "Question", + "warning": "Warning", + }[self.message_type] + + def _load_icons(self): + # Try to load the icon from the provided path + self.icons = {} + icon_paths: Dict[str, str] = { + "error": os.path.join(self.icon_path, "64/error.png"), + "info": os.path.join(self.icon_path, "64/info.png"), + "warning": os.path.join(self.icon_path, "64/warning.png"), + "ask": os.path.join(self.icon_path, "64/question_mark.png"), + } + + fallback_paths: Dict[str, str] = { + "error": "./lx-icons/64/error.png", + "info": "./lx-icons/64/info.png", + "warning": "./lx-icons/64/warning.png", + "ask": "./lx-icons/64/question_mark.png", + } + + for key in icon_paths: + try: + # Check if an individual icon is provided + if ( + self.message_type == key + and self.icon is not None + and os.path.exists(self.icon) + ): + try: + self.icons[key] = tk.PhotoImage(file=self.icon) + except Exception as e: + print( + f"Erro on loading individual icon '{key}': {e}\n", + "Try to use the default icon", + ) + + else: + # Check for standard path + if os.path.exists(icon_paths[key]): + self.icons[key] = tk.PhotoImage(file=icon_paths[key]) + else: + self.icons[key] = tk.PhotoImage(file=fallback_paths[key]) + except Exception as e: + print(f"Error on load Icon '{[key]}': {e}") + self.icons[key] = tk.PhotoImage() + print(f"⚠️ No Icon found for '{key}'. Use standard Tkinter icon.") + + return self.icons + + def _get_icon_path(self) -> str: + """Get the path to the default icon.""" + if os.path.exists(self.DEFAULT_ICON_PATH): + return self.DEFAULT_ICON_PATH + else: + # Fallback to the directory of the script + return os.path.dirname(os.path.abspath(__file__)) + + def _navigate_left(self): + if not self.buttons_widgets: + return + self.current_button_index = (self.current_button_index - 1) % len( + self.buttons_widgets + ) + self.buttons_widgets[self.current_button_index].focus_set() + + def _navigate_right(self): + if not self.buttons_widgets: + return + self.current_button_index = (self.current_button_index + 1) % len( + self.buttons_widgets + ) + self.buttons_widgets[self.current_button_index].focus_set() + + def _on_enter_pressed(self): + focused = self.window.focus_get() + if isinstance(focused, ttk.Button): + focused.invoke() + + def _on_button_click(self, button_text: str) -> None: + """ + Sets `self.result` based on the clicked button. + - Returns `None` if the button is "Cancel", "Abort", or "Exit" **and** there are 3 or more buttons. + - Returns `True` if the button is "Yes", "Ok", "Continue", "Next", or "Start". + - Returns `False` in all other cases (e.g., "No", closing with X, or fewer than 3 buttons). + """ + # Check: If there are 3+ buttons and the button text matches "Cancel", "Abort", or "Exit" + if len(self.buttons) >= 3 and button_text.lower() in [ + "cancel", + "abort", + "exit", + ]: + self.result = None + # Check: Button text is "Yes", "Ok", "Continue", "Next", or "Start" + elif button_text.lower() in ["yes", "ok", "continue", "next", "start"]: + self.result = True + else: + # Fallback for all other cases (e.g., "No", closing with X, or fewer than 3 buttons) + self.result = False + + self.window.destroy() + + def show(self) -> Optional[bool]: + """ + Displays the dialog window and waits for user interaction. + + Returns: + bool or None: + - `True` if "Yes", "Ok", etc. was clicked. + - `False` if "No" was clicked, or the window was closed with X (when there are 2 buttons). + - `None` if "Cancel", "Abort", or "Exit" was clicked **and** there are 3+ buttons, + or the window was closed with X (when there are 3+ buttons). + """ + self.window.wait_window() + return self.result diff --git a/network.py b/network.py new file mode 100644 index 0000000..ba60639 --- /dev/null +++ b/network.py @@ -0,0 +1,40 @@ +import socket +import urllib.request +import json + + +class GiteaUpdate: + @staticmethod + def api_down(url, current_version=""): + """Get latest version from Gitea API""" + try: + with urllib.request.urlopen(url, timeout=10) as response: + data = json.loads(response.read().decode()) + if data and len(data) > 0: + latest_version = data[0].get("tag_name", "Unknown") + return latest_version.lstrip("v") # Remove 'v' prefix if present + return "Unknown" + except Exception as e: + print(f"API Error: {e}") + return "Unknown" + + +class NetworkChecker: + @staticmethod + def check_internet_connection(host="8.8.8.8", port=53, timeout=3): + """Check if internet connection is available""" + try: + socket.setdefaulttimeout(timeout) + socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((host, port)) + return True + except socket.error: + return False + + @staticmethod + def check_repository_access(url="https://git.ilunix.de", timeout=5): + """Check if repository is accessible""" + try: + urllib.request.urlopen(url, timeout=timeout) + return True + except: + return False