From e658d6bb1a9c5ce36bf71f7b3dabf561aeb6587d Mon Sep 17 00:00:00 2001 From: deeffest <117280555+deeffest@users.noreply.github.com> Date: Wed, 8 May 2024 16:53:22 +0300 Subject: [PATCH] Add files via upload --- core/css/main.css | 14 +++----------- core/download_script.exe | Bin 7351902 -> 7352637 bytes core/download_script.py | 27 ++++++++++++++++++++++++++- main.py | 2 +- notes.txt | 11 ++--------- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/core/css/main.css b/core/css/main.css index b0bc995..c546dec 100644 --- a/core/css/main.css +++ b/core/css/main.css @@ -1,15 +1,7 @@ -QMenuBar{ - background-color: rgb(43,43,43); - color: white; -} -QMenuBar::item:selected{ - background-color: rgb(60,60,60); -} - QMenu { background-color: rgb(43,43,43); color: white; - border: 1px solid rgb(29,29,29); + border: 1px solid rgb(93,93,93); padding: 2px 2px; } QMenu::icon { @@ -33,13 +25,13 @@ QMenu::item:disabled { } QMenu::separator { height: 1px; - background-color: rgb(64,64,64); + background-color: rgb(93,93,93); margin: 3px 3px; } QToolTip { background-color: rgb(44,44,44); - border: 1px solid rgb(29,29,29); + border: 1px solid rgb(93,93,93); color: white; padding: 3px; } \ No newline at end of file diff --git a/core/download_script.exe b/core/download_script.exe index ffeef7ad95521f1734913e5a874b0ce58a41b927..0baba3b517d53dca2c132f18d34cbc8f0836b8ab 100644 GIT binary patch delta 15588 zcmYk>b8uu`xHs(BHYT=h+qP}n>DX4swkEc1b0(OW6V1fQ00I&Xb{T>Y!P?zQjU zz1HrkuHAb(Ly-N4Ly%2q;E>YZ0_m9GN)V;z;pX7c=HUN<=rjk1JS_jO7A;c=*(p;A z<M6(XQb#zptWozFn^rXwIbTkG1rPd#j(gq{0tOx#TC3ujUm9ZaV>ewY72!Ae zxq>sW)uff9l|!I)bP&_2=s@b-F^w`NAVL%XXPE|fkR_i+M=x1%j#gkUjud-#UQT9( zg#Rd<&RMaArr>w3Qx=SsNvP{<$k3}4g zCKbb+D*N}^R8aImkka7gR7!u+gIth&`DgAK|GjK!LDbNz0W5O2fHtEOLtzrO!_PPX zuA4`U^D>1$3F$x73nO6&Ke;bxCj(z|W?6~V$()^&9WL~iL1pQzbT_%E30uKl(lAo^ z97Nj${mE!^#XdJSav5A@@D%VAd0DmEd2*yTGvUR5Jx=KAq-m0&X%|Krl87QI-i0D6 zcT9bPS{5vg_KrH!Px&yrw4=Cd%==*_5{RcpOvlItf+@sZIM`*TacZ^`EgY+2<8KH?KYDJO z2F;@_bi6s;Z<3aj%+A1Y?kZ1KRYo>PM?co@@35yH0tJbHe!{XPKQZK}rNEQ`+cAvs zr2UU1e|P^zeNT?2kw!;~LJzdyWGptmI|VEJvg8zu_*r85V*hTx1WiW@;i$cZiD_jF zliJ2v1WqTMmr!03w77*eU*2+G4wsmQ2fhp)G7sD2TucVT-p%Ogr7kDcvb4eHNlh6n z3`}}p83USrAFu(pwB*BAne5O5@I5I*J(-#jxC^GAQh-Tjm9#q91x&>K#hRz0XraBk zC`M;b%g%>=kq37qv^953bzrXDp66(j(|MSuO63~UYr531e z{?3E!ITSPb58yU7l=1@r@cf;-^40OMWF&fkoFHg@=mu|_HiAC)_H^C%@e-PFq zxf`6zwvA}dZ+Q)tc=+JSX|UobvXq!zGE3~e&|t0nQ}l|;hREZ=0?Y|GKr4HDAu2&o z;5}FmXP=qFY;Q*`Bd8=R7I?~ub9WxJhiUKiJ=dgvI{7xJQZ)tKyWWXyaJU$J7Y}Rs z<{SCR=%-MMJz>Al7@CX87|>?+8Oz^(v+WWv9jvqY*`b_6#ND$Jj7vqw(1vC*_ZhJNrN94mLeWtan!FXaApj^b0-`|giLu5Tg zg&3UUC2{JUQO|JU5G7Qlv;^J?%JXrSQ*pr#QhD~lc-ZX%8f0~Rcy?X;Dfw+nLupU4 z^r7NJ^sn!Pnsx3ZDsy646-r_f}+XF)=dtW{BGBKPVUUT{boYq z5H-eLr%BR2sA4R9bsdufv`6}H-j*d_s446xEo$7HTN~A zI}RQj#%`!?sU0RaQ0VubHE#oCk)rDYKkF6;KLC9_)w~m$le+1o^Av>I0k47UrMl5t zSFXGKeHZZccS>O#s29ba@_()kx_fTmxdn&Uul5(#ME6`5HHdd zQmwbP-MrQxyei&fX{sFTLmd>93~U}~K&fbmoHu#uUm@=FdOdIaU}5OY7{IjOk6qcO z(FFjn29~2-JlCsUQ0fLoeXJEYGB>$lg5AF6cyI>>ntpt3^=FM(2?)^}t$l=7c<7rp z`J(|>UTL&l{2Ki`sOt*@<^+xFpNrm^DXU8icYDfpftptsm%myUv@znmRNGND9^WX0 zc*3E0)Ok?D$%JI@Xt@%r{DKjCH*rv;4FJ6Uj%F^XPoX|+X>7fWWg?mWP)ob60yRA3 zBw{)wzp_z`e)3`-CRS&Ur;7eq*so&E9>e2wrxa?AoUr?3p&J_38l2Tdy2cblwL7*< zi4EDp;Ee(p}e!KR3TJzRwTh$wYUTyXTF$JivSn#~h|sN-LLkmFl-0BLqAG zbrR3(e6$mJb#Lnl4r*^T6IpQ|S1kRfMNitPLv#C06Yd^y6FZ&g51iOXDdoEjenH5w zZmi71{QkZgJU@nAv6A|*c8l1FsMTWju&ETB=#_PD6z}BT@nCy0|KRJU@A2G_-w@p7 zKH%Hj&^!GX>x^EewnJacEU9*G`3+UssRz!Q#JtSmdT`J7A5!#&9W)3G2rLL32s{V^ z2qMUTbz~3}5L6H}5Ofd>5KIs(5Nr?}5L^&E5PT2<5JHe|AVeUrqAQT{! zAXFgKAT%JfAao$~APgXkAWR_4AS@uPAZ#G)ARHi^AY35aAUq(vAbcSFAOawQAVMI* zAR-{5AYvfmAQB*wAW|UGATl7bAaWq`APOLgAW9(0ASxiLAZj4$AQ~W=of~#qmyO_- z(ZhJ!AUYtrAbKGBAO;|YAVwg@ASNKDAZ8%uAQm8&ox^xmk9PoHG&B?P8nSU%(J(ZV zEGjir4f4m}t+Wr_SVM#{Bsp19QDjlIj3J@ISztI8b<{T}{Hxa4yR3eh@gEUBCv~e8 z-0i(SomvK&AE9Ow=qT{F=Z1!QU+G~A-ZQi1HxFKmVA;drE5DEEanY`Gf)#yKd;o+0 z2EGqEe=w1~YQ_LIX@U^KeDjK96`+(>5Jdc9$8^T2pbayFPZBQE;w0VZ2mPfz3Vxa8OLY4Tb0SdIiI?h9IUTjn$yx0nMW2kj@kr@1W# zEotDPhf{Pqtr$i%zd|TulBesx)Dy#arI&v2!0A6jR__BQ;|vv<8f-3YAvJhvN)uhG znb+fki8OS80emra5naD|7c|L@CGyAy#4x@`vLZ%s$v$aFM+q)-qS=12o zg{YLIViz0`Ts5W=I;iot?2S8oPyu5fA{aO}i21RL0bqF9ZNtn|?mS3&;#mWFFB82a zG7Q~@UvuR`NcJ9=lnmQ6m%Mur7 zUwI4=5{oz!W)zg|$L^U-B~3qO3GWNhVtb0CZ4O1-e?XUJwW3b7{SZKwxD2Ik_=dn( z-Y#Qm>sP#Ix6Yc7(019zf~D-Rc(Cy2W%V-Nqc!+6l-%hX`kq;YRk-7iz``7J=fZnH zME@!;7)EtJ@hxXMcMGkx;Fz!OEhm(V%x_lW{H___(W7)nS8GA6r>2ALViq)IoibvC z=ug#IH`G~woC%56V3REa3~d^Cs5&HYS9wxes|?X41X2?02Fo?q?_mMR4b~ZLFo&9+ z&@T*lObz2?{L<6sG}!FtOZ_Ep;5$Kpe8gVM;z!ZAsJ2r$=e4#&`>DE=HEHNCdCfc@ zS&_5c}N!RG21S`7NqF&c5h`HE7iTh+Th_EIFRXyn&3 zTPsO7t@KAB&FPXaFZNPJO*AUuHt|9ZrKQXL^o-tW1cM3}V!A2(JtJU%wuBBqk&aZd z2pN7;wus4|%Yu3LiD@3xxt#Fq!@crTZ!}jV$ck{fC(f&`Hci;~0UF77X znW23j>s?7WgSF5B>nO~?OTdexcJhKxVh_LcShh>!$`>QJwneb~qu5XPz{T!qJ136`H) zo_?q#sYhI3d9Ft1Crzb-%TL06Vu7g-y3b1AAcs1h5me(S3;$6zq-_wns|{8$&Wt~` zr5V$7+Jet>w1wzzBtvr*GmH_l(HDQj^fU#}0-8@&_3!OAalGn%qxkJ3RwxMgI?`ET zvdnH2kM9iM=t5Tkue{sU-j_T+B=9gHPLLhcDMz&7jEMCR&>sumtT}A-PGMYyHHiy% z?A#$B-zu@$OhQewAL0xX0$MN4nTaCJ9E*gNE(b*)Um^NOaDAysiSf3GJ9xm~HGY@7q4c(;ig)Kp-+&4(0#lE+6TOtL08jG7_qU!5w*4q{o*tc)%B;Fk5w9&w<3{H{{%^P;|k$>Wt&j zd_yeI*JDy1@Rhq=z}c%|1j&Z&VyEEC8-J9C9Kht_V;LiFbPJq{MX9nUeED%h;;&<% z^Bu5qKlHVWTA#7W+kizekZE2eE(2yo+ov z@(iG@#-ma*yJZpYt)#d8{ctZUx%jlW{icxri(n@(oN$!anS;KjVoRtRSlg2S_-hsYi`^3aw&~#mlM?6$&5XBAZtd?|870!G@E^T}RlKL{mGF<1GcdOF_Ra zC1(sBkARYXASrKV30BM2eUMVOH2jjwE4~m{yzv8c zU_xwTPVvR&Yy9Hnf>1P;yzuh-QG+(CR0mOrPu(z&LnuBfiIAKb<25hTX@?80j^j^& zA^f@t6*l#~F4oCwx`%n;=J0o8wR4%ZfXQlX%6vq@Ia^5NWTKEmqEH=|;gRux+igMX z@``xl5!{2ZK69I@6n|l90e|J~$BWHRj%4q64IvMtAW3G4= z5MAu#^sea?n7Ukx@P08Ru{gcSoAM7&9~bD4s6U>5?7nV6*f^ig&&xS+NMm~=eZvnV zEgim7V;YL4q$dl-pc}?BM8YSi(7f?#BpMB;PiXAVTWB+8!I5q2 zBjKSBU|JybVt*IjMTFqAj`nc^{>5;rA@Qft$Ja8;YtCl+ABhhQV*?P5WlgZF0B=`* z5EaH%tscjfHZbhx*E>MeOvuPG3*Rvz&y@qWN8z(;*Hd*q{wQVdE?T%bk#4=@!tr)m zf2}9>1h@`FKH0Ru;`9(y6ekH~0eAi(IftfvBJ<=DG|q3Wir-2l)Ua>?lm_9dW?~%; z*+>Z%87qn~@(-?E#Cbm@ZPNxB%ma!7MNJ*;X*^GP5`7Y zHsF>2W|O`ycs!x(?V%INt>60YKPEA-Ew0}lUinC=RLnif7JF6b_mFfV)wd(LGWEV@ z?LN;n$N75IR$fq89iGDiqEL~ia~sR0KCIX7hBoy_b~0LiD|(YafN$5sf_x$H#i*=V z$nw7r#duPkdreNRzTLZtt-?P~+}~e$5D(&&Mcl_(`9EQ}8;dVsACtaWr4q>4TCK68 z!h!#G)mXPA`g@mtdlWVO&k9TH^3)d)6{1jbRIS59!)zVnj|Cw0dE%@#(9Xn%U`~!u zC}}NP!eftvX%{|_0)NA{ew?ECd3hf#c0Dg(LQi%=$a2*7s#@~abt(%zGJuq%gD}ar zv5zQI&!!Lyhz=_!{sO2XV{? zeeAoeRG_|+12I4wE40h|k4U_}RRS}frljmFnNo>85#7@1h@NN~Yoruw?j-kI3w)m% ztpQk=`SUv334CNWE7!#zn^s!WrMT3GY9y#s`MeQdF|*>KX<|H=er|rZZ9)PBN7m^*7i;~zvH*0>XZW!e?k9x|Yo9+I&%UD0oz z{8m`(P;=+_LdciP3Hjjs(h6vrZm$wWs^A9203x7)w7^7uw;1~m25#wX9p|XPK#j80 zW!Y^?1w_DsTIX4=&BRgf_)^&o80KE&Rd``oeD5E$%S4;=0NXwG{zJhwEh<#upG)-b zA2}v=V43qbFXs_FdC^s4;ZtYdFy9|IFpI@PIpT6Smg5l`?BDOgnan zwy|&`_vMIAhq>=jsd7qKOrJqd(HKQbCe;h`REYv`%Yiw3fGt?T%u{(f36>g#ze?GT+MHzUez=DX@%CM1Bu*6U*?fwD_Yqt$ohTTV*q zE`9)w$yq|KdKCW{xo2#PYRk<~ncsqM0uQkQL2`xTe6kafLq`&JTC3MX$3nT<2gGK{ z6-48xY7x6nVC=MpYbKs1!!^{$w{_cN?B0pe~-1Fn94EpKrx#p`{c-!)jYh;NNi!HQ!8Q zb^-Dt8bj$X@K`r#U%vbWrl@dL%zRNrp@DIaO_mjGmOrgzQuTlrxc#MN$p~X905<%{$aPD2F638@s>)p8e*zJJ91=i7@@P<}}f&tDegD#hsFm6@C* zW+DTf3+ON(_gZD+^&CyFMnd~T0CsF`=3aS89*5_jsGG^Ce_Rq@m*@*k(LC33wNG${ zH(+YTX;VxA?`$p#=@oP>s&b_2`4KZ1X%+QMbjrDdl15}FM&D1*ze-v}XJdH}S9&He zzPU}&Ybh+%#vGRP*p?V-S@YG1#-=W1Dr$*2obY8C3zm3E`IdZLdr0Z^0np~?XGo*) za(Kwo?$+M|1i&C}gPneNDK@2P7!j*!s&+rl`b z8Nt#iwZVJ*~{sZxy;SD~aB+8Cbo8L|_HGmbnP+APr0=6$6 zYzzV;Pt9HQ=x0c0bbfqzUi-KzLmy;|Meg5#N^!e@8l5plJQ&L-w9u^6YNg0{e^WHx zW?Hgv^Res-uF*4QlmcNUR@*IF$OGS=Fe_71Kl~?@REteketA63)-}O0sAzANtB-I0 ziuzPcQRbzx^F%J+T>-Zn>qvK8kaC$qT6V_#x$L)7X!Kq}-la2%JyFkBdo>Dw!_m|?r#HR! z*rc?UFCJ&!UWgl8GQT?}(yMcMsVQ*=PU3M@B5hP~j00Mtg$1^LW-efe%4i8^5_B+QV60MoK8FoV!IXu3yTMuLwZq%8d=2Ke#V;R!iD3OBu<-eFa& zQkK#`xRFcek+40Eu^p`0PgaCil_1%kFmYbw zIVEN`aPE&^h{R{uTLvXeDLCG&^%I@e;&3s)D6c+*F2g#TPjo6H*M2YRK88tu=dW76 zI@5&gL!cf9uV1cH_Xw^=z4lFOd8{R`Nb*J=(=c1q&PlUO=;J7wP6X?G8r-%00u zF1PaXAl66tusO_ zkb~t?exjtCnE8wve_BP>HeND7 z@CY)R+3EMcBB}1pXKMNP*6syd=>r5)1V$v_`bs;CS|2iO+GiA=Wkhmt8%gJ>^AZj_ zR?wHJ(aGX3lm3!;Tc01yT#&4{DHK;=)E!p^JAytX`zo*e=8(F=&T?Z;!Q@E#F3OVX z%T|7zI;Tv^u(4E6Lu!h{zBW>vHO@F!uM@|BG15pR_Dc&92i2uS8@83KNHz+=2Bhty7in|L)gC9sq}5aMjc>Fj zL4VyIFWN6xMFyv|iq7g5!;t_^KcAldxCoJmjBWS$8f>oE(ZaS6_6gwi2A}Qu+ zgo$f~rF4#tGQpuK!oysxj)EM!qQ;~{O|}<%C3VbwQkmQ^Q)M4vG@BAIAO)rQXH4m& zGscg-v?8e4OjIw;rQCgnUUZ1dKd@F; z8fvODgl*i0dC5hZOFgdrbKg;Uraq!v)8|}}G}r-FT~en!kp@=59$iMKol~=UYfP86 zSEa(GgwzxM%_|d4wi$_li;p?W7_9StF>A(6`-u_l(mI^S*&uYGIxsrR;y?#nVb~g# z$bwg_17^9)xCUv`zEr#;l+Vg?W53P=eV$3D*wEN<;gsH~Q%}bG0=Rh*b&&kXns%-I#!8nb66?tdvJP>GIgfz55+CZT|J`lI5IV$LLL zVMfsafc_0c=RUi*k?ql;%W=2H*TiX+w&S|hK(xH+);*VV)Rv}+QP zg7-3yu@P>7%*Etkf$$0I#9?d0D>nULR3E5XPao!^MN_bt`kNw^bwt)y6P*?WB{o;! zl|+78ZW5XUz(h22Yxs6L*X#SIvEqnO>rtU<;B{xE-Q92@?j!%$yXY4qjo<8a1?E-O(-?%!#R*ft0u6VqLnsZ~x@C;_;{r=6 zrj{j^eF2x%&cCg#7Hh}XYLVgKyN~Eaj|t|ztxQgDKt;ln%f|ec^k}XRcS6=VYs+v` z@Sk}ed?r_|=F8sqvUiVHN|*=)>O_<&vr*O8)6ibnL+*v8DMEtf!WpO7ERpNC;LSLo z!^M%oo9mMF&BZ{3jZ|u}$j&IfQQvYVXAfofnn#rO9vFL#l1`^t!P}aTfL&~Py;G6* zwUYi5prXEk1Ufxym+tDIs6auVxw1a7=mw2kT3Cp?u+30Tk4VImnhBEbDpQ4KL~hn_ z=540xyOEN9qm|>Ey~bbL%B(GI5+b?Zwh{uVxy>GnXmv3<4L>_}_Xz>m5k`6GoqQ!s z_49P^3zJU^TmfhDMNJi)c0N@E)mu|Mbge=XfRs!xfK|=z(uUv$cY|HtA!C)(K|7P2 z6XFgSgI!Bdr^u5)enWVtmun`kfXIn*XKR>M9FkQYYKoGCHKEoYYMxQ(n>`mh5DNey$%*j zfJpmL@Flr^c9Tphdw!OqVCnj%tDU2cq)wETs@$_}mr+8ake_@0r&WZTyxY(JcQ zw!O;i*3U&}h9Lv6vBw~j5Nqc+Hr~8GfH6-DqI>K+I1X)A4*D}v41UxxpZ^j#_I86X zFH74zrY@;j=sf1X2HDdJyxM8L=@ngL71B<&g^pLvVp#;8$nD6V+08#ZeV1Rs&ILo7 z)u#JLPrQx=mCs7l&TwTpDA1SN4Hh3S5G;G(e$NIY2v-@W%!^PQBQB2YRLfY11NgbL zr;|yCJj#iGtIZ3C+(z!AV23qZ$QCkj5F(I?Rk-SVS{2ad;sE4g;yqjJntR+Xc6!#m z2Ze)^T6=u!94;(pbU(MYx~v@&R6Hh7_O`%R&3A_`9g>A-;Qo-=g3GDDbn~5A11KeP2i@z z^s3QYxt}>Nya>7k3dasYbRqUwQK@R=eq(XsihM(Iy05yIQyr|DgM>650tAEqxa%7V zK9Pf&(k#CI_6bRKIzhj4wpkeJESZPeNtk?i0}ogVaM~BXw0Abp4CY826A#aIRqv#W z9fobEr9+Z_^Gunb`TdLQq#H~+i$RAP^w9CUZ~&|D%a*zTqnoh@ILQoA)LmGU0)`XE z%<@;(DZ{qE(T$f{5OeLm6aYCPR+|BG3o*1m41ZrwtXPZzMH#v`_U4O+ccmT1az6Br z#a9yA&`WFq8rD_B@;79e(dJrPUq2UhE8MwXDN{68s#YBmb>k?BqS5luLFdZjrvQS| z3nQ?wVZw7Pa%-4_AIyC!zepM+JSO;PP2K9KaWv!&@NUMWr9-z*GXWjf|3zy{Hw>YVyl@-Q@oWW zC+dr_(4m#c``H>Y>>NUzMHVg=;~5_`^9K9C%+a_Akz$`bSS^&`s>J5u)2Rwmpr>y; z_qG?!%^x$!z+5z}!2mIoQ4nq+#g@`Su1}%rx=5o2gQ_CDnXkjC)OtDC4*HP@X6;K! za-4z-R?*SQUo1&u89qrYB!d=)1o}MLgLO%fhyBkkW0jaQW2z(RybmSb6@Zhs(Orh5 zb&BLE83{mTu;zXBVft#mRZJ%mwk}hqVN5rRx_|iy-T@R)PtZNhe7SH5Q?3HpJm4~nSid-k z12vEo$@c6#yP%m^8F0y9Sq>dZi3_Yx5xcAXOpA3VFk!G3&6$uTT)l@g1<;h{BFqI3 z_o#nKgZ|yO{uXtEu}_$#*=vL(Bn?WTK> zqBa3#cUh7P--=s4yH1W@iM=AU-)6Q%ee2*HOB(4_i3P9_SsAIvJ}HU#Guq9jFh~^P zIxnm}#TGzGH>vV8Xj$+TyBACt{EnRY_MAKzEcmu^Tj+nZhVhR9X6aizS$@)!C)h4~ zp|5-&3?ymy>n003W8ua9HYD5&ScLm|R8>#dBZHWip6}lgcrmQ$qkM%d3)d_&A-y3e zVGH*2XIQ|Q6mek*iYiK!eVHx#b#>!Tg9Zj;#$Wmtr|{-M(k8ldO>9L--M?s#uS-wx zW{eUpM7yP(E8MaF5H91|O&p0X`Tp+HB^V*9*}XNgb9<_In0TBW2XwqB?AHZ%=5pM; zRExNMhVPQxoFXlh&vZ)x8!;A59b>K8Rz#<^(F6g{V%3~TUd;SX+Y|4`d+0roxp{lpPQoaW_LL1_?*0n;BroR z`k?Y()R%6EQ4qC{(kZ&wqDbs!X$O2FC8#Qv)&^EpF+j`-s*|*QL7I!xi>HJ`rG3`b z|M3A-uU5HM0h}m3k?%`hyp(^=IphJO)Tuq@2sFkr*iIfSul;v$ZWBAloSt2F;KSM= zpn|U-Ed~P)6EPKN)GM9fN}y~HNYw0sg~Cul#&kTA*PWfX5{n>XV%WyWQY zR^p^ivS?PS3!M_MzL`}p=YBXJw3E%7OGyIMq`|eCa5T6J=+&QOnaW);HvZXB4d|Go zrPH@yQFX~W@ttT(qAzEebf!;2oY*Z{605D$8gR+3cLe5X9|;+MArOx+78R4As_QG4jC-aRsc0YrR(sy?kIxZN)a8KE&5vNIrn$Kr;*++s+ zWfbDkn7Z;OH{-DA?I6bJ)6o_69{3I<*8Pjrlfej5Mi&f=SS}2zT{9qmS@7v72-RezOi=%GW$6sYBcbn)V2tr7K9gDN;O;-|ccICk z$(5Q#Ca-(ug_Q+^9~=?VP7@16S{VsXmG<`gg#ZWP;Lp8=_f8B6fbaGDq;`}}18TBc z17zS8m<~sie?i^$pX%f~zB^1nS{?q|c4UzO;BCfaU_`4ZjzC@iC@-ovDx;a*-|6)l zC?APJ#9V@j0-Umii|6VHdKFMr{zHUqYWSDx*WwgyPR*QlDc-Jo+&w^Aa5j+EY6BYF zi1~TCLZDkPR-L@2Ine*t%TgsIws7z%qwy~cDce|2+!S|VouZLzN1<_m6( z4__IirQ$dxDG|X;S*?tSdSmYNY_qXj$?T4zY_r`b0oBX*K4HxORav(*-vTVWwM7`R z=`Tde?RnlmxtoXEI@(*7!`BR!87KBM1uawKD`VX3eAA-NJa}JW3Zxw6rC40r#BKj5 zEH*C~i-d<2hkr@Ky2Kf_%4ct~l5wVP<115?zz`Xm;K@|k--w3B0F-rD!3m(TiEk&I zEen8Hhr}GDDbynXd))G>3d|yhP6a#Yf)3)Ve5>MY&5y>NHWw?x56(%MPfAD3GQEy-P{*Qar>TP7D~|!dVMU z!iYxX$^N!tzVO+Zn}GecjyT9r34-`8T4qOZOD&UJ0u>g<-m4q`s2GXAEJ|Tk?w5}! z`ye2|!!g`+PUKD*0Z@mmn7?X@W4|6#;7_xUWe@~pL@$t4-k~YG3-@*glW-BCEJi*3 z{vic<`o8?_s1Sbd;q{Z)C#B%WI8=|xKvO)5zeKOG6}9(?Psz=URr6K02=Bpta?z*( zgG8_E`)>@wf*sb~KF(2Y_d;9M|QZ8wJ_^`<1$aEyLCjc996ET+uTKQu|l zihUFS1`(qEfKj`d|W(Tm>Gp9w++fD_5)j;n~$vo(R+3Y~2?nG_eT$_9c-0t=PIF={YJtY$fe*u`Aohm{df|FXSqrW^9jON?vW}CMS z0uCQB!<@DA&F!1QEAdA2-g@73_lZ_p=nw#ecO$jGRhE*9H=l_}|Mj~~Re#ikLh0}V zK3k7#q4{UANZQF_B?o=UBH8a4DkdF@O@>q6X|&*2L(lV?_+jV(Gx<>ZU4E%rQW=M4 z&H|Q$bZR%OoltK?xXHf3qgk+yJ!9d7tj$cNGl>mNCx(EM-vp zXKy`YNiqd;pKw(q2agnT>u{&?o;e=8X#Cc)1pCRee~O}#>#530Wr4IvYvzZROw7 z3vcjkYNzc;9Pal~+>6BXy%)zdz8(JH(5A3RM8U!2iDA@u;^`)qWVn4D<=|<5k38Z< zZ2`)0ib-t#V*x|5^+}tfrI*u+5>H~6=nc5#zKz)BFDXANYn~J z8W93|mwDt1lnOySo{!4}#?enFSNeWNS83E`_vz)r5*gluV>dc0cP0HOgo*A@;7?2DzsLzK##chgH1;r;=Ea5zrA|kHjeIKVrp$`Tk-XZL0>JC*I z4KZZytgP@%5QuzmH8I%%(f`v%dfI*^Hf_jCstb!hD0=Gm`IdTD{Zid0YS2r^627+T z@e}V_lsK9D8Lb^v=eQ|zq{2?>IiQnpABP_W(=L7(E=*x3iX~Dx9)C|n-UiMyF*3pd zzEewvd$L6Cm-_h{y{rNwQi!-dhI}BM=U@F64&fBCUt#*V%$AYL?ZkU!ToOZ6%gLYy zpC~K&Ay}?@7n4A7n`}u5St=wlgB-FoQT6I?UB&L8Uf(p+GtZrVh3&yGMEL zID$BVICpCEy69bkX9AnZU5UVBfD7cV^x&t!S8`Vd@Kqocg)1HSG*E@Yl?vP#=tbd5 z4vr7Z{x5=ny%esL;OoF&6t1M;=s<8vR|@cNKq^YmpbAi)(v=Ln2Ixo$s^I_=DM2Sx z0-OGe7~m=>zL`;>gIx@Qfq~IMyurA6xwyL9(LuUHfClVHf#_7O1mHbDMk-e#Zb%<= zFuN(*|CtEwVe4q+`+xIhi$E1=g8yydVe92-=lFjmbRgir7U95LP~iXJ!T_^lQ~aNa zkRBfYZx$tRp30RNd=7a1-{ejpEH&up8;}|lMB!nWV0KWE|8owkrG+R{Qp)Q7KlmbN&`Lw6!w3j(}DJK8dy&UI$eSSAIvTawAeKeZ?OJ$ zuK)k_nC`rxb5#e2fd}{|!J#0+Sd)6D9qC1OKJ55Af!{WL5bn`_r@fMYxk%}< zPv51>pzV8rxYN!HTAT5?L$aqWg)UjxQ0_>W^hFDZv2yy_Qj;eK)i*iV#zWGjD2szV0PWNgTg4xl3G_RmiUVX+$@& zkdRG-I3jqRC`7sd#tQYXF&X#mU?r8tDEw|KNQ*8jnFkdpDpikjT^25&+dJ{GDqm5YVX=R`CbxmH)&sjW*?Zq1HO4%;I(|kS*gV+U;hw5OOx&!Bo_*|nN;HvoqIn

+(zp5E=Nsk&2d3>;a(U|52@RaC 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 diff --git a/core/download_script.py b/core/download_script.py index 3d361dc..89dc412 100644 --- a/core/download_script.py +++ b/core/download_script.py @@ -1,8 +1,33 @@ import sys -from pytube import YouTube, Playlist +from pytube import YouTube, Playlist, cipher +from typing import List +from pytube.exceptions import RegexMatchError import subprocess import os +def fix(self, js: str): + import re + self.transform_plan: List[str] = cipher.get_transform_plan(js) + var_regex = re.compile(r"^[\w\$_]+\W") + var_match = var_regex.search(self.transform_plan[0]) + if not var_match: + raise RegexMatchError( + caller="__init__", pattern=var_regex.pattern + ) + var = var_match.group(0)[:-1] + self.transform_map = cipher.get_transform_map(js, var) + self.js_func_patterns = [ + r"\w+\.(\w+)\(\w,(\d+)\)", + r"\w+\[(\"\w+\")\]\(\w,(\d+)\)" + ] + + self.throttling_plan = cipher.get_throttling_plan(js) + self.throttling_array = cipher.get_throttling_function_array(js) + + self.calculated_n = None + +cipher.Cipher.__init__=fix + def download_track(url, download_path, download_type): if download_type == "track": yt = YouTube(url) diff --git a/main.py b/main.py index b89b2e0..c202c4d 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,7 @@ from core.main_window import Window name = "Youtube Music Desktop Player" -version = "1.2" +version = "1.2.1" current_dir = os.path.dirname(os.path.abspath(__file__)) username = getpass.getuser() diff --git a/notes.txt b/notes.txt index bd5f755..0bf8706 100644 --- a/notes.txt +++ b/notes.txt @@ -1,11 +1,4 @@ -1.2 Update! +1.2.1 Update! -- Changed the way message boxes are displayed, they are now frameless. -- The download finish info bar and download errors now contain buttons such as "Download Path" and "Error Message" for a more user-friendly app interface. -- The download process indicator is now in the status bar. -- The mini player is now not displayed in the taskbar and cannot be minimized to it. -- App settings are now only applied when the save button is pressed. -- The ffmpeg to convert a downloaded song to mp3 format is now bundled with the app and is not automatically downloaded. -- Added the ability to view the changelog of the latest available version. -- Now you can highlight web content again. +- Fixed "RegexMatchError: __init__: could not find match for ^\w+\W" error when downloading. - Other changes and improvements. \ No newline at end of file