From fbb49974b9c78b5250ac2727e75eea74fa54ad21 Mon Sep 17 00:00:00 2001 From: Akatsuki-Misaki Date: Fri, 4 Jul 2025 11:17:25 +0800 Subject: [PATCH] =?UTF-8?q?update:=E7=9B=AE=E5=BD=95=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 171 + __pycache__/Ui_install.cpython-310.pyc | Bin 4617 -> 0 bytes __pycache__/animations.cpython-310.pyc | Bin 5106 -> 0 bytes __pycache__/core.cpython-310.pyc | Bin 8120 -> 0 bytes __pycache__/main_window.cpython-310.pyc | Bin 1157 -> 0 bytes core.py | 254 - main.py | 12 - main_window.py | 28 - {IMG => source/IMG}/After/voaf_ga01.jpg | Bin {IMG => source/IMG}/After/voaf_ga02.jpg | Bin {IMG => source/IMG}/BG/bg1.jpg | Bin {IMG => source/IMG}/BG/bg2.jpg | Bin {IMG => source/IMG}/BG/bg3.jpg | Bin {IMG => source/IMG}/BG/bg4.jpg | Bin {IMG => source/IMG}/BG/menubg.jpg | Bin {IMG => source/IMG}/BTN/exit.bmp | Bin {IMG => source/IMG}/BTN/start_install.bmp | Bin source/IMG/ICO/icon.ico | Bin 0 -> 270622 bytes source/IMG/ICO/icon.png | Bin 0 -> 40924 bytes {IMG => source/IMG}/LOGO/gl_head_logo_jp.png | Bin {IMG => source/IMG}/LOGO/vo01_logo.png | Bin {IMG => source/IMG}/LOGO/vo02_logo.png | Bin {IMG => source/IMG}/LOGO/vo03_logo.png | Bin {IMG => source/IMG}/LOGO/vo04_logo.png | Bin {IMG => source/IMG}/LOGO/voaf_logo.png | Bin {IMG => source/IMG}/vol4/vo04_ga01.jpg | Bin {IMG => source/IMG}/vol4/vo04_ga05.jpg | Bin {IMG => source/IMG}/vol4/vo04_ga06.jpg | Bin {IMG => source/IMG}/vol4/vo04_ga07.jpg | Bin Ui_install.py => source/Ui_install.py | 0 animations.py => source/animations.py | 4 +- install.ui => source/install.ui | 0 source/main.py | 605 ++ source/nuitka-crash-report.xml | 8419 ++++++++++++++++++ source/pic_data.py | 14 + popup.ui => source/popup.ui | 0 source/requirements.txt | 77 + 37 files changed, 9288 insertions(+), 296 deletions(-) create mode 100644 .gitignore delete mode 100644 __pycache__/Ui_install.cpython-310.pyc delete mode 100644 __pycache__/animations.cpython-310.pyc delete mode 100644 __pycache__/core.cpython-310.pyc delete mode 100644 __pycache__/main_window.cpython-310.pyc delete mode 100644 core.py delete mode 100644 main.py delete mode 100644 main_window.py rename {IMG => source/IMG}/After/voaf_ga01.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/After/voaf_ga02.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/BG/bg1.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/BG/bg2.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/BG/bg3.jpg (100%) rename {IMG => source/IMG}/BG/bg4.jpg (100%) rename {IMG => source/IMG}/BG/menubg.jpg (100%) rename {IMG => source/IMG}/BTN/exit.bmp (100%) rename {IMG => source/IMG}/BTN/start_install.bmp (100%) create mode 100644 source/IMG/ICO/icon.ico create mode 100644 source/IMG/ICO/icon.png rename {IMG => source/IMG}/LOGO/gl_head_logo_jp.png (100%) rename {IMG => source/IMG}/LOGO/vo01_logo.png (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/LOGO/vo02_logo.png (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/LOGO/vo03_logo.png (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/LOGO/vo04_logo.png (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/LOGO/voaf_logo.png (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/vol4/vo04_ga01.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/vol4/vo04_ga05.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/vol4/vo04_ga06.jpg (100%) mode change 100755 => 100644 rename {IMG => source/IMG}/vol4/vo04_ga07.jpg (100%) mode change 100755 => 100644 rename Ui_install.py => source/Ui_install.py (100%) rename animations.py => source/animations.py (97%) rename install.ui => source/install.ui (100%) create mode 100644 source/main.py create mode 100644 source/nuitka-crash-report.xml create mode 100644 source/pic_data.py rename popup.ui => source/popup.ui (100%) create mode 100644 source/requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7dbdfee --- /dev/null +++ b/.gitignore @@ -0,0 +1,171 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# PyPI configuration file +.pypirc \ No newline at end of file diff --git a/__pycache__/Ui_install.cpython-310.pyc b/__pycache__/Ui_install.cpython-310.pyc deleted file mode 100644 index c92eb95fdf7314692e70b764448edf7f983b4d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4617 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 diff --git a/__pycache__/animations.cpython-310.pyc b/__pycache__/animations.cpython-310.pyc deleted file mode 100644 index 79876103df74c2e1ab83d300191bd1b07a02cb7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5106 zcmb7I-ESOM6`wm_J06eM_Qr8=Ng>cyuuU7(1`4X&C~4wGfyS}x(1s<|YO;51ue%@4 zo!KO|HYmsmBx#^|pddsLRI9K;ho55YCgN?MuaSXs~MWg};l z&74`bau%a^ddV)Qaw(=A)wsdU%NjQq^qj-32`y`{W4@NPlFay+sLlo=nmbe}mi?$$ ztt7j~$9&M#1o!`2(%pIT2AMT>zB2hq4t_Hxy5a?EuP{IN}G3a z7iEffH%pKApzZK9??u_g`*=S}muGOk9m&A)S}7_{ME+FJK1Eodm0LfmleG`y3D+R% ztghuDXIQK+YN#8sZpykv`zta?1Jb;u&YfE(`ns@J)#tYRT*+I=3*qsH~Bz9|bU^+0PHtMqXTz5P6Mi}u!wo*jIkqo+^y>}>T+8JOEY zMQ6!Kxr1x4&fsX$&4ZFZm-i>5K&8MLrcoi6!SJ4zCFXnp9BX`Ppi?K8Ato?~{m0`~{-;6f_hMl9(p(5lmk^1(7vG zFW!p`iGCXC(N^wL?IcEK2NJzjOnM4IB?2N_Yom;&b6&x(ob$uHY$f(|P@I~MFjn<8 zn|*!@*7-uUGFhBT>~q!9GdP-wMP%dIGpcicv-~p3lr#(~9+`udz@bB!C8*TU+aE^0 zi1Nh>%2FwRCaNS(aG@B;O~pHWY+kgs_>Xd(5=-2d1e% zaQ-pSJ;2nT{r8NUVHsxs)3#kU|LAt!v9G1C0MoaBWG7lcx(R_K0-R>pjK07wvO0?m z&K4PK_QimIvt=F8UVq}EUe~!kq+K*H%h)o*Xpc5xyKcm(MXg)IcwP{ z@7%q9XZ6x|CHyxKy3R3tG}|LmDCOlP_HpSai5mt{lk)(MAZqcTB0%vNCM0ILdM*%P zbuD3YK)`hMy!e7_T@brbW=-)Vikuxt)=bP|6qMEKgb)c6@f1yP>Dr5asW>0dt%r|8 zc!tZ;%rzY5Fc*K1kZiXG(K7GPe|Fnz-_W+{;^B!Jos`P(48&D!M#B~Cy~rZApwUId zU~PHb`i#6xy6QR@Qc813n>4MncHM64u|YXXBhbT5soRXby49}Pvc`a~9&Qb3+#b^2(8Z~`Ig^fiB_b)OaGK-$ zh+r_bKhD%m>f>Dij4P42dhOk{#T$(uyuGsY>kT~KqvHZK_vrXlmFh^YSSR9Ke}JFF zY5}cHKQbL5^d2#Pq{XyFxDd7o$3fj#)UmWNDm=UwT@WAzi4>ReEd>+tDEgB@b;l}B z=i9jJfPy3q!h?7Lg1GCR17T{25X}77{Qhn4ywgPh-7Od%&F&C%ctH-4bOXLeS_y!} zGKIxg{ZcKE;Z>5I*xwpDQsMGllE%D_3{sHeCaDv(=taNqMv|UtCXtFf;kBF}YDIBH zrOqTcE1V9vIEbl&kS&M_#fuQxlyZ>GnMEQ4aehiBvJNg!+AQ&!*C$&Y#*=pY8nhk9 zBMH{lT~I91s>jl($v@p?8H2pZeBh+|*!<`Ir%g9eELoAvd6*V?6`~beV*|h^2O=jh zxpEV@P80Ynwwu650vbDraf)79>=KyK?uJ81YVM45l2%uime&?;tp4=9)!!{PuDqid zR=kA81!co3<`L;pq@xYWNGHBTwO2@xMZ_qH6C@~ym)DRqX-B3%Z9s-wZs)eHqFfgt zx5MfiX#EBhmhng$&%na;mqu8FefMr_-|b!DKP*i!BWs7JAtLfOWHAqC>2^3%2SN&rh@NK*UJ#|FFb@fw<81Zp#ZW43F2Grt;tQw{n6#0$0Gw( z>++ipX7{m8cS`q33@p9pBUFHUN>E;JB`6W1zhYN-l7UYaOG=)MD z=HgRsS1TkL@GAMPIkqcuXS%80(iwa3P#b#9y17ZO34cw=S!V2Tg%dsQX$C>6newe3 zr<=ao8~3%7AQgHZ$6*wD*50~>=%btzpjlb|;mXpRjo)8dS-MWRksLRI(emp_eMjx1 zru1iuMnbuAzf3hZxVyuP30LAPBzBXKPCZ67vac8?A^m=WYFnt*+Q>!3H|af*n0SqZ zM4uG$VhNE~@PvCHC<93wX=EU2uxSRh7MnWgG5`FD`N$T2*#rqXF>#iJ!~iOFE!LEo zV@4%sa8JEP@mCqR@tYf~Z@=G}XO80gtglcCe6bN$LvaK%#D+7q50>;P_Sqo3pJ8N3 zMs@HlHvhyYxY)*=O@|JfR2S zHp!ak`oA1}t6fL4-Siz>@ykIzpSbyaxyoxLs(bnT*_vNcZ^YA3FTP4bUIayEL0qAj z?%PzOt#oX!eM5q>9>Q`+fN(T?A${H%ay(~`<2q?)(6i)-(QH?e9-Ese^5D6BVE_3qmY)`ZV!nwtPXa75E@cSw_Ee{jQ(#bCsZuFYm85EGA2{E+t&t_! z$;kKFw{PEj&pF@u&ULw^B_!c@;g`9I-~G8H{Tnq_|Ju-a2Fd;xWK3dmK{C8jHe}IO z3`LZxp^8#7G*S8tpD6u?Uz7nOfKn;w#h?)^hKx`#Y=mW+OD#l-Ek;YR)o4XqV?O3* z0j9Gc3$ZYZuol+J+TPPxJKMlI*hW$BWSiJ#wnfzMVO!a~Y@4WW$GH36(~UNEKYQS; zWVG*3k8e2+St(kgGO*=gzG=J@5tWak=hI9vxj5ZXZQE* zn;w|R7DvkF3r1mIaUhczWvivBNp`!gKb%Vx^XeCx299W5)*i%wwnRmO`z8m+pC3A1$&`*JhxZ;X z94{6oGLu8o!$ZdO@neOWainL;81314JU&v$K6|J#Jj4pex)Tq;a=pROcoo%mMw`rfGKs`$LCO_=tC8_9cTpRSnBgd46Ds^j^RXslgw z+*@*HARCLB@k~!o!tAk9ef^nSsy`WvS;^c$EY+K}GO0|WH<293GAnDw1~OJ(+{(my zlDQbeZsY5h9KY+5@91rBZWJ3zcq@r#Eu2w2k?l|R4#ceJX67hbsFNr6;{r!nVW`On9wm0YW4ll8zT4APR#bVw0l2hxTqg&UvMutgm z8A&r~4wzQ2nd&ur`b{&Nu@Yt`mP#dADmReG4dB3%eP#~5sZ`3cVu`+l)jyDkX9i-q zM4wr^Z|yRYJMdvF8*&sP+(_$K*BRAnt!v)uS=WxQYbVyVlTqCb4<0<2K00)GbojuC zp;KdIaQ_ewz~WusuEAZ;4so68p)0clp*$!l`mMNDDJV9*&0ipMt z6yI%GHjAuPC^St&EW3-w2_v}&wO%Bf*r6`zv|gp%&#C_o2qEKs2FZRASrbA8SV-W6 z9#{xg2hi{lvqR}8c84-R3=gGFEDvRnwXt@TA>w){!{B?JC?jkWfM&BB7_3xw0qL^z z(dLipw0mKfKSo913dkxDMRpX}pynuZKF80Lt$=EjDoR3~fcKOv6201TuU?ntg2IAB z==E)dycJLPJ-heFH<|@^^8*Wk-mglZgwp~qd7j3efFS&kLj8&R)b+b}Q z!=Ib3?pQ@sF*dZ!Zm1qfXJMg^MGtJ@0d9ZZ4eo_2Ob?IjIpA)|Ryl_Sr<-b?h8Y82 zVd-QP{29uGlB_7W(5Nx=+vM;FNAH(6L&;m!?NAqBYWuRR?hdAe5#$<#&^l3RLaBgJ zz!Xz)gj$up*Es)fGBD%cfJ!NUA<_Y zu*7DcMe|eHTmHJ0595)EBs^oMQtMn<>8jIO1O2pGQZupIhf#rwNb{2Irw9UdxHB67 zE9wfVj)*KgF3|Y;OylE=jVl)xKX`TFx3Ap%U3)q^VP#LG z0V`R=8kX&Dx-Aj2#F~To0W4viJlqb+P%%q-Z^~DmT9{_ zB(dcfDjwCDB%-5`m$NrIuq@b)!W5>?!}Bl=2SB#sV?GGaFR0McnF|XSKlQfnNv=vT z;&m@vy}EGz^6H2GLzcYw*+-3^ye7s$>Pz$2@0?`MSk%u|j5Ru83qzy_`O^6AJg~tj z^J!0GX%BATl*vnY#s|?_R%ifDo(mqa?iBe!3@RfDcBd(RS-YjF1lg#`wQbGAyNmSJ zoF1(#h$K$$HB{*Im^==W2v7ecogba#R)oY%Jqr~gl$w`z16`&hzSHr|c{~BY>G&pf zq~K0zUYh}1qV@@eKV9>KX@p4Gj!7r|lpyFk9Jz0R1vgKmssTrD&ChwGLkFA{PI_2+vvQW;N1^X#fnlJJ(yi|P>8Lj`f z7aQll@V2n<*$0jHK3V+cjm7!bzx(?2rT5MNEE=!=dg-0d7A{;`oV{`L`o}k~f99#0 zP_m`B{%-N}&#OP6x!##u`1RY%qlHR(CxVFLM2`GIILP3DZAQ<|8=@+ zs8EQZD}OSB=X*{r2j`#Tz%4UcGel z#+BcPj@TA|d~h7zX^EEDB%c8%U$n|qha2du-iz$cmm9zOhsED~_(a!8G%P$WCoaaL zlnF0PvNyCzTqW>0b&|k1c?J(Yh&@F$&xH^(AN+|D#W=r&Y?ndb82Z(yKJ z3saPk+yU1Zl3Rsyd3GfWqLP+z{$cxI1I-@bYuFeJKC1Nn|N-XqqmEw@PJSFqQ z$u8hI7!V6@m1g{oJ{g<~VTN$shmjG8RGA4lh(hWC)`I?)ygaL(2me96b+T=)y{=4d zSpI73WCz*-L@`=U74aml_09&HPvJ)w$=H0mV(O6BRdxxc4 z_|<&f#G^zQQd7HAHO??POCGTKqdG}oBa$FJB!N14JcV{O51+@k;u#{IE$IokYq0bc zK82_PmmLUf19mk_&K=iNobz6ccja+c&ad+6#KB$t$%0wTF!QNv^f}VZ4!O2tMO{`V zUPTL51E%+GbQ2%Po1E<1!=F~$a*pLoczrDI6f7fx_F&a1?<$mGXU}1r>jRt>ZA9Re zLf#RyiW4sI-INin5^;cMP|s6y2QoJRr7ywx8aie?N&qMV4@^U}#P#7aE}LEsvJAgx zAv{HIdUq}4dj$VA0uW02gf$J;-wfJB>@OH@4wtf?^$89n!j;3AncJP3};M zgLbGCb^#fc&9b5@sOhr*PwhU0V({xBEu?7wUc2xAJ<}{{Qu9anLrK772BZ)ysO>f{ zVgSY_&=GyDy;Wn5I;qtW1To(w<#HS1cK@Ug(1=Ll608xixVk28|H10G-3d(UxC_AO zIszw(PGD`#KHLmY41zu#ePPibsq6EI@>%E-2(;5O*9v>nDVhgGZL8~e19m*G@CmG$ zVt$21>KZJ$#RKP382uYWf2-(kYl3#^0o)gKOuq?$4+7vfuIw3?^3KM3a2>#_Gr^aG zB_9(d!TT{utgo}K&ddCla1WcP25y2=qO|Ji7q_3Dl5pS9Asj>FS7&d&@ng^2Z(e_M z;TP`-YhH#10rOQtNYAMQ@m-n24mAYJ7Wj$KUow9lMmEOxQI#aQ3KJSvUSBx>MwKkM z%R`jLSO18f#%u3;pz+<;uXyx>qUlZ6s50R_1()-l$SW0jwJ^d3GX?`BzT-ZcdZuG4`L4 zYyuVyCJMt<+HpUE8xgHj-mKt`L?uE4qy1jU+nz%elw4fB!L{PTZtDff@e9{Qw;DQK z;=zpuaE%8C3I_m%KDiAh?O$WkkFPdqjMV4h=1vfA_BappXYuo8@6~woeBZngM70rIJCO9Z z--@WKLittOTEnBrlad$TMY9}4wt{64GE_iC(nPFf&xynF|wVX<`{JE$BwXix(Q#-n#kLCou8GwabE(ES)(6Q?EXV5jW?rG_L#%VT#x1 z0fINQ@y0vfef|DOG~$85OBgNOH~(v@r762@@FWnvm$EuC*l7{hvKH5edyzNTRB*pcRl+Q$bn>2uqu`h=xY9T;^J4)h>NWJ31)(*?T<>p T>$`hR`w#!`^oQHEj{E-?1-_w` diff --git a/__pycache__/main_window.cpython-310.pyc b/__pycache__/main_window.cpython-310.pyc deleted file mode 100644 index eb99d0b69d216f1ee72678f166e343675ea15f62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1157 zcmZWo&1xGl5SI4e8{0TPrO-Zs4-F-U9!e+;`6Gv0kK$0qM+SPrFBD$Zw}-& z9D2&b^ab|XQ(mE`&d70XS}i-8AMMPiZ)VF@DUk7=}LZ=5h%3~H&vQI=PqB|lYNyk1*MBF3YMJq zszQ`EU`EGZRW1!^?Gwf4Aq$?h!-1|;ugWguR-y8&Qe|QLm}hYTez)vf*d$?85a!*J zb1JCt?h@t;Uj%oA1`o?=h5+AH`rsi;P|-Vj5|FLCREKtOElr(pt_oFg zZm=Bl28zX2R)gykWkT@ON#<@}8kXWgm1#AU263^}s^UV+-eps!-+YB9XF2_mJ5-=s}H^;i7i>YTsz*-ic<(u1$I@$)tapyQcHB;=7Ebv=XgXqHf5 z0n_;_mS=&Npjgb)ro-0@HUGVJAJ5Dd>PVDp;ww<*wXum4e?+l)h{LQvxEnYmtkc&r zGYedr1fq2cgju=!T^1E!ZlNobXc@fM6tx4q3MQ7b*wU1C=n~4r%GJN${J*-e*lhX2SNY< diff --git a/core.py b/core.py deleted file mode 100644 index 96d8881..0000000 --- a/core.py +++ /dev/null @@ -1,254 +0,0 @@ -import os -import shutil -import requests -import py7zr -import hashlib -import psutil -import ctypes -import base64 -from PySide6.QtWidgets import (QMessageBox, QFileDialog, QProgressDialog) -from PySide6.QtCore import QThread, Signal - -# 配置信息(完全保持不变) -app_data = { - "APP_VERSION": "4.10.0.17496", - "APP_NAME": "@FRAISEMOE Addons Installer", - "TEMP": "TEMP", - "CACHE": "FRAISEMOE", - "PLUGIN": "PLUGIN", - "CONFIG_URL": "aHR0cHM6Ly9hcmNoaXZlLm92b2Zpc2guY29tL2FwaS93aWRnZXQvbmVrb3BhcmEvZG93bmxvYWRfdXJsLmpzb24=", - "UA": "TW96aWxsYS81LjAgKExpbnV4IGRlYmlhbjEyIEZyYWlzZU1vZS1BY2NlcHQpIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMTE0LjA=", - "game_info": { - "NEKOPARA Vol.1": { - "exe": "nekopara_vol1.exe", - "hash": "04b48b231a7f34431431e5027fcc7b27affaa951b8169c541709156acf754f3e", - "install_path": "NEKOPARA Vol. 1/adultsonly.xp3", - "plugin_path": "vol.1/adultsonly.xp3", - }, - "NEKOPARA Vol.2": { - "exe": "nekopara_vol2.exe", - "hash": "b9c00a2b113a1e768bf78400e4f9075ceb7b35349cdeca09be62eb014f0d4b42", - "install_path": "NEKOPARA Vol. 2/adultsonly.xp3", - "plugin_path": "vol.2/adultsonly.xp3", - }, - "NEKOPARA Vol.3": { - "exe": "NEKOPARAvol3.exe", - "hash": "2ce7b223c84592e1ebc3b72079dee1e5e8d064ade15723328a64dee58833b9d5", - "install_path": "NEKOPARA Vol. 3/update00.int", - "plugin_path": "vol.3/update00.int", - }, - "NEKOPARA Vol.4": { - "exe": "nekopara_vol4.exe", - "hash": "4a4a9ae5a75a18aacbe3ab0774d7f93f99c046afe3a777ee0363e8932b90f36a", - "install_path": "NEKOPARA Vol. 4/vol4adult.xp3", - "plugin_path": "vol.4/vol4adult.xp3", - }, - }, -} - -def decode_base64(encoded_str): - """Base64解码函数""" - return base64.b64decode(encoded_str).decode("utf-8") - -class DownloadThread(QThread): - progress_updated = Signal(int) - download_finished = Signal(bool, str) - - def __init__(self, url, save_path, headers): - super().__init__() - self.url = url - self.save_path = save_path - self.headers = headers - - def run(self): - try: - response = requests.get(self.url, headers=self.headers, stream=True) - response.raise_for_status() - - total_size = int(response.headers.get('content-length', 0)) - downloaded = 0 - - with open(self.save_path, 'wb') as f: - for chunk in response.iter_content(chunk_size=8192): - if chunk: - f.write(chunk) - downloaded += len(chunk) - progress = int((downloaded / total_size) * 100) - self.progress_updated.emit(progress) - - self.download_finished.emit(True, "") - except Exception as e: - self.download_finished.emit(False, str(e)) - -class AppCore: - def __init__(self, ui): - self.ui = ui - self.install_dir = "" - self.temp_dir = os.path.join(os.getenv(app_data["TEMP"]), app_data["CACHE"]) - self.plugin_dir = os.path.join(self.temp_dir, app_data["PLUGIN"]) - self._create_dirs() # 确保这个方法被正确定义 - - # 解码配置 - self.CONFIG_URL = decode_base64(app_data["CONFIG_URL"]) - self.UA = decode_base64(app_data["UA"]) + f" FraiseMoe/{app_data['APP_VERSION']}" - self.GAME_INFO = app_data["game_info"] - self.current_download_thread = None - - def _create_dirs(self): - """创建必要的目录""" - os.makedirs(self.plugin_dir, exist_ok=True) - - def start_installation(self): - """开始安装流程""" - if not self._select_install_dir(): - return - - if not self._check_processes(): - return - - self._download_and_install() - - def _select_install_dir(self): - """选择安装目录""" - dir_path = QFileDialog.getExistingDirectory( - self.ui, "选择游戏安装目录" - ) - if not dir_path: - QMessageBox.warning(self.ui, "警告", "必须选择安装目录") - return False - self.install_dir = dir_path - return True - - def _check_processes(self): - """检查游戏进程""" - for proc in psutil.process_iter(['name']): - if proc.info['name'] in [info['exe'] for info in self.GAME_INFO.values()]: - reply = QMessageBox.question( - self.ui, "警告", - "检测到游戏正在运行,需要关闭才能继续安装", - QMessageBox.Yes | QMessageBox.No - ) - if reply == QMessageBox.Yes: - try: - proc.kill() - except: - QMessageBox.critical( - self.ui, "错误", - "无法关闭游戏进程,请手动关闭" - ) - return False - else: - return False - return True - - def _get_download_config(self): - """获取下载配置""" - try: - headers = {"User-Agent": self.UA} - response = requests.get(self.CONFIG_URL, headers=headers, timeout=10) - response.raise_for_status() - return response.json() - except Exception as e: - QMessageBox.critical( - self.ui, "错误", - f"获取下载配置失败: {str(e)}" - ) - return None - - def _download_and_install(self): - """下载并安装文件""" - config = self._get_download_config() - if not config: - return - - # 创建进度对话框 - progress = QProgressDialog("下载补丁文件中...", "取消", 0, 100, self.ui) - progress.setWindowTitle("安装进度") - progress.setAutoClose(True) - - # 为每个游戏版本下载补丁 - for game_name, game_info in self.GAME_INFO.items(): - vol_key = f"vol.{game_name.split()[-1]}.data" - if vol_key not in config: - continue - - download_url = config[vol_key]["url"] - temp_file = os.path.join(self.plugin_dir, f"{vol_key}.7z") - - # 启动下载线程 - self.current_download_thread = DownloadThread( - download_url, - temp_file, - {"User-Agent": self.UA} - ) - self.current_download_thread.progress_updated.connect(progress.setValue) - self.current_download_thread.download_finished.connect( - lambda success, err, f=temp_file, g=game_name, i=game_info: - self._handle_download_result(success, err, f, g, i) - ) - self.current_download_thread.start() - - progress.exec_() - - def _handle_download_result(self, success, error, temp_file, game_name, game_info): - """处理下载结果""" - if not success: - QMessageBox.critical(self.ui, "下载失败", f"错误: {error}") - return - - try: - # 解压文件 - with py7zr.SevenZipFile(temp_file, mode='r') as archive: - archive.extractall(path=self.plugin_dir) - - # 复制到游戏目录 - plugin_path = os.path.join(self.plugin_dir, game_info["plugin_path"]) - install_path = os.path.join(self.install_dir, game_info["install_path"]) - - os.makedirs(os.path.dirname(install_path), exist_ok=True) - shutil.copy(plugin_path, install_path) - - # 验证哈希 - if self._verify_hash(install_path, game_info["hash"]): - QMessageBox.information( - self.ui, "安装完成", - f"{game_name} 补丁已成功安装!" - ) - else: - QMessageBox.warning( - self.ui, "警告", - f"{game_name} 文件校验失败,安装可能不完整" - ) - except Exception as e: - QMessageBox.critical( - self.ui, "安装失败", - f"安装过程中出错: {str(e)}" - ) - finally: - # 清理临时文件 - if os.path.exists(temp_file): - os.remove(temp_file) - - def _verify_hash(self, file_path, expected_hash): - """验证文件哈希""" - if not os.path.exists(file_path): - return False - - sha256_hash = hashlib.sha256() - with open(file_path, "rb") as f: - for byte_block in iter(lambda: f.read(8192), b""): - sha256_hash.update(byte_block) - return sha256_hash.hexdigest() == expected_hash - - def shutdown_app(self): - """关闭应用程序""" - reply = QMessageBox.question( - self.ui, "退出", - "确定要退出安装程序吗?", - QMessageBox.Yes | QMessageBox.No - ) - if reply == QMessageBox.Yes: - # 清理临时目录 - if os.path.exists(self.temp_dir): - shutil.rmtree(self.temp_dir) - self.ui.close() \ No newline at end of file diff --git a/main.py b/main.py deleted file mode 100644 index 747785e..0000000 --- a/main.py +++ /dev/null @@ -1,12 +0,0 @@ -import sys -from PySide6.QtWidgets import QApplication -from main_window import MainWindow - -def main(): - app = QApplication(sys.argv) - window = MainWindow() - window.show() - sys.exit(app.exec()) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/main_window.py b/main_window.py deleted file mode 100644 index 53825cc..0000000 --- a/main_window.py +++ /dev/null @@ -1,28 +0,0 @@ -from PySide6.QtWidgets import QMainWindow -from PySide6.QtCore import QTimer -from Ui_install import Ui_MainWindows -from animations import MultiStageAnimations - -class MainWindow(QMainWindow): - def __init__(self): - super().__init__() - - # 先初始化UI - self.ui = Ui_MainWindows() - self.ui.setupUi(self) - - # 然后初始化动画系统 - self.animator = MultiStageAnimations(self.ui) - - # 在窗口显示前设置初始状态 - self.animator.initialize() - - # 窗口显示后延迟100ms启动动画 - QTimer.singleShot(100, self.start_animations) - - def start_animations(self): - self.animator.start_animations() - - def closeEvent(self, event): - self.animator.clear_animations() - super().closeEvent(event) \ No newline at end of file diff --git a/IMG/After/voaf_ga01.jpg b/source/IMG/After/voaf_ga01.jpg old mode 100755 new mode 100644 similarity index 100% rename from IMG/After/voaf_ga01.jpg rename to source/IMG/After/voaf_ga01.jpg diff --git a/IMG/After/voaf_ga02.jpg b/source/IMG/After/voaf_ga02.jpg old mode 100755 new mode 100644 similarity index 100% rename from IMG/After/voaf_ga02.jpg rename to source/IMG/After/voaf_ga02.jpg diff --git a/IMG/BG/bg1.jpg b/source/IMG/BG/bg1.jpg old mode 100755 new mode 100644 similarity index 100% rename from IMG/BG/bg1.jpg rename to source/IMG/BG/bg1.jpg diff --git a/IMG/BG/bg2.jpg b/source/IMG/BG/bg2.jpg old mode 100755 new mode 100644 similarity index 100% rename from IMG/BG/bg2.jpg rename to source/IMG/BG/bg2.jpg diff --git a/IMG/BG/bg3.jpg b/source/IMG/BG/bg3.jpg similarity index 100% rename from IMG/BG/bg3.jpg rename to source/IMG/BG/bg3.jpg diff --git a/IMG/BG/bg4.jpg b/source/IMG/BG/bg4.jpg similarity index 100% rename from IMG/BG/bg4.jpg rename to source/IMG/BG/bg4.jpg diff --git a/IMG/BG/menubg.jpg b/source/IMG/BG/menubg.jpg similarity index 100% rename from IMG/BG/menubg.jpg rename to source/IMG/BG/menubg.jpg diff --git a/IMG/BTN/exit.bmp b/source/IMG/BTN/exit.bmp similarity index 100% rename from IMG/BTN/exit.bmp rename to source/IMG/BTN/exit.bmp diff --git a/IMG/BTN/start_install.bmp b/source/IMG/BTN/start_install.bmp similarity index 100% rename from IMG/BTN/start_install.bmp rename to source/IMG/BTN/start_install.bmp diff --git a/source/IMG/ICO/icon.ico b/source/IMG/ICO/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4bf517d847c850fbaf5c562da2d4dd74a5617a01 GIT binary patch literal 270622 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 o dict: + try: + headers = {"User-Agent": UA} + response = requests.get(CONFIG_URL, headers=headers, timeout=10) + response.raise_for_status() + config_data = response.json() + if not all(f"vol.{i+1}.data" in config_data for i in range(4)): + raise ValueError("配置文件数据异常") + return { + f"vol{i+1}": config_data[f"vol.{i+1}.data"]["url"] for i in range(4) + } + except requests.exceptions.RequestException as e: + status_code = e.response.status_code if e.response is not None else "未知" + try: + error_response = e.response.json() if e.response else {} + json_title = error_response.get("title", "无错误类型") + json_message = error_response.get("message", "无附加错误信息") + except (ValueError, AttributeError): + json_title = "配置文件异常,无法解析错误类型" + json_message = "配置文件异常,无法解析错误信息" + + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + f"\n下载配置获取失败\n\n【HTTP状态】:{status_code}\n【错误类型】:{json_title}\n【错误信息】:{json_message}\n", + ) + return {} + except ValueError as e: + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + f"\n配置文件格式异常\n\n【错误信息】:{e}\n", + ) + return {} + + def download_setting(self, url, game_folder, game_version, _7z_path, plugin_path): + game_exe = { + game: os.path.join( + self.selected_folder, info["install_path"].split("/")[0], info["exe"] + ) + for game, info in GAME_INFO.items() + } + + if ( + game_version not in game_exe + or not os.path.exists(game_exe[game_version]) + or self.installed_status[game_version] + ): + self.installed_status[game_version] = False + self.show_result() + return + + progress_window = ProgressWindow(self) + progress_window.show() + + self.current_download_thread = DownloadThread(url, _7z_path, self) + self.current_download_thread.progress.connect(progress_window.setprogressbarval) + self.current_download_thread.finished.connect( + lambda success, error: self.install_setting( + success, + error, + progress_window, + game_folder, + game_version, + _7z_path, + plugin_path, + ) + ) + self.current_download_thread.start() + + def install_setting( + self, + success, + error, + progress_window, + game_folder, + game_version, + _7z_path, + plugin_path, + ): + progress_window.close() + if success: + try: + msg_box = self.hash_manager.hash_pop_window() + QApplication.processEvents() + with py7zr.SevenZipFile(_7z_path, mode="r") as archive: + archive.extractall(path=PLUGIN) + shutil.copy(plugin_path, game_folder) + self.installed_status[game_version] = True + QMessageBox.information( + self, f"通知 {APP_NAME}", f"\n{game_version} 补丁已安装\n" + ) + except (py7zr.Bad7zFile, FileNotFoundError, Exception) as e: + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + f"\n文件操作失败,请重试\n\n【错误信息】:{e}\n", + ) + finally: + msg_box.close() + else: + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + f"\n文件获取失败\n网络状态异常或服务器故障\n\n【错误信息】:{error}\n", + ) + self.next_download_task() + + def pre_hash_compare(self, install_path, game_version, plugin_hash): + msg_box = self.hash_manager.hash_pop_window() + self.hash_manager.cfg_pre_hash_compare( + install_path, game_version, plugin_hash, self.installed_status + ) + msg_box.close() + + def download_action(self): + install_paths = self.get_install_paths() + for game_version, install_path in install_paths.items(): + self.pre_hash_compare(install_path, game_version, PLUGIN_HASH) + + config = self.get_download_url() + if not config: + QMessageBox.critical( + self, f"错误 {APP_NAME}", "\n网络状态异常或服务器故障,请重试\n" + ) + return + + for i in range(1, 5): + game_version = f"NEKOPARA Vol.{i}" + if not self.installed_status[game_version]: + url = config[f"vol{i}"] + game_folder = os.path.join(self.selected_folder, f"NEKOPARA Vol. {i}") + _7z_path = os.path.join(PLUGIN, f"vol.{i}.7z") + plugin_path = os.path.join( + PLUGIN, GAME_INFO[game_version]["plugin_path"] + ) + self.download_queue.append( + (url, game_folder, game_version, _7z_path, plugin_path) + ) + + self.next_download_task() + + def next_download_task(self): + if not self.download_queue: + self.after_hash_compare(PLUGIN_HASH) + return + url, game_folder, game_version, _7z_path, plugin_path = self.download_queue.popleft() + self.download_setting(url, game_folder, game_version, _7z_path, plugin_path) + + def after_hash_compare(self, plugin_hash): + msg_box = self.hash_manager.hash_pop_window() + result = self.hash_manager.cfg_after_hash_compare( + self.get_install_paths(), plugin_hash, self.installed_status + ) + msg_box.close() + self.show_result() + return result + + def show_result(self): + installed_version = "\n".join( + [i for i in self.installed_status if self.installed_status[i]] + ) + failed_ver = "\n".join( + [i for i in self.installed_status if not self.installed_status[i]] + ) + QMessageBox.information( + self, + f"完成 {APP_NAME}", + f"\n安装结果:\n安装成功数:{len(installed_version.splitlines())} 安装失败数:{len(failed_ver.splitlines())}\n" + f"安装成功的版本:\n{installed_version}\n尚未持有或未使用本工具安装补丁的版本:\n{failed_ver}\n", + ) + + def closeEvent(self, event): + self.shutdown_app(event) + + def shutdown_app(self, event=None): + reply = QMessageBox.question( + self, + "退出程序", + "\n是否确定退出?\n", + QMessageBox.Yes | QMessageBox.No, + QMessageBox.No, + ) + + if reply == QMessageBox.Yes: + if ( + self.current_download_thread + and self.current_download_thread.isRunning() + ): + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + "\n当前有下载任务正在进行,完成后再试\n", + ) + if event: + event.ignore() + return + + if os.path.exists(PLUGIN): + for attempt in range(3): + try: + shutil.rmtree(PLUGIN) + break + except Exception as e: + if attempt == 2: + QMessageBox.critical( + self, + f"错误 {APP_NAME}", + f"\n清理缓存失败\n\n【错误信息】:{e}\n", + ) + if event: + event.accept() + sys.exit(1) + if event: + event.accept() + else: + sys.exit(0) + else: + if event: + event.ignore() + +if __name__ == "__main__": + app = QApplication([]) + window = MainWindow() + window.show() + sys.exit(app.exec()) \ No newline at end of file diff --git a/source/nuitka-crash-report.xml b/source/nuitka-crash-report.xml new file mode 100644 index 0000000..9815aa3 --- /dev/null +++ b/source/nuitka-crash-report.xml @@ -0,0 +1,8419 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/pic_data.py b/source/pic_data.py new file mode 100644 index 0000000..1ef5386 --- /dev/null +++ b/source/pic_data.py @@ -0,0 +1,14 @@ + +img_data = { + "firstbg": "", + "vol1": "", + "vol2": "", + "vol3": "", + "vol4": "", + "after": "", + "defaultbg": "", + "menubg": "", + "start_install_btn": "", + "exit_btn": "", + "icon": "" +} \ No newline at end of file diff --git a/popup.ui b/source/popup.ui similarity index 100% rename from popup.ui rename to source/popup.ui diff --git a/source/requirements.txt b/source/requirements.txt new file mode 100644 index 0000000..156d493 --- /dev/null +++ b/source/requirements.txt @@ -0,0 +1,77 @@ +altgraph==0.17.4 +annotated-types==0.7.0 +anyio==4.9.0 +async-timeout==5.0.1 +auto-py-to-exe==2.46.0 +bottle==0.13.4 +bottle-websocket==0.2.9 +Brotli==1.1.0 +certifi==2025.6.15 +cffi==1.17.1 +charset-normalizer==3.4.2 +click==8.2.1 +colorama==0.4.6 +colorthief==0.2.1 +darkdetect==0.8.0 +Eel==0.18.2 +exceptiongroup==1.3.0 +fastapi==0.115.14 +future==1.0.0 +gevent==25.5.1 +gevent-websocket==0.10.1 +greenlet==3.2.3 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.10 +importlib_resources==6.5.2 +inflate64==1.0.3 +multivolumefile==0.2.3 +Nuitka==2.7.11 +numpy==2.2.6 +ordered-set==4.1.0 +packaging==25.0 +pefile==2023.2.7 +pillow==11.3.0 +playwright==1.53.0 +psutil==7.0.0 +py7zr==1.0.0 +pybcj==1.0.6 +pycparser==2.22 +pycryptodomex==3.23.0 +pydantic==2.11.7 +pydantic_core==2.33.2 +pyee==13.0.0 +pyinstaller==6.14.1 +pyinstaller-hooks-contrib==2025.5 +pyparsing==3.2.3 +pyppmd==1.2.0 +PyQt-SiliconUI==1.0.1 +PyQt5==5.15.11 +PyQt5-Qt5==5.15.2 +PyQt5_sip==12.17.0 +PySide6==6.9.1 +PySide6-Fluent-Widgets==1.8.3 +PySide6_Addons==6.9.1 +PySide6_Essentials==6.9.1 +PySideSix-Frameless-Window==0.7.3 +python-dateutil==2.9.0.post0 +python-multipart==0.0.20 +pywin32==310 +pywin32-ctypes==0.2.3 +pyzstd==0.17.0 +redis==6.2.0 +requests==2.32.4 +scipy==1.15.3 +shiboken6==6.9.1 +six==1.17.0 +sniffio==1.3.1 +starlette==0.46.2 +texttable==1.7.0 +typing-inspection==0.4.1 +typing_extensions==4.14.0 +urllib3==2.5.0 +uvicorn==0.35.0 +zope.event==5.1 +zope.interface==7.2 +zstandard==0.23.0