From a5fa935e768e980187968ff304e59d58bfb1c962 Mon Sep 17 00:00:00 2001 From: Andy <88590076+AAndyProgram@users.noreply.github.com> Date: Thu, 14 Apr 2022 18:12:01 +0300 Subject: [PATCH] 3.0.0.7 Added script usage Fixed downloading of LPSG images Fixed Instagram Stories Fixed date/time file pattern --- Changelog.md | 10 ++ ProgramScreenshots/CreateUser.png | Bin 15859 -> 0 bytes ProgramScreenshots/CreateUserChannel.png | Bin 15856 -> 0 bytes ProgramScreenshots/CreateUserClear.png | Bin 15747 -> 17279 bytes ProgramScreenshots/MainContext.png | Bin 11115 -> 12610 bytes ProgramScreenshots/MainContext2.png | Bin 21513 -> 0 bytes ProgramScreenshots/SettingsBasis.png | Bin 24937 -> 27070 bytes SCrawler.Plugin.LPSG/Declarations.vb | 24 +++- .../My Project/AssemblyInfo.vb | 4 +- SCrawler.Plugin.LPSG/UserData.vb | 68 ++++++--- SCrawler/API/Base/UserDataBase.vb | 71 +++++++++- SCrawler/API/Instagram/UserData.vb | 1 + SCrawler/API/UserDataBind.vb | 16 +++ SCrawler/Content/Pictures/ScriptPic32.png | Bin 0 -> 490 bytes SCrawler/Download/VideosDownloaderForm.vb | 2 +- .../Editors/GlobalSettingsForm.Designer.vb | 58 ++++++-- SCrawler/Editors/GlobalSettingsForm.resx | 19 +++ SCrawler/Editors/GlobalSettingsForm.vb | 10 ++ SCrawler/Editors/UserCreatorForm.Designer.vb | 129 +++++++++++------- SCrawler/Editors/UserCreatorForm.resx | 19 +++ SCrawler/Editors/UserCreatorForm.vb | 45 +++++- SCrawler/MainFrame.Designer.vb | 13 +- SCrawler/MainFrame.vb | 27 ++++ SCrawler/My Project/AssemblyInfo.vb | 4 +- SCrawler/My Project/Resources.Designer.vb | 10 ++ SCrawler/My Project/Resources.resx | 37 ++--- SCrawler/SCrawler.vbproj | 1 + SCrawler/SettingsCLS.vb | 2 + 28 files changed, 455 insertions(+), 115 deletions(-) delete mode 100644 ProgramScreenshots/CreateUser.png delete mode 100644 ProgramScreenshots/CreateUserChannel.png delete mode 100644 ProgramScreenshots/MainContext2.png create mode 100644 SCrawler/Content/Pictures/ScriptPic32.png diff --git a/Changelog.md b/Changelog.md index 70895c6..4f9d67d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,13 @@ +# 3.0.0.7 + +- Added + - Ability to run a script after the user download if complete + - Hotkey ```F2``` for additional options in the user creation form +- Fixed + - (Issue #32) In some cases, Date and Time are still not added for Stories and Tagged Photos + - (Issue #33) Instagram Stories downloading error + - LPSG downloader does not download all content + # 3.0.0.6 - Added diff --git a/ProgramScreenshots/CreateUser.png b/ProgramScreenshots/CreateUser.png deleted file mode 100644 index 637177a94988022ca897b2a4dae43d9713477102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15859 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≠ZZ^HL`_c* z^Hf-W@J60M0Ka5e9h4nOc!W5t$2zkKVfHqB?H1E=tVQ}0;%u8iYTQtPc7$8>>5^l3 zMPK3%AI^_adI9F1Ob2pKbNk7(!e}{r-z}_yu*f@Gk?V-U>o&K=u|)ap8wY6x#Dx^8 z&GiiK5yX7w9o3LpOA`yvGR%yA+qJp&b~5|Dz@sbgqulfB?IY;!H!-ODdZt+z-q=o{ z4WTvPQ5a;}Ve89YIa4NNBcNb@$l2&W&*0TYGQt#!9Ugr~CLWCYmvkNe*b8U&a5X~L z3MG#{|GCiO_o%4~7A#8uw%aiMFndL6S@58H%mKGGpC&+T`9(QqBiM=L?DQYZ?f9jp zz@NY*WrE!QoW%WAzfc^@EajOBd_fG97*D>j{4tm1RW#kWVJ)B*(6%3wetiGuwAARi z&3>!Mai+OD3e9csoo>^KSuJ*J`aN6B)B6hn1^1?kMd|0n#0LefoFc+TG>Mv;%C2=| zzpBeR#0~R0U3KN5yX=T;S+5VLHYWoPBP-_VjvuVa9X=Pp?nq9ek!}&Ga=KCB8Mc>M z^1QXm4245GISW!{xaB>&>$jRbtF>y%UuKOxt)5KvdIoVBucA58OkNJsEv#JRv~6qt zfZOB4QH$f@o-3m+PyxDdSs2bJ?0B;>puDnOssuWOb0Ww5UO1pK9_P^ z#86-QyD{EOKzp=}A;ZzIM7#zp=`#7piK)g!B75``v^;Y2*F~%`3qJL0@yo>&9ySh< zK7&2SmcJC7>p!2{{P+@_oC=XI_OOD^mZ9$f)ujZxy&@YcPOQTPne&`MY&^*h-I`GI z@F$PYLgUhtcMee7IX_qPcA(Py?A9`n;KZam=>MlR{M^|Ii_n zU$gmzTL0J_9plmMG-H10So7W^28oe#{Ds8 zd#u#MDXF7?Dq~9Y+9i;$i!w}WA1_g zDK+lJHS^(QxO>}z%U9^1ey>Uz2^+)k`Q16I;(pT~Zs=<9PIJh3v{bJ384YP@lXt&L z#r(HGr@6YdceZndl|9kJrj|D>FaT1|$*o5<3@7DKrOpmtI@T-Z3PQo`k;5kvV%0La- zwOzl)(x<>^n&cvYZG9UT#Cj8RILEu{aKnG&{JA32GF5Vg~hw~Fp_WRYaj0(7c?cu^4 zc_6;cawG(humQ1bs>K+K>cY}#@Sl^1g5*sN-9HVtA=DZJ@3Uyr4sAddG$Yj3pIaR* zz@dcKd>r+aPPoFO1d;Qkg*HRlYwfcNN99cw&!F9+=_IddzU45*+MaZUKjB94@0di% z_s literal 15747 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 Pu0a|qy2|B>kAwdkL~jLs diff --git a/ProgramScreenshots/MainContext.png b/ProgramScreenshots/MainContext.png index 9253865c92c04c7a3e1bccaac473d04e73e9bf8d..48b1ceb4012fe515d784d523d622db38630c43ec 100644 GIT binary patch literal 12610 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 L%C%2lz5D+FnZyFy diff --git a/ProgramScreenshots/MainContext2.png b/ProgramScreenshots/MainContext2.png deleted file mode 100644 index f382bcb080bb9f6acb3a2042069c1a147bb2c786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21513 zcmb5Vbyyr-_br$N4;q4NaCi6M4k37BX*7*Xa7%D^3H|~NB*CF^Z!9=8!QBE0?htH> z_sci;-kIO?%rk#bKv(stQ&nfLz4qFxBHw5zVm~K){^ZFMY-J_6x4`fHCr_Tnp`!wS z`GP{mfL~AD-YUvGsTigB1^k0-Bdsp|UCE*nsJ1gdjGXm7q-6VoPK1n{Xe}M}5yjr1 zDtcBdqD{WqGnSz^(+=O)i6`J;d-#Bzua<8JXOFYx&%*X~m9Mo%)|%hX?71bki}Ehj zxK7_S>9d@~$o5IWg5~c`%(LG7pm9EOykeKDS`HKeNvF?!osO zUXIOIjW^#(>P9zq!=alA44zmB=sU9N=ce6%6;^T}yKt;J&i~;lDwoLfj@0dO&uLRH zF43UXkrf*IAx-DJdZY(?N&G;E&G-g#v{f$bJJNuE&?I*9@4ZUpH(Ae==EG>zSRV*W z#yx*}d{8%_`>r>|hC>a*l8L0!@~TAf^`MUD#Mqs1-W0!R{iNK28BA;i{=Uv0W8h9E zZ8t{8e#aU#?H~Lx)n@iofw(<*j4w{rl|ANoV^SU5NTKEDhi@O96$-Frz#l>3HU zu4PAl8N77Wn+LK4*x5hf(;MYKE%Xa^H`UH^tFtiN@$O58TDcj_{|fQR6&{hD?5Mkg2b<@gT&m=Y|5D@K0~ePzGeJcK@WYq$fkL*aMsh02>&ppFAA$M)GU>x#8Apay)ZOV6GOL5h=pZ+uPo-nkrhigi9jr3+uXU4T z`#kGT%aiY%k0z=6#Y+3Rk+7|#cJ0_1taRIP9*)_z_h84pXdvM;9!xdZZ^Yo+Ul6k` zr$f&B5?dziAFEB<7;>SwSLkRK`?3l3A6A5QNX03!Wz(zjPoB{POFi5s1N-t-=V_Pd zjtyt3nV0#<2wU;BEDUNAx`xuZj{B(tKYJaohemFX}5ojXy&aCBr`pWrf82bM6Xl^1v#@fL${LBPGe-Zq_y9SFk$HWv&wQnyjX_EpCV4dG4Xbj{bQnsB)R>MbMNunNjUo0WuvPhnFv>KQ;coWH=3v{PYB=Y z`LvOjYLL-7VXD`~$MpTM9yZ$>*WkMAxn^T{#@c8R6pFrnLY3YEZzz>mwk1l8LMsRn;qo> zx^h%iRN$EccFt>Xl&%*C|IBZc*W_Y+k+dYUU|kFwlgs*|`wekos<%(2=Qk`O*>6uB zUQ*o#i(!j&_8r0`tpVl-W!S^@bR0}!F=+D<7|oM%G6bG|e?H0pJI>sK1Y~uSXC}9E~?3xDifHIqa^hB4*iH$9jbp5ho>(mhRt=# zF~UFHm;AGwh^fRsq!w7YuE3(Y?Hpj9r^62wRs6^PA(E56+$HN(yx$l5-{5P>207yw z_0?CT<_1a2?19)k?5W+|L3`$!Ov)DQE85*?J()@nARh&qpv z(YjRfTNVb&sgptSfT0ydfY?X;mprZQ$h^`Og3~ zcQ4;`+3^lyXGb8^41}c4F_1>j6$o%ueT1zHroCdj-%Wok>Ne-%64aS)c1jIRtrQqs zlgMVysWOpJuL$cWI!)UwB8_+U_@I2F-0$rC+?|wTacr7Aqkz@nK5&x`=bAsvUxsdK zw$i@S8XGimWd-h)9C7s;vtAtaapi(=F_G4Q{ODBpay^!dg>pk~Trk~VWs{j8?px$v zEjviyQ`cikla3+#O$Gnlt<>Ere6#&SZWe&gYc_V3GT!F=hXS`;BFrQ1eY zX95aARa7R3fN?eAZhdtQ- zj=wZQ+o-MB2q9!wIfE@uy1uuilAa|3MnSMV%d1-B+3v3Ix~fvI(nUm#(|ZMd7i)$( z5Y|$u_e1j?$HmunV|4wJlmK|(Zib$J_9SRa?g+d2k+UQ2!Uu{MV$WAW;D>CCGdNuS zx*2yl(ZDkBdPc>fIPNqm4a|Weh7;13o+~}HGqNM?2x{$}<{Gk}nJxIMQ_pbg+TZ$`sRK>U|Zm`>Xu? z)?;-F#m{B8vY}fNto}_wuk6D)A>?tUu?iN`1@88!tbgbW=a0OJinibg+Zbf9(FbKC zE_)O*9+wU*gO9AT+y7`de=CL=8`!mbvYWSHAPpKyBDUV`#k!)tF|8JqGD>Ho9S~}m zymZad2y2TQ6PRGw*Z&l~M%0L$8aCXwof~<@`Y!()>{c=j*EiK1IEN4LExYxtV#jND zaTR+L+?mI#nXPL4)p-7excOOXMxzy)ns#d1WsU7+)q1d=1&qk`=vj|Dz;D=descwPijQFBhG$(NeVodK@A6yo}-Gq$W)>}hhG<9beFkD~MI zw%4%b(_#MGR0<7{n^novCq84N_}|N6FtWl%O&95bQW(ga?GzEiB)>5`{QKYUmf_%+ z0n=v&rZ2#T>Hm|0s2x6Q(HC$A#xGUgHFlCau7ZYZhY?~clAzY2vQrXuG?ntO#w*fs zMXzNeln(>97ThFpofv`T#cz#0-|IxUx*~P)*;7q-{`TR!qUh$^Ya7g19gB{dr&$8; z>%y4A2ygg@)+DlATC^+szPQ_`jego{JQ1yOsBxp8bKLj#LIUtIM{8)-e~;)xW~;Ur zTE@!8H|5gpg*UYIH?Anst;;(}^|$|!z9(v;YV9uv=(6?A%iKKp&ZkERPvv#1puAq~`DSKj( zf3tjG1A1RaW;{X9mc#*54(;E_yYt<6avOU*W-Wc?8Lj12GN<%6QXfikx$Y6;xB#^s z+ob&DX;29y?+^>%4ot0KzG<`(PZoUgFoYbCC6Nq6UNiWhyxVavhGpzZw$F6!?U4E5;cGt@U$pj%t+Ca7R`HS%^NLn={^2qkT*?ZhJX4>2#;KH`2NrK9%dGTjq zXj|Nj004O#)w^0tPEWt#WJS++sZKBon&^Tghjo+R{`qH$q_$y5;b{^-5mTU1giWqc zWx8uts3`iElIjm?^S@%Y>{|1TWfn0wIJ6&lk_NGJ+n7Oq`>Y~2Ch6Q!gowrW6N1SIm)Ol~uQ@@xL6@fh=6_o1515crZY<$g z7JHiKq5Z%?EwK`YU%dpZ!S!=s-hK!%YJ6g=OIVR1mr>QOmpbI!@BfZo(ES0AS>5_e zK{?KGEAgo6<>@3?L8ISnsYm=!!?C}yK_>TWylH^?zz<#`gGH$8sW}#Be$sRNja$%0 z?H)K5M$3I19FR~~HC6rds(EbABA)|`9iRhErf9I7X7H@Pho7M=VDW#C2QptsMRb0d)X1nt1M z;;r1Dik6uohJ1}V%N&*?e3GFfV?If+>rmOEt+xl+bEKXcacH^a{Tq23JP;*!X@dp- zO^bXUWk%^Crnk|Mt6IzV4uZ;{j0S%8jF^#x%7a&q#QNUc(9@H3Hg0D9fP|kAKZp7g zx|Lj$G>8DIp&`Q5z%ZA`Y~Xi6%Axzh`Jk%j!e^w9ZsH ztf<*wmMMk7>9#eTKf;2Anhmb-6+2>q13I8>5|Lfi0y7>gS{pg?|B1Icts~w}#)|Iy zD~k_^4h4_}g-Zkr|C`jl(o_xqyrL6=n>~hdcC!G?SADgDu}_nxJ!W-5_lA4*zXBQ? zyIwYmV2p8L3t`xGRPxvgJZm?x7jB}YB0n(d6~~fD@HWnE*aBA-@v=`bl=vq#5A;;0 zXySkaV)QCKn3vKQn(;)y`jE?_*uGSC>CQ1_FTbvSdiFr#xpss~SRvMRTV|vBek`*r zRk4ui@PQU7BEKMA-$Qf`?=4~o9b0d4baEErHJq4Ql&ax0J3oa(=)Kv@DW@^3J})8G zuy%uO@sW?kt4iW|X`ydcNL?ii`Pj#T7~-_t8X2?sZuN+OB3FPUn(2Duq_>t4{8$%C zcqDrKjQKSyIf?70;QPwOJo}dgH4r=}aVAiQ=~fhTivpM1E0^RdAa-U^Ta?(^U-Z%d zky4)kBrWs*X#>o~jE~p3(OTWF!8-O8Gz}(XuqGws7-Oc9&5iMx0|h-2FB*o`jInY1 za>RHc)GMu#MsC~doT?ApqGVF2Xd8on&Kv!21c68=s)~jgZVj&a zGVW`F!Hraep%1(+W5ZcY-*+fWj@$rwGhe^aqMDQ=evAWho-JLJ?41sH5e@6_d zEG}A0Y7nYGL0$jzMe8aj@|w@rKkdA%A>j5!L$PLmTLilJySGy4&*4aBW_vsHgp;ze z`!!^R*FS^>Oq1sr{pu6v_vn|D#=^13V(opX6Up~zIXc26Mv(8C%%pAyLvEK=s2k>v zE>V5`i=52FSK+*oO=Y+SxV}|dbaK_pSF_a?jqbZ?*w9qL=Y>5Yf|hn<#n|MPCJ7pE z$Jh`SBSS7?HzIBlz^H+AQ7hfK8GL9`XTO5UkfzCS!XpAzp8(3HRjxAH@)&mPV1I} zi-_3~Re0`vT%Z(N*Q>K_yj}}$yiV^}?OVAI^G{`?>znO%1v{K3#)Igz%7kgM{wc36 z2r{H-H^btS6VW+MDkzHwaOK@-RdK*?Hes?=HtWwP+})Wq^b1z!IuyY_dDw4{nc;+7A&Z9c_1lj<<&o>&1x=MC=hio+4HG&Tu{gm`3S)f@g0b zgg0{%?=BGB>mGLN22o50`jK?lrOSaJ)`hp-TQ^fyMDb>Ajw+veYl_ateMY#a#@>=9 zU0Hh@vYHX(gkCox#M^~1TU33eM9DhtcFlOffi}h#x5gC|oSddHzLy6guR$Avy{RUz z=a39uhHsaWjy0OSHl#jvwZvYUuSxx4${mC5{f*x%b^kYJRmRL*Spdjt)9ZFRrIIMX ztvU-f7I>qMchOgpXN`F?7Pvk`D~}AWyd8U3#oAa*H(N&}F*LfL7T*Dn7srk)y$<^g zUv5e^x!JP5bBb}w@C6U-L}$)12R6NB)d@c~GHC~0jr2Mqo=fbB9a>@z`7E&Ih|)|> zzLZL537%A&4UX|QUaoA1_x{ky@2_iviL(oa>{V@nvjtq(dy{D?GxlH< zo$FNy_pIOt@9e=86(-~>!`YE5fe%Zl2$gUr)`$1`E=ubLd}jhGG-jXPh~;8Q>$r66 z>pR14QBxvrTffV{Xiz;(PqSHSnqZX;7-ioo(*5^(I1$TKk`xWg{xh%GcO5D{4q~83 z&J-f9atVoUkbA%EG6O9<4>}9|i2~stmDF)m5}AsS6@CK?kFdOEdWtZAXqzj_%*|QX z2t3rK#!6Mq3Qi^L{2EW|mTbep1J@U_CPQI<2@^AHO+7gH+|B9=s6~In`#L6fx5aaV z2^Sa23&sUhu9s=uHrGeKvqNP^bP~Si7n=i(e%Cd>+S33s@BW`43k*5kZ&+DhY;p^V z0BN5F-0TZch_y_SecSoml4XITg`YP2Jn|ap z$I`&15q62g-noCC|43Bu`&C=`NIZ#t^lz-R(?Kw3iG_9MOK=a@yEvu9J4inH_5<_@ zIT4eBbw9@;`S?tR+jQx3w69pf9(y@BpU0)Gpg~QwMtBV*yAIO2FcnlVh>x5$bakg- z+Mi^)63AyXHKj)K6C%OoLtD@UZJ2{=dPisLh_@Sw@?QXy;TY#dn{SYPFxx4l**x7T1Vo{=XxF<*UYoouHH&u}?yP<6upGp?> zISs^w5Lkl#i^N_&j8De6s&4e@xB?>jhV1-5);e~6I(eN&ZfX+OHMD_ryp7>>>pe)$ zrRlS={QJN=S#QT`ifDw0M{qi3uSl%O?mRQ?X7hU*suctlps!Ga^~K1%z!-Hv@-(k* z^*ZXN=9IrOcrY{q_iOJOtPBexF56Zc_@GFjYg+M3m}5HCnP`u8zcx#1{eBt4%g>g; zbTKbx+f!k+_xxTB5!PA#O>N%w%FRjs*1L-5$&JQN{XjCD>>T05kMb{WjZy01i{^5iEDPS0q1mSrSc z6)q3@>rJIPqwcYCY)_;HH#YPVbB+0|U!Q#Qs)ym{R$3#9_4|kD{EwV>ofpM&;`-yM z=67P5+b&^ARccRi;}wwfi>sN-i!jj@6C124YXU{-ZkZf7lw)vG<9%=F+(q&{)CbKsEkLWi&Y-dD@@8ilX-2i5e$lLJ27v8ayI zSG7aD)KqK-fg^7=%MH;iW=EpWYu+|(ZVhc|Z*pLk?hk#f2;uujbzbV;%i0g()#`UG ztO%igaDH}~-e6I1@vhAtyLEPsnk)X###o`l@o!6C@kK!b+zJ!e-8M{SBNgjhtu4PO z%zmc``?!fBjjWNLopclwKo^y`ab!@6ljJ`rZfRxkrG(brr(1QHtG^k46sQmLB-=-F zO-W_o-3gx?B=`NnKrrQBPbYTCw&mCT`Xb4$9bwY_%CwH+!1 zO+lPga!WP`ka~JB*4)gWR`wr#ezm8@3AOU9sWe?3&Dn+9MI(6CRwSkqrUPE00)-pB zKH_Bg;{J}@>$)EkKvW8~3aJ12Z%uJO=Pdblc>tS&0m1IBrGwn;ZmZHnb*n#2^{pr)ESI66CC!FOjQ5o*1 zkW=#J2)sYvQ(+HxTQ(n@Cb4pC^&6P?*9!ZOIa+Mmu117}z1NZ7ey&o)p(Z-{EMbGA zkt52mI2mxczy(^-aQzS3M7OIK)Jqd=_ek`gU8Iip^v@jCOI@E zDl+L{(Vp!$t2AoB>5rp)$vfZf4`@N3KT7)FfZ28(`1tsEY<1A%a)pBz8V)zr=P9;p z$rxPVQzTPNg=~8H2|u#TK4Y<2k-+ENYy4tPZi|S8Wt;b=$T{+GWyOUWS-6rAQ$pxj zfY|0x;i)fM&CqAEbIRUUFZZjgp(_*3XKboo!#p9KjEL1s>#NeVhk2XDYO%#uFXX}B_L(eQE?g749Z`S>4r!Es*vToz#h~~#YH8};pmI*pxM{ah|$~z zJTAk}(OFIIY#s-*pBfv5hcg8*`D}(eJ*J0pAAUwTbQsg{%Lrh|Lt`}=>{Gfv!V+zv zJS|Gh7a1qKw2(#XV{Ze#*ig~Wp{Y0Yv|qFH><5M?4Fe_ViLs)I)oCktk~|W8*}Py* zA0s}Q;2o|I7v9u0Fgx_6IRt(5JXq|SVp}nn+;u?1p@;x?hk*w-2WC5*sN*QaBE!}6 z7W|uJ4kgOz+3m)~sa0cjlKKi@X`HVp_58L%NChLn0%mhfBfE;5h%~1m>@jt z42hSrn!DPR)sZiDLomAk03E!*Rz4cer`w~sy)GV7zV99a*j3egLuL)wO=0M}GZnqn z+S~T*9Nn{G-+QdE#~Ji2ey9}^jk)Hid4J#J+vCe2uk}w7FPEh5yR*iecyaMM9p+x@ z_X+2`Lyn8_Fyh{XTZnPC07lGZijS`#-@p1jU-l|fc}U&__U@@*nGu@V^oD8US-C@a zKdlU1G8T_|TYgQKa(5Wj0N#pLDUZtX-iynx#RK^`HC1bMYq7MlRD+lX9`|V{unRvD zyg1pdtAAxjg{h%J_kG))$zmSHcBKLpR!%kHb0HD{zI0ZUkJnluU7fuTM^WBzc|Sv@ z4tZIkA-hn&U-hudE{+fN3j$=+I85S>-X^Dt)f?){YB*J^N3CDTGULih!~h!Px|ek& z{$>QYAIJH!tIIW1>u|p+3y0^Uer<-j^TXu}+}6VeewW>vL1lxLJg%mBU%iuPpsxci zYbX>|*r+--d@qCuO%Q*)J;F3A>kU5hlZDrFc83-k=@#AH^>Hk=`BIP3uZRWs7crps z0}yY<=&+(OlE7_Eg8139ah8vz3+eR*J<3=0fS&J=IUTAPFNjV$P43G_WZ}4O@Cd&^ zpQpvs{?kz+5?=3t1Myg_eEbE+->%XAQk{UpwYRzb(JOilbm{GB?7u?v{z4l{bA!`! zDJRdf-DM(5&ujzY3>4pRGS}OM=->n1yL{*r? z1W{ooNItotXmR?D;0kBwQ$}*1a5XHdlGt|i#Cz#`?{Q>piv6D@uwsslQToR1zHB-S z)4GR_)|nag;&+U)Ru{?M#FR*pfQCe^qvZZ>*z(54@jj1Ozt;BL^pfw=llFC`rV6&b7R-Z*L zFMLmY%gs4<+b~n1`N_xM*ZRtZZ*de?u7@yeI{2Pg4W8P%iz|k0A@r#Fv8lbUhzVUs@Hin2S-+JUfLcL0ooMvaBqXG z`X{An!_xCXmTFl9TYiY&?IlxxN{r^-v)@hXk|l~nwbmitKc0Y{{X%c9EsaD|q8)VY zkvjc>oxNRIk4Qf)uf`ZMI|y`?%cKHFBRC-?JqjD06&wahyp#~N#j7vqOetyL)`Gzv zs|Sj7)7S~~CD@=)UtOb0fzNfZ8=&b4dRQ5=r2Pi7Xl{gtPHBo;Q(c@SEfam2(#mWg z+}gaj6`^T{=1>R_xh1Xh(6CaJzSUlxn2hZ3WxuuP$;a#dRw~%>Ec%$Tj;xT^Da@9v zycuYfkFB=FdNUu<3p@-s`ZW^^P@G5C$pr^lzSG#~`{^$@^MZB} z0SA=-ZAq2AktVp`(@tU5LpIa<8Zo9y^cM;)+8$b?ahC(BsRPewREXHZl6s?oB695= z(B{dv@@KRIr*LXv`TN4;5k1a-&(Al*0dLx9NvQM1_JEdv9YD_k?0Rf2OFcM0p9z$V zuT}I|4_8%8Xo86R-80iJ6-iy0+ljkE)jem?QtfWR`gaep#(r-qreUMA4_DlQrj6{T z)n5cL6|KeH*4*ows1yQEW}=|uko@lX%g&fOs*5F?zSh=KGJ)AXDEpqQ5*bUj;F9hV zbq&=DsiZLj%}TNon*rY~GCF0|9ROgCH;^XUwAuJ=4X6QfD4z%q&3OZo#VwT} z1n!?Pxd|feu7LkJ5p#q}Dr>%LQPj?KQ}C&B)`p*+g@s4W6iM$D(a_A7S|3t`-&VtO z{)Xu~AS6;%wzRHl$KG_rk^daajp=nO5iNlcZO5PV4U<)pC>qqgV#y0=vORgVTiMN(CbcSj(2z!Kqy)Cqvk7ad%S-$gUt{{EZ+^{Y3t|vMu`m6k22v?fj@fY4&uC1qtL_Em;J4sRKl# z3`!zBTOcpl4fw<&E>{Bc{>GdmrO|5im?}3|s8VrI86Af zc&g8GQl0X6I6yC%McJa-dJb!ERH--rj#Sv)kLzzFv>=FS-0o!Tm#UD%FC2TSgENSV z2#W}S)J%H_B$w_e%e|FqR5Z`>Zck#|wUg^gx0HHo8TY5a-0g!oA-D%7@k<${E}Od_ zD6HD{G71-TiU_SXm5K--N4Nx1#rmATaDX!=IgyjhbgsZ`oxJ~&1!nRv>}!8}IY%JX{@fZcX!t<(lQ9fD5u=2RbCAOZDT1r4tpeV21GpsfUh1kHK6K_64)jXKyEOx>zw{QDO691K)onFSIr-=F&hNJqa1 zt&-sJTBTUE7Fs{8)UR#9|CZfH?Xg!s_ns~`yAT2Z9L`1@x2XbB-82C$e<6r9?3`ux zM)G%n)^Tzn4O&!Z6D#kw0xRmW-hDQs300pn7aqG3&?B@RCzc085Mry7gvHFoavL$< zV8>7OOz?>lO{xyPZPyzb((AUUJDGw%R`w2m{ty~8Gn4X66ejXp;R6-IuMdb5DtK!b zYuNWRJxv%)^BI?71QVqP`Q+DVPIEjtc3I9SkWZ0ul79_9Ry8M?)%RU{7OwKY-J5+4a1(g)K16w1;JPsP|Sm6{F;TiQ0j4*g*CZZ(>cnNIYJid9ZFf* z!Ve!QDsMB?gj))w#bd8CNglJx55oGEcw~~H{7U^xRTVcM_*$@iOwX+1Rm2QH)PWK? zu1J-Lj?aRw-pa8r|4!_Ka;adqVw8FZ;3=tOX@-u>!k*t;LN}&k^Nzb4ww?Ly^edq5 zKSG`cc~MR_DXB=jXOpHt%hX40RGYd4g;N9*a)UKc}Ftv){gg%vZ8ik{li{-fV>Capf_ z*$zJc)m-vC1K_3U@kg5%?t3d$_;x?l82-c2FU)`1+Gk23QDzFt<;P3Do(Q5&{7)h` zYSvLEU_HW+^m;J4y~zpu$LkR@C;%~G#iqs;Eb`C~b-!u-{8Gg(d(Axam{!rZIj5E; zN8O@3LjZ11MNZuz%on8@nX;wH7qkc1A0Dp9IyNX7cLVS5aH9OrBvJW2`>0a|`3Z!k zbV*`mTI6JFQehWF{mvTd+E^nOP4FfU4#4AgVfGLO^n8f@PVxf5O3|pZ6k_v`qVtot zhM|d<=%%Kehy*CMBv*X%(i0^RT~zV35dD>Yh#k&8JkGuUN`{wXFb=l*3;k z$2%~Z;#3mZs=UagnaIcw)+7hROoHD&5TzZ9Bu}!U7Y$eKBG)u9zsy}c28|>x#h^iX)a-UKYdvxHQ`qDWt zn&vJ?>w5+~Gd*#V>uM?@^r5~G4Hm#k{xBG3DKEQy%&t^F z-nz$D4!Xl4QQ$J43t<4B&F|r-tv(*{ZGKj>aH>%b4q1|EmhfhTg4KQkZ;NyWZoJ!X z7NDWj8^%!{d{PH8ttX=@O|2xFp05}-GfgWx?HMcGI#qK1pd8KQIhU+8t6zDvyQMnH zRX+Z?NZ+eBAU~fq%--6YJLZI(^GVur1pa9Pl#rVr#1m&s;L-w9gHV=zttH{|Z81PS zl&IY>98@j!tE-y!fXu!%?E9lMT6&S?6++;TAPe>H4Y^~qlM2Hn-3vj8KFL4ULZUlC z%R%sh4GWxbY{2h2mUpIVXUJK~$K3`FTrl7+z$%&;$ueko|H9|PZVV3PeAiOj4LNQ3 zT0ml$%fBjf)f1@?htnuaY9IXRe1R7DqsOU9)%R>~iqfRTL;6tCf4toS?QhJsxF3d4 z9hi&*;@^kg2$X}io5!9vz?XNIYuTDxJmt4Jb0)?nU*3uTd9-l>JH-61-e8f6k}NMT zACdBs1U!BEm*U1@J^$G8;2aVf`ihqJ+1iV>zn}N1M|4HJc#8gU9dfhWQlgds*czz4z54RYphhEkGl#?O9M`ZSQt z`0i(n+}{h3RY0Mo6-S;d(dfDQj;POn1^T6ym{qst?KRx-=N(K z;)KxkhnnvsJdHrdma#u0Q3JP?YXd;>%sTVldNGYTB&Xcv6le~8!vIKjieP6TdKfn4 z$JsB=YB8k2Z=`IpGi`Rjbqvl5kn(ce$3vz)oddnj55n?uB~~YjS(=5M-5v|^U0eG_ zKMb;sal>X%5Ckr)DA<%;Gy%$Z!`o!Eq7o}^=8{LRX-M`9MTw^Pz!m$KRjC?2CqMvi z>g*yb1WF72>!RLk*FEz!84xL|^KyFsC^ar>eiL~2^;I8#LC<5wU10D>-&UtbYttq{ zlcQrX#ZJk>6b+sVNQ#x2Q{(lN?}pQs!u9W#H*Tl_mJubdg6gs@$UqWqM_(fh^j52uY1KAqd;1 z>l>npmG@>hc`Y2(s*Bjv0M)q?TD{AdkkP)576qtA!m1lmB8SLo z{OuyH=XoSmBf=+rCFhbW?yg{9kWD8-i~s+Qa>f6nK^TYDO%uU+nPqzvsMMxe*dRyx*q$^l-Z(ra`k`VbX%W9{aJu(*!|u zd*x5?&hKQ+_iCrx^LP#IAwTy&S{x?vAM|Y6P)VX(k;jk)+}=djXBGr(#!uv>HpcR} zvt1-P{S<@@TkE+h+CH@TDmq)=6=mzIA?4L@RW*qOuOQGbtn%+h-jhU?vV4?;F+@n$P zF%E+s+r=n*toz0L;mCr#)7Akwbn&@uA6pKEfv9JHrwDl<2$47_ek_Y+nmD*oxO!r{o_enDTy6B23?r3# zY7~H4Z(^}-YSV4Wcu-AV_Hpu8XY^#*jk*ObaI%%aTlPc5&qlHWEl|l72X)*Tt+}aC zz%fr5#NM>R$Ar}T8}8cPtmgc7;Jfa6_OctQ*(0Q?0p>%_>D>VTJ3^ehKlq9PzAWOW z+=sD;5Rn94UoZc7MkNCV9m2 z(q%!bhjTWb{PLlvtt8NVIqt!HI`fc6VwV#UC)IiE^w4=lDD)!R1CvifqJJN)J|PXf z_X%j(qVC>yY*~Dzke@X-IekkFp93r}xVhr}C$TNg2OWW{3k!j(KMSQ2o6kMfj64Zl zzOKC6&+q?S^;1xR>jwMNY2YWb6Rt-0hiV7t7CN>eFBbo~WLi&xUwsx=$5yheNKKXA zf1i{3{EcQVjl&&IOlB4GTJqZ$f+E;2w9_okeh`u*!=5Ehl1!#stS_c2z3Uk>?1K7R zia|~>rJpmA1&JE@M~GWUL8v8OE*q>bg1b#6&)V)*tH-lkMNkeT;OZCb@BH?EBSaUR zuE(7)+X4VDT1$LxCUk@-9fK`ms3`S2o63;01caem=hN-MRCc*!NI7t!e)TxS+(M0K zkB!opB`9J3H4J#i;Sr5^{-=#8CS)q$G~|`3qL*(8fDy)6K-B$zZCaFlxA%yQ7epg@ zUd-@r9I0BDy(;R4rj{l5c<&SQy-Z6@tYAt->v2oph$0>oC@Wi1+(fxKhs_8fdFnm6 z6nx^DjwD39*07|lwmz>5%AZgsj{ysy%@E8?#O48|D+Y*#-XY+f5ajq>y7c@)Ojh)# zm13kBrl%caJ*8$$8@-w?ULFF^HAfX^4M4&FSjUc95epCDLdrSfp(D6^O#62^o#j@Y zvEE)DJQLhHqiWn(sSQ1==`qZ=o~rcsEu36NuuP^ql)?G`80-cn6{JyzQeaT{p-}5i#7nw35 z(8eEYUcuvqUY@Mm@lAsCrp=`whYnT}w)l<|*vJ8fF~r+4ZkF328h|bO+*EBIiJZKI zMDzWdC{!*%LBSts81yQ%SY36TIJPq6h#{1;w6CcR1(Lkbo0Lj{lZ{ICg3^5Uv4nJw zwk@lukoFA=B9uY<0)li_h7U_{I$R{ZjC6c`< zo_OyJ`lVaHtpYNX1QFA!UXya4g|Kc9n0uqTGL;K#r&OT=Vf|ZyjME;+Mh10#q8h9a z_FP<0lH3%x`&*Lb%0?*L?$-W+2qk) zpRKIV&R3#oIX9G-2g}5OAsQZCfnFKDe_e^UVvS&(j^H)Z8UBR6OE&@ag$vHAgCMv= zTPab4khWvA+p`;!NxSxV-27{9kuk(`xC+Arh=xb%A6>qPRxmN-y6Q9Lclk|;vP_tt z@ArE%%Nt>Hrz~FxgB^)#17=&!{O{nnFet-Gm4||jLtAAD9#ixj)RL;9TM_ViIZ*U_bVa(-Xb#OX;&iK4}Q;Ruk$95K91C0 z3sl`t*zrC;OqkwdF9Z->oK1jwLCiy#F&wwY;K7tc3jQ*gE^L$8L1Xenm>+PRlquS1 zieVk+-*NkRdB&U`hBx93bz5kGUbs9H4`=LpDR%(KvBNuEpSi!`_FcL6zh9Azc>V+M zH33xd2JlO+Hb=bQU5=my#3bO=ArHO9H^a&#VP7}Us;Oqk2VOq=%fxe%SEId?@3_SR zgsuDj@Ivl#WI%N*;xrL6FP4|jm4_@%5`>>&CI=-@Y==kc`8B~`An<##LNp+ERm?0T zs>Px2d}6o?WC5euzZI$pH-i$M$MKJM^a?l%I?jQAC$_DL(<8%p(5g(A&;yOdE(BiN z{MSunEGV8U0Ves`gWazN{3)Jx08AIK9eMctcsCqz(iJp7SH>)9$cG;-N-!m- zqeE)09HJOl#+p(FiDey3h*~mqdvrzX{qfi{GpLE|NyY*Y@H>DAq}|U4vGA+1{H?^E zNBAi;val?ve)z;pt>#|Fzr)sjG`{W9i;;kHm@_|XZUQwClcKkU!rnWm+DW&$pqwc$-EaZS zR-)|cjpO#M&&;bb3+UFdP8!Ia1m=U92*{G;LOyub3|F*PHBv+x*l>iU1H?(frUtbbzkTD+q1brZX07-T>v4kDsg=YSvS_CpkwUdE4IlCLVhZVHBYoEq{^j%Otvg$L1<$M!_5+;?Y+!kFiUV^@xYergMbzm>rwW zdO6w8bFnE#!PM$bwzdqvMgQS>;ql!j(C& z8b6LZ^v`-^Nc0>uKm;~Lelidhqky<6TFjMk4{IXQJT97AzP*jYt@F?JOV&eY3x`f` zCd+=lteL)r7PAkVZP#=5>^>@UNeW;La(pg}byvu>O&thfi=EgTJ}i7%^23!J zTE}x-O#+8WkrU0 zD)1VVKs@l41}EfY{|yhMyDCb##r;kPTA8i%x9$!xGgFJE{AA_UZ@v+QTxNv-*Tk{k zNmb5c``!skk7}`mz_9;Jq5k(9E1V-dJ%ulK9qy{quoEZsHHdiM41Ip}FVsl4&3Dce z@-fDehFR4rSoAl4l|e-YYT?o%%3m9CiOUi^9wAIb459D(e-F&o1(5L~7%fcSBEz4d z{bPPz!wiCvL=murJwtiES{N@052p@@h$qSOyM6K8|Aa@9;|e1x0EAZ*O{8%B_WugW z4mR<{P_0Z!)F@jD)xIc(3dKG}u>v3AV-~+%lUnH9x)HjyZ-yS7TEnw~2J}a0;2?wr4M8|#c$$cLD5hCgQA7rL*Y;U zjRC!ypi|2lC{z3s)U8zxrHXurCUwi9&`1A9!4LlrEgMxqjS59kqf!YpbSuODKXuTy zX*D#gQ4&$3eNd-zVbmzk{+ET{MT5#k(5QMz)T>+)jjEPJhlUl=wr&M>%g;3Ido}Q5-q>_6iupp zjFvSDqHWDj(XC+#^lJVEdbTJF_hx0#yJbc6Yg-*&UFyQ8TVwe4X$wEkE*R$74TC+p z!@F-6^zYdLULHL#g#AB!eTQPG_dxjc?GDdw9Wl_o8v?!A|A}o2^6HPEfgT7N&<`U# zdaM3V^MjO>6r`u8-8E4CvklLp-}9(ANhe1BPLA*hox_pMY7($(TELE|QaH z3RfIgVdBIIn3NEW8B-=>dSVhL#!X;ijzCO=FQzAiV{T$3W=|fAsWG8QijP2YVhrX^ zi$n61SR_pd!^}zHNS!ko%TuOdPEsWJXXn#n12BW7!z`w

&^HOr!V&Ck)jR#~+B@(VPnTpVAPDul`<3!zxScbSy`Le;XLBFw)ld`Ona)c@@0>e}Bgp#Xp2+_xh+<`V$Q7(;O`uRKTEqEijUm*Q)7$bVszyKz0hgzSa&6fqxv33#mx-h#Km4Zi$ z(&*Qs4EndOj3M3XVVHX(jPz`W@WJkg^z%e?pf@6e24h^1H^PT|Ab3b$gpBaP*s@ zQ`(5(eb^PqogHv5ObQ!>)M=qulo$ekuO28}y0l5y;*4U&OQKk@5=`ErD9Qvb$@Y~k zRT`C{!ECi!I9&v3cGY zWGozy%oWqIarsPaT#<~0;|5?w%n(fKUJtPy-4M=%3verifTpZLH>il-b;_fwTUoTN zUJCWg6+y>lHCfMC6r~Hl$9l~#kuat|26U@~DrG)FcP3)JFH6F!M?EHQA=Im09K-rH zMU9Gu;l;#gU9T(x2eY1RKnpCG7J%9D12Jk?H+Xbp|JRyDSufX^^;qrT*RL7+x2=kS z9cp4|*E;N?(g9iEh%nxsY#bcUbO+p8(pWGSC;nlJXd^=V}P_Krpm+pjwKo3j}^Fc~X5K<>c zVC9S`ESbXEQLI0bMtdW1%uq~?4#m8=Gq7saDx|aav~2!t%!rG`9ClGnOP+>Rv!-HA z@>HyzJ_Rci~dXoR00A*I~=1wOF?@727g4;0SN;Khvhd!*a z560?wK}_CoG_F|!{kzx3(&Ujy2ne)OM?h;;i>9R-E;Wr9Q_OWy-N0_X{TR=Zw;9 zxLgL6D^|pp)vBRZjT-F!rzToAtdFj(nxRj}w&>liHF~sYgpLhrqCLm+^V8s zrSkZyN=3|M!p@Bk!P-UBv43X<4(!>A9hn=kd&d?W*tZME46Vq4oIX{9$~5W*?4iU5Mkm7vkF!nYfU(0Vj7a!F78Re$@SxKX2W=#Pmjde%t<)CV;;`zNyX_c3$Zq^1y+ysz~aCzm_48= zCUmQXSk^<1Y*QWmnP~l*R6;){ar^qL!S`x`jxF5aR=ET^FfkWQW&dNpE~xkgyG7|* z3-ziMLo?P>cWqt?13Ok>!^<}8mZlgwG_8R4jmjZ>7?XB%H#QV)i3s1;2p-%Oo*k=U zxO5Cw&kaIy%peSBy>(#k`Uvr8gh`{^(XU}S__Zp7Va>}R%BML-v-{cQ<61FV zVoh{wtchujwQ+5cI=%x^qkA%GdtyAxf0So^1iRP5p!QYSFuOeZHmic6ooXR`Kug5= z_rSCeFU%b`0?QIYux;*G>{~h>I~R<`mbu|rH+2NoP7h%tlz41kmV&QYdpdLGG`_uZ z1>c-Gg#$Y>*hO?XvNo*3(M_vyoN&Fj}jN?b7JB?M#b;%UfY!X7!W z7l#>VPaebh(1}+`m zfNK|z;HL{&IK?DAw|4<99!SHbLu+vE&{`(&4qQI62^aPEGgn`Ww(%B6mYzP_LrxAR6HAc6l z716F?Wz?=(997B{7JAT$tXCY!dclJ1o^}T7b$xo*L)FqB!Ox>1hWD(A?yYNJuzPLH zoj4G6Di>q-uyqj1#El8*i7>xz2=;1$siQk%=bCZYurL@K8Oh^4Fe}CjiD6wal1Urw z*MSXbD`7y*&(OPiA$T?{iAf_nVe#meSQgnDD`Prfc}yoPjp~4uv7L|_*B=X``yk@}EaRZT&9DvQq z!Pqb}j0qcs?WxmoaQ!l5ZC#HuCy(O0t5@;k)hjs5Ms7#8Zp877bvTi+7AH5aWh0rD zIJ!0!M^`R1{uf>6@fH`gY}pF<{PVIX{dqYQWpWl}!g6U1vKlDCF-pvP-pUoqp-#0b zXj!*5dbMc{&(0mtuVXuOYt{hG**$IJ>Q&J6t7>RmqYCO(seo!_%V0o{c33zmM38o4 z>MR^Pup6h?3FSTO<%{R>%g;aHhpU%y;p{16^<3j|@zOjn7fL^`gV*n;m*?O<%dw}(>k)BaibHZvCA ztQ&=IH$~vwDqo!07>P6K@wm91-GhxAi1kUKn8Ajw^Mc(mZD>1;@7oMPUEJWu#2xS3 zf%S}S;mz(Z`?hyOzs_~pJ!?_8RVjwC!My~DKlu0CST#RHkh99?1&|!wn+e$%pB4BQ zVuHJ3NjUgQHb`mz+er)9kyyDyzEW)R$4RYd%#4s4{<1IwoQVC5`-q)qolG8^6| z1hr@Pw$(5xxEn^e*G2bo@1xace@Cqn?;&M;Uo4Dhg|w(PSRLOLX>3S5FS0AE8m;gF7J3uNNW*_rUb9fmjml zgALP$WBv3%Y@9V3>yx9AKA#PjSIiNlJ(#`<$Fug}@|DZ@`Ntn{<=h!|?swqy)=fB> vu^uPW*W&obl{mI`8IG-9Z2T{}$^-cSN$NYS$V@-<00000NkvXXu0mjfzRV4d diff --git a/ProgramScreenshots/SettingsBasis.png b/ProgramScreenshots/SettingsBasis.png index 4c62877fea056b80106f2f02be8a919f4b1a9402..2d811afe21eb28505821e2f6e83b1152819afaf0 100644 GIT binary patch literal 27070 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 literal 24937 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 diff --git a/SCrawler.Plugin.LPSG/Declarations.vb b/SCrawler.Plugin.LPSG/Declarations.vb index 98cf79b..814f03b 100644 --- a/SCrawler.Plugin.LPSG/Declarations.vb +++ b/SCrawler.Plugin.LPSG/Declarations.vb @@ -9,10 +9,15 @@ Imports PersonalUtilities.Functions.RegularExpressions Friend Module Declarations Friend ReadOnly Property PhotoRegEx As RParams = RParams.DM("(https://www.lpsg.com/attachments)(.+?)(?="")", 0, RegexReturn.List) + Friend ReadOnly Property PhotoRegExExt As New RParams("img.data.src=""(/proxy[^""]+?)""", Nothing, 1, RegexReturn.List) With { + .Converter = Function(Input) $"https://www.lpsg.com/{SymbolsConverter.HTML.Decode(Input)}"} Friend ReadOnly Property NextPageRegex As RParams = RParams.DMS(" - - + + diff --git a/SCrawler.Plugin.LPSG/UserData.vb b/SCrawler.Plugin.LPSG/UserData.vb index 48cfa7b..c839d90 100644 --- a/SCrawler.Plugin.LPSG/UserData.vb +++ b/SCrawler.Plugin.LPSG/UserData.vb @@ -9,6 +9,7 @@ Imports PersonalUtilities.Functions.RegularExpressions Imports UStates = SCrawler.Plugin.PluginUserMedia.States Imports UTypes = SCrawler.Plugin.PluginUserMedia.Types +Imports Converters = PersonalUtilities.Functions.SymbolsConverter.Converters Public Class UserData : Implements IPluginContentProvider #Region "XML names" Private Const Name_LatestPage As String = "LatestPage" @@ -60,13 +61,13 @@ Public Class UserData : Implements IPluginContentProvider #End Region Private Property LatestPage As String = String.Empty Private Property Responser As Response = Nothing + Private Enum Mode : Internal : External : End Enum Public Sub GetMedia() Implements IPluginContentProvider.GetMedia Try If Not Responser Is Nothing Then Responser.Dispose() Responser = New Response With Responser : .Copy(Settings.Responser) : .Error = EDP.ThrowException : End With - Dim l As List(Of String) = Nothing Dim NextPage$ Dim r$ Dim _LPage As Func(Of String) = Function() If(LatestPage.IsEmptyString, String.Empty, $"page-{LatestPage}") @@ -78,35 +79,60 @@ Public Class UserData : Implements IPluginContentProvider Thrower.ThrowAny() If Not r.IsEmptyString Then NextPage = RegexReplace(r, NextPageRegex) - l.ListAddList(RegexReplace(r, PhotoRegEx), LAP.NotContainsOnly) + UpdateMediaList(RegexReplace(r, PhotoRegEx), Mode.Internal) + UpdateMediaList(RegexReplace(r, PhotoRegExExt), Mode.External) If NextPage = LatestPage Or NextPage.IsEmptyString Then Exit Do Else LatestPage = NextPage Else Exit Do End If Loop - If l.ListExists Then - Dim f As SFile - For Each u$ In l - If Not IsEmptyString(RegexReplace(u, FileExistsRegEx)) Then - f = CStr(RegexReplace(u, FileRegEx)) - f.Path = DataPath.CSFilePSN - f.Separator = "\" - TempMediaList.Add(New PluginUserMedia With {.ContentType = UTypes.Picture, .URL = u, .File = f}) - End If - Next - If TempMediaList.ListExists And ExistingContentList.ListExists Then _ - TempMediaList.RemoveAll(Function(m) ExistingContentList.Exists(Function(mm) mm.URL = m.URL)) - End If + If TempMediaList.ListExists And ExistingContentList.ListExists Then _ + TempMediaList.RemoveAll(Function(m) ExistingContentList.Exists(Function(mm) mm.URL = m.URL)) Catch oex As OperationCanceledException Catch dex As ObjectDisposedException Catch ex As Exception - LogProvider.Add(ex, "[LPSG.UserData.GetMedia]") + If Responser.StatusCode = Net.HttpStatusCode.ServiceUnavailable Then + LogProvider.Add("LPSG not available") + Else + LogProvider.Add(ex, "[LPSG.UserData.GetMedia]") + End If End Try End Sub + Private Sub UpdateMediaList(ByVal l As List(Of String), ByVal m As Mode) + If l.ListExists Then + Dim f As SFile + Dim u$ + Dim exists As Boolean + Dim r As RParams + Dim ude As New ErrorsDescriber(EDP.ReturnValue) + For Each url$ In l + If Not url.IsEmptyString Then u = SymbolsConverter.Decode(url, {Converters.HTML, Converters.ASCII}, ude) Else u = String.Empty + If Not u.IsEmptyString Then + exists = Not IsEmptyString(RegexReplace(u, FileExistsRegEx)) + If m = Mode.Internal Then + r = FileRegEx + Else + r = FileRegExExt + If Not exists Then + r = FileRegExExt2 + exists = Not IsEmptyString(RegexReplace(u, FileRegExExt2)) + End If + End If + If exists Then + f = CStr(RegexReplace(u, r)) + f.Path = DataPath.CSFilePSN + f.Separator = "\" + If f.Extension.IsEmptyString Then f.Extension = "jpg" + TempMediaList.ListAddValue(New PluginUserMedia With {.ContentType = UTypes.Picture, .URL = url, .File = f}, TempListAddParams) + End If + End If + Next + End If + End Sub Public Sub Download() Implements IPluginContentProvider.Download Try - With Responser : .UseWebClient = True : .UseWebClientCookies = True : End With + With Responser : .UseWebClient = True : .UseWebClientCookies = True : .ResetError() : End With If TempMediaList.ListExists Then Dim m As PluginUserMedia Dim eweb As ErrorsDescriber = EDP.ThrowException @@ -122,8 +148,12 @@ Public Class UserData : Implements IPluginContentProvider Else m.DownloadState = UStates.Skipped End If - Catch ex As Exception - m.DownloadState = UStates.Skipped + Catch wex As Exception + If Responser.Client.StatusCode = Net.HttpStatusCode.ServiceUnavailable Then + LogProvider.Add("LPSG not available") + Else + m.DownloadState = UStates.Skipped + End If End Try RaiseEvent ProgressChanged(1) TempMediaList(i) = m diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb index 215d76b..517cdc3 100644 --- a/SCrawler/API/Base/UserDataBase.vb +++ b/SCrawler/API/Base/UserDataBase.vb @@ -10,6 +10,7 @@ Imports PersonalUtilities.Functions.XML Imports PersonalUtilities.Functions.RegularExpressions Imports PersonalUtilities.Forms.Toolbars Imports PersonalUtilities.Tools.WEB +Imports PersonalUtilities.Tools Imports System.IO Imports System.Net Imports System.Threading @@ -115,6 +116,9 @@ Namespace API.Base Private Const Name_PicturesCount As String = "PicturesCount" Private Const Name_LastUpdated As String = "LastUpdated" + Private Const Name_ScriptUse As String = "ScriptUse" + Private Const Name_ScriptFile As String = "ScriptFile" + Private Const Name_DataMerging As String = "DataMerging" #Region "Downloaded data" Private Const Name_MediaType As String = "Type" @@ -405,6 +409,10 @@ BlockNullPicture: End Get End Property #End Region +#Region "Script" + Friend Overridable Property ScriptUse As Boolean = False Implements IUserData.ScriptUse + Friend Overridable Property ScriptFile As SFile Implements IUserData.ScriptFile +#End Region #End Region #Region "Plugins Support" Protected Event ProgressChanged As IPluginContentProvider.ProgressChangedEventHandler Implements IPluginContentProvider.ProgressChanged @@ -576,6 +584,17 @@ BlockNullPicture: DownloadedVideos(True) = x.Value(Name_VideoCount).FromXML(Of Integer)(0) DownloadedPictures(True) = x.Value(Name_PicturesCount).FromXML(Of Integer)(0) LastUpdated = AConvert(Of Date)(x.Value(Name_LastUpdated), ADateTime.Formats.BaseDateTime, Nothing) + ScriptUse = x.Value(Name_ScriptUse).FromXML(Of Boolean)(False) + Dim s$ = x.Value(Name_ScriptFile) + If Not s.IsEmptyString Then + If SFile.IsDirectory(s) Then + ScriptFile = s + Else + ScriptFile = New SFile(s) With {.Path = MyFile.Path} + End If + Else + ScriptFile = Nothing + End If DataMerging = x.Value(Name_DataMerging).FromXML(Of Boolean)(False) ChangeCollectionName(x.Value(Name_CollectionName), False) Labels.ListAddList(x.Value(Name_LabelsName).StringToList(Of String, List(Of String))("|", EDP.ReturnValue), LAP.NotContainsOnly, LAP.ClearBeforeAdd) @@ -615,6 +634,16 @@ BlockNullPicture: x.Add(Name_VideoCount, DownloadedVideos(True)) x.Add(Name_PicturesCount, DownloadedPictures(True)) x.Add(Name_LastUpdated, AConvert(Of String)(LastUpdated, ADateTime.Formats.BaseDateTime, String.Empty)) + x.Add(Name_ScriptUse, ScriptUse.BoolToInteger) + If Not ScriptFile.IsEmptyString Then + If ScriptFile.Path = MyFile.Path Then + x.Add(Name_ScriptFile, ScriptFile.File) + Else + x.Add(Name_ScriptFile, ScriptFile) + End If + Else + x.Add(Name_ScriptFile, String.Empty) + End If x.Add(Name_CollectionName, CollectionName) x.Add(Name_LabelsName, Labels.ListToString(, "|", EDP.ReturnValue)) x.Add(Name_DataMerging, DataMerging.BoolToInteger) @@ -760,6 +789,7 @@ BlockNullPicture: If DownloadedTotal(False) > 0 Or EnvirChanged.Invoke Then If __SaveData Then LastUpdated = Now + RunScript() DownloadedPictures(True) = SFile.GetFiles(User.File.CutPath, "*.jpg|*.jpeg|*.png|*.gif|*.webm",, EDP.ReturnValue).Count DownloadedVideos(True) = SFile.GetFiles(User.File.CutPath, "*.mp4|*.mkv|*.mov", SearchOption.AllDirectories, EDP.ReturnValue).Count If Labels.Contains(LabelsKeeper.NoParsedUser) Then Labels.Remove(LabelsKeeper.NoParsedUser) @@ -919,16 +949,10 @@ BlockNullPicture: Dim ff As SFile = Nothing Try If Not f.IsEmptyString AndAlso f.Exists Then - Dim d As Date? = m.Post.Date If Settings.FileReplaceNameByDate Then - Dim dd$ = AConvert(Of String)(If(d, Now), FileDateAppenderProvider, String.Empty) ff = f - ff.Name = dd + ff.Name = String.Format(FileDateAppenderPattern, f.Name, CStr(AConvert(Of String)(If(m.Post.Date, Now), FileDateAppenderProvider, String.Empty))) ff = SFile.Indexed_IndexFile(ff,, New NumberedFile(ff)) - ElseIf d.HasValue AndAlso (Settings.FileAddDateToFileName Or Settings.FileAddTimeToFileName) AndAlso - (Not FileDateAppenderProvider Is Nothing And Not FileDateAppenderPattern.IsEmptyString) Then - ff = f - ff.Name = String.Format(FileDateAppenderPattern, f.Name, CStr(AConvert(Of String)(d.Value, FileDateAppenderProvider, String.Empty))) End If If Not ff.Name.IsEmptyString Then My.Computer.FileSystem.RenameFile(f, ff.File) : Return ff End If @@ -938,6 +962,27 @@ BlockNullPicture: Return f End Try End Function + Private Sub RunScript() + Try + If ScriptUse Then + Dim ScriptPattern$ + If Not ScriptFile.IsEmptyString Then + ScriptPattern = ScriptFile + Else + ScriptPattern = Settings.ScriptFile.Value + End If + If Not ScriptPattern.IsEmptyString Then + ScriptPattern &= " {0}" + Using b As New BatchExecutor With {.RedirectStandardError = True} + b.Execute({String.Format(ScriptPattern, MyFile.CutPath(1).ToString)}, EDP.SendInLog + EDP.ThrowException) + If b.HasError Or Not b.ErrorOutput.IsEmptyString Then Throw New Exception(b.ErrorOutput, b.ErrorException) + End Using + End If + End If + Catch ex As Exception + LogError(ex, "script execution error") + End Try + End Sub #End Region #Region "Delete, Move, Merge" Friend Overridable Function Delete() As Integer Implements IUserData.Delete @@ -990,6 +1035,11 @@ BlockNullPicture: End If f.CutPath.Exists(SFO.Path) Directory.Move(UserBefore.File.CutPath(, EDP.ThrowException).Path, f.Path) + If Not ScriptFile.IsEmptyString AndAlso ScriptFile.Path = UserBefore.File.Path Then + Dim ff As SFile = ScriptFile + f.Path = MyFile.Path + ScriptFile = ff + End If Settings.UsersList.Remove(UserBefore) Settings.UpdateUsersList(User) UpdateUserInformation() @@ -1043,6 +1093,11 @@ BlockNullPicture: New ErrorsDescriber(False, False, False, New List(Of SFile))).Count = 0 Then UserBefore.File.CutPath.Delete(SFO.Path, Settings.DeleteMode, EDP.SendInLog) End If + If Not ScriptFile.IsEmptyString AndAlso ScriptFile.Path = UserBefore.File.Path Then + Dim f As SFile = ScriptFile + f.Path = MyFile.Path + ScriptFile = f + End If UpdateUserInformation() End If Catch ioex As InvalidOperationException When ioex.HelpLink = 1 @@ -1207,6 +1262,8 @@ BlockNullPicture: ReadOnly Property Key As String Property DownloadImages As Boolean Property DownloadVideos As Boolean + Property ScriptUse As Boolean + Property ScriptFile As SFile Function GetLVI(ByVal Destination As ListView) As ListViewItem Function GetLVIGroup(ByVal Destination As ListView) As ListViewGroup Sub LoadUserInformation() diff --git a/SCrawler/API/Instagram/UserData.vb b/SCrawler/API/Instagram/UserData.vb index 9561b45..cca72cd 100644 --- a/SCrawler/API/Instagram/UserData.vb +++ b/SCrawler/API/Instagram/UserData.vb @@ -193,6 +193,7 @@ Namespace API.Instagram Case Sections.Stories If Not StoriesRequested Then StoriesList = GetStoriesList() + StoriesRequested = True MySiteSettings.TooManyRequests(False) RequestsCount += 1 ThrowAny(Token) diff --git a/SCrawler/API/UserDataBind.vb b/SCrawler/API/UserDataBind.vb index 3f753f7..a0b2a7e 100644 --- a/SCrawler/API/UserDataBind.vb +++ b/SCrawler/API/UserDataBind.vb @@ -207,6 +207,18 @@ Namespace API Return Count > 0 AndAlso Collections.Exists(Function(c) c.FitToAddParams) End Get End Property + Friend Overrides Property ScriptUse As Boolean + Get + Return Count > 0 AndAlso Collections.Exists(Function(c) c.ScriptUse) + End Get + Set(ByVal u As Boolean) + If Count > 0 Then Collections.ForEach(Sub(ByVal c As IUserData) + Dim b As Boolean = c.ScriptUse = u + c.ScriptUse = u + If Not b Then c.UpdateUserInformation() + End Sub) + End Set + End Property #Region "Context buttons" Friend ReadOnly Property ContextDown As ToolStripMenuItem() Get @@ -336,6 +348,7 @@ Namespace API .Favorite = Favorite .ReadyForDownload = ReadyForDownload ConsolidateLabels() + ConsolidateScripts() .UpdateUserInformation() End If ImageHandler(_Item, False) @@ -381,6 +394,9 @@ Namespace API Collections.ForEach(Sub(c) c.Labels.ListAddList(l, lp)) End If End Sub + Private Sub ConsolidateScripts() + If Count > 1 AndAlso ScriptUse Then Collections.ForEach(Sub(c) c.ScriptUse = True) + End Sub Friend Sub AddRange(ByVal _Items As IEnumerable(Of IUserData)) If Not _Items Is Nothing AndAlso _Items.Count > 0 Then For i% = 0 To _Items.Count - 1 : Add(_Items(i)) : Next diff --git a/SCrawler/Content/Pictures/ScriptPic32.png b/SCrawler/Content/Pictures/ScriptPic32.png new file mode 100644 index 0000000000000000000000000000000000000000..bd94f7d023a2bc3d091eac0f136265c770410f10 GIT binary patch literal 490 zcmV zgv^XAu&^l(JOEoqJK);5!o<=h=urQkcoRZxZ3-1N{gM-I2mW(7w;}f`_y*T?Zviw& z73|KE^hCN7LcD@dLX3|9j7ci?4+lA+5S9{R{!Gd*77L6gu0oYu%Z5yptOB(NucDpS@3^D-;s=;aCJ`G5Z{zPaAQ3_+{ssa-r)w;_~<~{(TJ;3WewaTER{;=^?ImQt2`jKF@K-u@H}G4^AUiO@LkYibH0cM21w{OJS7cf g?O`aM=i!ii02BzC-P-z0y8r+H07*qoM6N<$f{!%S@c;k- literal 0 HcmV?d00001 diff --git a/SCrawler/Download/VideosDownloaderForm.vb b/SCrawler/Download/VideosDownloaderForm.vb index 5a8f2e0..21fa905 100644 --- a/SCrawler/Download/VideosDownloaderForm.vb +++ b/SCrawler/Download/VideosDownloaderForm.vb @@ -129,7 +129,7 @@ Namespace DownloadObjects With Settings.LatestSavingPath If Not .Value.IsEmptyString Then If .Value.Exists(SFO.Path, False) Then - .Value.Open(SFO.Path, EDP.ShowMainMsg) + GlobalOpenPath(.Value, EDP.ShowMainMsg) Else MsgBoxE($"Path [{ .Value}] does not exists!", MsgBoxStyle.Exclamation) End If diff --git a/SCrawler/Editors/GlobalSettingsForm.Designer.vb b/SCrawler/Editors/GlobalSettingsForm.Designer.vb index 53c69f5..030eca3 100644 --- a/SCrawler/Editors/GlobalSettingsForm.Designer.vb +++ b/SCrawler/Editors/GlobalSettingsForm.Designer.vb @@ -28,6 +28,8 @@ Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel Dim LBL_DATE_POS As System.Windows.Forms.Label Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TT_MAIN As System.Windows.Forms.ToolTip Dim TP_CHANNELS_IMGS As System.Windows.Forms.TableLayoutPanel Dim TAB_BASIS As System.Windows.Forms.TabPage @@ -56,6 +58,7 @@ Me.CH_FAST_LOAD = New System.Windows.Forms.CheckBox() Me.TXT_FOLDER_CMD = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.CH_RECYCLE_DEL = New System.Windows.Forms.CheckBox() + Me.TXT_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.CH_COPY_CHANNEL_USER_IMAGE = New System.Windows.Forms.CheckBox() Me.CH_DEF_TEMP = New System.Windows.Forms.CheckBox() Me.CH_DOWN_IMAGES = New System.Windows.Forms.CheckBox() @@ -93,6 +96,7 @@ TP_FILE_NAME.SuspendLayout() TP_FILE_PATTERNS.SuspendLayout() CType(Me.TXT_FOLDER_CMD, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).BeginInit() TP_CHANNELS_IMGS.SuspendLayout() CType(Me.TXT_CHANNELS_ROWS, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TXT_CHANNELS_COLUMNS, System.ComponentModel.ISupportInitialize).BeginInit() @@ -127,10 +131,11 @@ TP_BASIS.Controls.Add(Me.CH_FAST_LOAD, 0, 12) TP_BASIS.Controls.Add(Me.TXT_FOLDER_CMD, 0, 13) TP_BASIS.Controls.Add(Me.CH_RECYCLE_DEL, 0, 14) + TP_BASIS.Controls.Add(Me.TXT_SCRIPT, 0, 15) TP_BASIS.Dock = System.Windows.Forms.DockStyle.Fill TP_BASIS.Location = New System.Drawing.Point(3, 3) TP_BASIS.Name = "TP_BASIS" - TP_BASIS.RowCount = 16 + TP_BASIS.RowCount = 17 TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) @@ -146,8 +151,9 @@ TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_BASIS.Size = New System.Drawing.Size(570, 447) + TP_BASIS.Size = New System.Drawing.Size(570, 450) TP_BASIS.TabIndex = 0 ' 'TXT_GLOBAL_PATH @@ -510,6 +516,30 @@ Me.CH_RECYCLE_DEL.Text = "Delete data to recycle bin" Me.CH_RECYCLE_DEL.UseVisualStyleBackColor = True ' + 'TXT_SCRIPT + ' + ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image) + ActionButton8.Index = 0 + ActionButton8.Name = "BTT_OPEN" + ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image) + ActionButton9.Index = 1 + ActionButton9.Name = "BTT_CLEAR" + Me.TXT_SCRIPT.Buttons.Add(ActionButton8) + Me.TXT_SCRIPT.Buttons.Add(ActionButton9) + Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox + Me.TXT_SCRIPT.CaptionText = "Script" + Me.TXT_SCRIPT.CaptionToolTipEnabled = True + Me.TXT_SCRIPT.CaptionToolTipText = "Default script. If the checkbox is checked, newly created users will be created u" & + "sing the script option." + Me.TXT_SCRIPT.ChangeControlsEnableOnCheckedChange = False + Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 425) + Me.TXT_SCRIPT.Name = "TXT_SCRIPT" + Me.TXT_SCRIPT.PlaceholderEnabled = True + Me.TXT_SCRIPT.PlaceholderText = "Enter script path here..." + Me.TXT_SCRIPT.Size = New System.Drawing.Size(562, 22) + Me.TXT_SCRIPT.TabIndex = 15 + ' 'CH_COPY_CHANNEL_USER_IMAGE ' Me.CH_COPY_CHANNEL_USER_IMAGE.AutoSize = True @@ -659,7 +689,7 @@ TAB_BASIS.Location = New System.Drawing.Point(4, 22) TAB_BASIS.Name = "TAB_BASIS" TAB_BASIS.Padding = New System.Windows.Forms.Padding(3) - TAB_BASIS.Size = New System.Drawing.Size(576, 453) + TAB_BASIS.Size = New System.Drawing.Size(576, 456) TAB_BASIS.TabIndex = 0 TAB_BASIS.Text = "Basis" ' @@ -669,7 +699,7 @@ TAB_DEFAULTS.Location = New System.Drawing.Point(4, 22) TAB_DEFAULTS.Name = "TAB_DEFAULTS" TAB_DEFAULTS.Padding = New System.Windows.Forms.Padding(3) - TAB_DEFAULTS.Size = New System.Drawing.Size(576, 453) + TAB_DEFAULTS.Size = New System.Drawing.Size(576, 481) TAB_DEFAULTS.TabIndex = 1 TAB_DEFAULTS.Text = "Defaults" ' @@ -693,7 +723,7 @@ TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_DEFS.Size = New System.Drawing.Size(570, 447) + TP_DEFS.Size = New System.Drawing.Size(570, 475) TP_DEFS.TabIndex = 0 ' 'TAB_DEFS_CHANNELS @@ -702,7 +732,7 @@ TAB_DEFS_CHANNELS.Location = New System.Drawing.Point(4, 22) TAB_DEFS_CHANNELS.Name = "TAB_DEFS_CHANNELS" TAB_DEFS_CHANNELS.Padding = New System.Windows.Forms.Padding(3) - TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 453) + TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 481) TAB_DEFS_CHANNELS.TabIndex = 4 TAB_DEFS_CHANNELS.Text = "Channels" ' @@ -726,7 +756,7 @@ TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_CHANNELS.Size = New System.Drawing.Size(570, 447) + TP_CHANNELS.Size = New System.Drawing.Size(570, 475) TP_CHANNELS.TabIndex = 0 ' 'TXT_CHANNEL_USER_POST_LIMIT @@ -758,7 +788,7 @@ Me.TAB_MAIN.Location = New System.Drawing.Point(0, 0) Me.TAB_MAIN.Name = "TAB_MAIN" Me.TAB_MAIN.SelectedIndex = 0 - Me.TAB_MAIN.Size = New System.Drawing.Size(584, 479) + Me.TAB_MAIN.Size = New System.Drawing.Size(584, 482) Me.TAB_MAIN.TabIndex = 1 ' 'CONTAINER_MAIN @@ -767,13 +797,13 @@ 'CONTAINER_MAIN.ContentPanel ' Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TAB_MAIN) - Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 479) + Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 482) Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0) Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN" Me.CONTAINER_MAIN.RightToolStripPanelVisible = False - Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 479) + Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 507) Me.CONTAINER_MAIN.TabIndex = 0 Me.CONTAINER_MAIN.TopToolStripPanelVisible = False ' @@ -781,15 +811,15 @@ ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(584, 479) + Me.ClientSize = New System.Drawing.Size(584, 507) Me.Controls.Add(Me.CONTAINER_MAIN) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.KeyPreview = True Me.MaximizeBox = False - Me.MaximumSize = New System.Drawing.Size(600, 518) + Me.MaximumSize = New System.Drawing.Size(600, 546) Me.MinimizeBox = False - Me.MinimumSize = New System.Drawing.Size(600, 518) + Me.MinimumSize = New System.Drawing.Size(600, 546) Me.Name = "GlobalSettingsForm" Me.ShowInTaskbar = False Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide @@ -809,6 +839,7 @@ TP_FILE_PATTERNS.ResumeLayout(False) TP_FILE_PATTERNS.PerformLayout() CType(Me.TXT_FOLDER_CMD, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).EndInit() TP_CHANNELS_IMGS.ResumeLayout(False) CType(Me.TXT_CHANNELS_ROWS, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_CHANNELS_COLUMNS, System.ComponentModel.ISupportInitialize).EndInit() @@ -862,5 +893,6 @@ Private WithEvents CH_FAST_LOAD As CheckBox Private WithEvents TXT_FOLDER_CMD As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents CH_RECYCLE_DEL As CheckBox + Private WithEvents TXT_SCRIPT As PersonalUtilities.Forms.Controls.TextBoxExtended End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Editors/GlobalSettingsForm.resx b/SCrawler/Editors/GlobalSettingsForm.resx index 16e5e4e..3a5689c 100644 --- a/SCrawler/Editors/GlobalSettingsForm.resx +++ b/SCrawler/Editors/GlobalSettingsForm.resx @@ -212,6 +212,25 @@ xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb index 05ec89e..50cbe97 100644 --- a/SCrawler/Editors/GlobalSettingsForm.vb +++ b/SCrawler/Editors/GlobalSettingsForm.vb @@ -36,6 +36,8 @@ Namespace Editors TXT_FOLDER_CMD.Text = .OpenFolderInOtherProgram TXT_FOLDER_CMD.Checked = .OpenFolderInOtherProgram.Attribute CH_RECYCLE_DEL.Checked = .DeleteToRecycleBin + TXT_SCRIPT.Checked = .ScriptFile.Attribute + TXT_SCRIPT.Text = .ScriptFile.Value 'Defaults CH_SEPARATE_VIDEO_FOLDER.Checked = .SeparateVideoFolder.Value CH_DEF_TEMP.Checked = .DefaultTemporary @@ -123,6 +125,8 @@ Namespace Editors .OpenFolderInOtherProgram.Value = TXT_FOLDER_CMD.Text .OpenFolderInOtherProgram.Attribute.Value = TXT_FOLDER_CMD.Checked .DeleteToRecycleBin.Value = CH_RECYCLE_DEL.Checked + .ScriptFile.Value = TXT_SCRIPT.Text + .ScriptFile.Attribute.Value = TXT_SCRIPT.Checked 'Defaults .SeparateVideoFolder.Value = CH_SEPARATE_VIDEO_FOLDER.Checked .DefaultTemporary.Value = CH_DEF_TEMP.Checked @@ -195,6 +199,12 @@ Namespace Editors CH_FILE_TIME.Enabled = b ChangePositionControlsEnabling() End Sub + Private Sub TXT_SCRIPT_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_SCRIPT.ActionOnButtonClick + If Sender.DefaultButton = ActionButton.DefaultButtons.Open Then + Dim f As SFile = SFile.SelectFiles(TXT_SCRIPT.Text, False, "Select script file",, EDP.None).FirstOrDefault + If Not f.IsEmptyString Then TXT_SCRIPT.Text = f + End If + End Sub Private Sub CH_COPY_CHANNEL_USER_IMAGE_CheckedChanged(sender As Object, e As EventArgs) Handles CH_COPY_CHANNEL_USER_IMAGE.CheckedChanged CH_COPY_CHANNEL_USER_IMAGE_ALL.Enabled = CH_COPY_CHANNEL_USER_IMAGE.Checked End Sub diff --git a/SCrawler/Editors/UserCreatorForm.Designer.vb b/SCrawler/Editors/UserCreatorForm.Designer.vb index b5c954a..234473e 100644 --- a/SCrawler/Editors/UserCreatorForm.Designer.vb +++ b/SCrawler/Editors/UserCreatorForm.Designer.vb @@ -29,6 +29,8 @@ Dim TP_DOWN_OPTIONS As System.Windows.Forms.TableLayoutPanel Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() + Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TT_MAIN As System.Windows.Forms.ToolTip Me.TXT_USER = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.CH_IS_CHANNEL = New System.Windows.Forms.CheckBox() @@ -47,6 +49,7 @@ Me.CH_DOWN_IMAGES = New System.Windows.Forms.CheckBox() Me.CH_DOWN_VIDEOS = New System.Windows.Forms.CheckBox() Me.TXT_SPEC_FOLDER = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.TXT_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer() TP_MAIN = New System.Windows.Forms.TableLayoutPanel() TP_SITE = New System.Windows.Forms.TableLayoutPanel() @@ -66,6 +69,7 @@ CType(Me.TXT_LABELS, System.ComponentModel.ISupportInitialize).BeginInit() TP_DOWN_OPTIONS.SuspendLayout() CType(Me.TXT_SPEC_FOLDER, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).BeginInit() Me.CONTAINER_MAIN.ContentPanel.SuspendLayout() Me.CONTAINER_MAIN.SuspendLayout() Me.SuspendLayout() @@ -79,27 +83,29 @@ TP_MAIN.Controls.Add(TP_SITE, 0, 3) TP_MAIN.Controls.Add(TP_PARAMS, 0, 4) TP_MAIN.Controls.Add(TP_OTHER, 0, 6) - TP_MAIN.Controls.Add(Me.TXT_DESCR, 0, 9) + TP_MAIN.Controls.Add(Me.TXT_DESCR, 0, 10) TP_MAIN.Controls.Add(Me.TXT_USER_FRIENDLY, 0, 1) TP_MAIN.Controls.Add(Me.TP_ADD_BY_LIST, 0, 7) TP_MAIN.Controls.Add(Me.TXT_LABELS, 0, 8) TP_MAIN.Controls.Add(TP_DOWN_OPTIONS, 0, 5) TP_MAIN.Controls.Add(Me.TXT_SPEC_FOLDER, 0, 2) + TP_MAIN.Controls.Add(Me.TXT_SCRIPT, 0, 9) TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill TP_MAIN.Location = New System.Drawing.Point(0, 0) TP_MAIN.Name = "TP_MAIN" - TP_MAIN.RowCount = 10 + TP_MAIN.RowCount = 11 TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66542!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 150.0!)) - TP_MAIN.Size = New System.Drawing.Size(454, 431) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26.0!)) + TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_MAIN.Size = New System.Drawing.Size(454, 461) TP_MAIN.TabIndex = 0 ' 'TXT_USER @@ -119,7 +125,7 @@ TP_SITE.ColumnCount = 3 TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 79.0!)) TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 88.0!)) + TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 92.0!)) TP_SITE.Controls.Add(Me.CH_IS_CHANNEL, 0, 0) TP_SITE.Controls.Add(Me.CMB_SITE, 1, 0) TP_SITE.Controls.Add(Me.BTT_OTHER_SETTINGS, 2, 0) @@ -129,7 +135,7 @@ TP_SITE.Name = "TP_SITE" TP_SITE.RowCount = 1 TP_SITE.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_SITE.Size = New System.Drawing.Size(452, 31) + TP_SITE.Size = New System.Drawing.Size(452, 28) TP_SITE.TabIndex = 3 ' 'CH_IS_CHANNEL @@ -138,7 +144,7 @@ Me.CH_IS_CHANNEL.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_IS_CHANNEL.Location = New System.Drawing.Point(4, 4) Me.CH_IS_CHANNEL.Name = "CH_IS_CHANNEL" - Me.CH_IS_CHANNEL.Size = New System.Drawing.Size(73, 23) + Me.CH_IS_CHANNEL.Size = New System.Drawing.Size(73, 20) Me.CH_IS_CHANNEL.TabIndex = 0 Me.CH_IS_CHANNEL.Text = "Channel" Me.CH_IS_CHANNEL.UseVisualStyleBackColor = True @@ -160,22 +166,22 @@ Me.CMB_SITE.Columns.Add(ListColumn1) Me.CMB_SITE.Columns.Add(ListColumn2) Me.CMB_SITE.Dock = System.Windows.Forms.DockStyle.Fill - Me.CMB_SITE.Location = New System.Drawing.Point(84, 2) - Me.CMB_SITE.Margin = New System.Windows.Forms.Padding(3, 1, 3, 3) + Me.CMB_SITE.Location = New System.Drawing.Point(84, 3) + Me.CMB_SITE.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3) Me.CMB_SITE.Name = "CMB_SITE" - Me.CMB_SITE.Size = New System.Drawing.Size(275, 22) + Me.CMB_SITE.Size = New System.Drawing.Size(271, 22) Me.CMB_SITE.TabIndex = 1 Me.CMB_SITE.TextBoxBorderStyle = System.Windows.Forms.BorderStyle.FixedSingle ' 'BTT_OTHER_SETTINGS ' Me.BTT_OTHER_SETTINGS.Dock = System.Windows.Forms.DockStyle.Fill - Me.BTT_OTHER_SETTINGS.Location = New System.Drawing.Point(364, 2) + Me.BTT_OTHER_SETTINGS.Location = New System.Drawing.Point(360, 2) Me.BTT_OTHER_SETTINGS.Margin = New System.Windows.Forms.Padding(1) Me.BTT_OTHER_SETTINGS.Name = "BTT_OTHER_SETTINGS" - Me.BTT_OTHER_SETTINGS.Size = New System.Drawing.Size(86, 27) + Me.BTT_OTHER_SETTINGS.Size = New System.Drawing.Size(90, 24) Me.BTT_OTHER_SETTINGS.TabIndex = 2 - Me.BTT_OTHER_SETTINGS.Text = "Options" + Me.BTT_OTHER_SETTINGS.Text = "Options (F2)" TT_MAIN.SetToolTip(Me.BTT_OTHER_SETTINGS, "Other settings") Me.BTT_OTHER_SETTINGS.UseVisualStyleBackColor = True ' @@ -188,13 +194,13 @@ TP_PARAMS.Controls.Add(Me.CH_TEMP, 0, 0) TP_PARAMS.Controls.Add(Me.CH_FAV, 1, 0) TP_PARAMS.Dock = System.Windows.Forms.DockStyle.Fill - TP_PARAMS.Location = New System.Drawing.Point(1, 120) + TP_PARAMS.Location = New System.Drawing.Point(1, 117) TP_PARAMS.Margin = New System.Windows.Forms.Padding(0) TP_PARAMS.Name = "TP_PARAMS" TP_PARAMS.RowCount = 1 TP_PARAMS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_PARAMS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) - TP_PARAMS.Size = New System.Drawing.Size(452, 31) + TP_PARAMS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27.0!)) + TP_PARAMS.Size = New System.Drawing.Size(452, 28) TP_PARAMS.TabIndex = 4 ' 'CH_TEMP @@ -203,7 +209,7 @@ Me.CH_TEMP.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_TEMP.Location = New System.Drawing.Point(4, 4) Me.CH_TEMP.Name = "CH_TEMP" - Me.CH_TEMP.Size = New System.Drawing.Size(218, 23) + Me.CH_TEMP.Size = New System.Drawing.Size(218, 20) Me.CH_TEMP.TabIndex = 0 Me.CH_TEMP.Text = "Temporary" Me.CH_TEMP.UseVisualStyleBackColor = True @@ -214,7 +220,7 @@ Me.CH_FAV.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_FAV.Location = New System.Drawing.Point(229, 4) Me.CH_FAV.Name = "CH_FAV" - Me.CH_FAV.Size = New System.Drawing.Size(219, 23) + Me.CH_FAV.Size = New System.Drawing.Size(219, 20) Me.CH_FAV.TabIndex = 1 Me.CH_FAV.Text = "Favorite" Me.CH_FAV.UseVisualStyleBackColor = True @@ -228,13 +234,13 @@ TP_OTHER.Controls.Add(Me.CH_PARSE_USER_MEDIA, 1, 0) TP_OTHER.Controls.Add(Me.CH_READY_FOR_DOWN, 0, 0) TP_OTHER.Dock = System.Windows.Forms.DockStyle.Fill - TP_OTHER.Location = New System.Drawing.Point(1, 184) + TP_OTHER.Location = New System.Drawing.Point(1, 175) TP_OTHER.Margin = New System.Windows.Forms.Padding(0) TP_OTHER.Name = "TP_OTHER" TP_OTHER.RowCount = 1 TP_OTHER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_OTHER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) - TP_OTHER.Size = New System.Drawing.Size(452, 31) + TP_OTHER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27.0!)) + TP_OTHER.Size = New System.Drawing.Size(452, 28) TP_OTHER.TabIndex = 6 ' 'CH_PARSE_USER_MEDIA @@ -243,7 +249,7 @@ Me.CH_PARSE_USER_MEDIA.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_PARSE_USER_MEDIA.Location = New System.Drawing.Point(229, 4) Me.CH_PARSE_USER_MEDIA.Name = "CH_PARSE_USER_MEDIA" - Me.CH_PARSE_USER_MEDIA.Size = New System.Drawing.Size(219, 23) + Me.CH_PARSE_USER_MEDIA.Size = New System.Drawing.Size(219, 20) Me.CH_PARSE_USER_MEDIA.TabIndex = 0 Me.CH_PARSE_USER_MEDIA.Text = "Get user media only" TT_MAIN.SetToolTip(Me.CH_PARSE_USER_MEDIA, "For twitter only!" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "If checked then user media only will be downloaded." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Otherwise" & @@ -256,7 +262,7 @@ Me.CH_READY_FOR_DOWN.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_READY_FOR_DOWN.Location = New System.Drawing.Point(4, 4) Me.CH_READY_FOR_DOWN.Name = "CH_READY_FOR_DOWN" - Me.CH_READY_FOR_DOWN.Size = New System.Drawing.Size(218, 23) + Me.CH_READY_FOR_DOWN.Size = New System.Drawing.Size(218, 20) Me.CH_READY_FOR_DOWN.TabIndex = 1 Me.CH_READY_FOR_DOWN.Text = "Ready for download" TT_MAIN.SetToolTip(Me.CH_READY_FOR_DOWN, "Can be downloaded by [Download All]") @@ -275,11 +281,11 @@ Me.TXT_DESCR.Dock = System.Windows.Forms.DockStyle.Fill Me.TXT_DESCR.GroupBoxed = True Me.TXT_DESCR.GroupBoxText = "Description" - Me.TXT_DESCR.Location = New System.Drawing.Point(4, 282) + Me.TXT_DESCR.Location = New System.Drawing.Point(4, 290) Me.TXT_DESCR.Multiline = True Me.TXT_DESCR.Name = "TXT_DESCR" - Me.TXT_DESCR.Size = New System.Drawing.Size(446, 145) - Me.TXT_DESCR.TabIndex = 9 + Me.TXT_DESCR.Size = New System.Drawing.Size(446, 167) + Me.TXT_DESCR.TabIndex = 10 ' 'TXT_USER_FRIENDLY ' @@ -300,12 +306,12 @@ Me.TP_ADD_BY_LIST.Controls.Add(Me.CH_ADD_BY_LIST, 0, 0) Me.TP_ADD_BY_LIST.Controls.Add(Me.CH_AUTO_DETECT_SITE, 1, 0) Me.TP_ADD_BY_LIST.Dock = System.Windows.Forms.DockStyle.Fill - Me.TP_ADD_BY_LIST.Location = New System.Drawing.Point(1, 216) + Me.TP_ADD_BY_LIST.Location = New System.Drawing.Point(1, 204) Me.TP_ADD_BY_LIST.Margin = New System.Windows.Forms.Padding(0) Me.TP_ADD_BY_LIST.Name = "TP_ADD_BY_LIST" Me.TP_ADD_BY_LIST.RowCount = 1 Me.TP_ADD_BY_LIST.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - Me.TP_ADD_BY_LIST.Size = New System.Drawing.Size(452, 30) + Me.TP_ADD_BY_LIST.Size = New System.Drawing.Size(452, 28) Me.TP_ADD_BY_LIST.TabIndex = 7 ' 'CH_ADD_BY_LIST @@ -314,7 +320,7 @@ Me.CH_ADD_BY_LIST.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_ADD_BY_LIST.Location = New System.Drawing.Point(4, 4) Me.CH_ADD_BY_LIST.Name = "CH_ADD_BY_LIST" - Me.CH_ADD_BY_LIST.Size = New System.Drawing.Size(218, 22) + Me.CH_ADD_BY_LIST.Size = New System.Drawing.Size(218, 20) Me.CH_ADD_BY_LIST.TabIndex = 0 Me.CH_ADD_BY_LIST.Text = "Add by list" Me.CH_ADD_BY_LIST.UseVisualStyleBackColor = True @@ -325,7 +331,7 @@ Me.CH_AUTO_DETECT_SITE.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_AUTO_DETECT_SITE.Location = New System.Drawing.Point(229, 4) Me.CH_AUTO_DETECT_SITE.Name = "CH_AUTO_DETECT_SITE" - Me.CH_AUTO_DETECT_SITE.Size = New System.Drawing.Size(219, 22) + Me.CH_AUTO_DETECT_SITE.Size = New System.Drawing.Size(219, 20) Me.CH_AUTO_DETECT_SITE.TabIndex = 1 Me.CH_AUTO_DETECT_SITE.Text = "Auto detect site" Me.CH_AUTO_DETECT_SITE.UseVisualStyleBackColor = True @@ -343,7 +349,8 @@ Me.TXT_LABELS.CaptionText = "Labels" Me.TXT_LABELS.CaptionWidth = 50.0R Me.TXT_LABELS.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_LABELS.Location = New System.Drawing.Point(4, 250) + Me.TXT_LABELS.Location = New System.Drawing.Point(4, 235) + Me.TXT_LABELS.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3) Me.TXT_LABELS.Name = "TXT_LABELS" Me.TXT_LABELS.Size = New System.Drawing.Size(446, 22) Me.TXT_LABELS.TabIndex = 8 @@ -358,13 +365,13 @@ TP_DOWN_OPTIONS.Controls.Add(Me.CH_DOWN_IMAGES, 0, 0) TP_DOWN_OPTIONS.Controls.Add(Me.CH_DOWN_VIDEOS, 1, 0) TP_DOWN_OPTIONS.Dock = System.Windows.Forms.DockStyle.Fill - TP_DOWN_OPTIONS.Location = New System.Drawing.Point(1, 152) + TP_DOWN_OPTIONS.Location = New System.Drawing.Point(1, 146) TP_DOWN_OPTIONS.Margin = New System.Windows.Forms.Padding(0) TP_DOWN_OPTIONS.Name = "TP_DOWN_OPTIONS" TP_DOWN_OPTIONS.RowCount = 1 TP_DOWN_OPTIONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_DOWN_OPTIONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) - TP_DOWN_OPTIONS.Size = New System.Drawing.Size(452, 31) + TP_DOWN_OPTIONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27.0!)) + TP_DOWN_OPTIONS.Size = New System.Drawing.Size(452, 28) TP_DOWN_OPTIONS.TabIndex = 5 ' 'CH_DOWN_IMAGES @@ -373,7 +380,7 @@ Me.CH_DOWN_IMAGES.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_DOWN_IMAGES.Location = New System.Drawing.Point(4, 4) Me.CH_DOWN_IMAGES.Name = "CH_DOWN_IMAGES" - Me.CH_DOWN_IMAGES.Size = New System.Drawing.Size(218, 23) + Me.CH_DOWN_IMAGES.Size = New System.Drawing.Size(218, 20) Me.CH_DOWN_IMAGES.TabIndex = 0 Me.CH_DOWN_IMAGES.Text = "Download Images" Me.CH_DOWN_IMAGES.UseVisualStyleBackColor = True @@ -384,7 +391,7 @@ Me.CH_DOWN_VIDEOS.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_DOWN_VIDEOS.Location = New System.Drawing.Point(229, 4) Me.CH_DOWN_VIDEOS.Name = "CH_DOWN_VIDEOS" - Me.CH_DOWN_VIDEOS.Size = New System.Drawing.Size(219, 23) + Me.CH_DOWN_VIDEOS.Size = New System.Drawing.Size(219, 20) Me.CH_DOWN_VIDEOS.TabIndex = 1 Me.CH_DOWN_VIDEOS.Text = "Download videos" Me.CH_DOWN_VIDEOS.UseVisualStyleBackColor = True @@ -408,19 +415,45 @@ Me.TXT_SPEC_FOLDER.Size = New System.Drawing.Size(446, 22) Me.TXT_SPEC_FOLDER.TabIndex = 2 ' + 'TXT_SCRIPT + ' + ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image) + ActionButton7.Enabled = False + ActionButton7.Index = 0 + ActionButton7.Name = "BTT_OPEN" + ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image) + ActionButton8.Enabled = False + ActionButton8.Index = 1 + ActionButton8.Name = "BTT_CLEAR" + Me.TXT_SCRIPT.Buttons.Add(ActionButton7) + Me.TXT_SCRIPT.Buttons.Add(ActionButton8) + Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox + Me.TXT_SCRIPT.CaptionText = "Script" + Me.TXT_SCRIPT.CaptionToolTipEnabled = True + Me.TXT_SCRIPT.CaptionToolTipText = "Execute script after downloading this user" + Me.TXT_SCRIPT.CaptionWidth = 65.0R + Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 262) + Me.TXT_SCRIPT.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3) + Me.TXT_SCRIPT.Name = "TXT_SCRIPT" + Me.TXT_SCRIPT.PlaceholderEnabled = True + Me.TXT_SCRIPT.PlaceholderText = "Leave blank to use the default script..." + Me.TXT_SCRIPT.Size = New System.Drawing.Size(446, 22) + Me.TXT_SCRIPT.TabIndex = 9 + ' 'CONTAINER_MAIN ' ' 'CONTAINER_MAIN.ContentPanel ' Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN) - Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(454, 431) + Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(454, 461) Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0) Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN" Me.CONTAINER_MAIN.RightToolStripPanelVisible = False - Me.CONTAINER_MAIN.Size = New System.Drawing.Size(454, 431) + Me.CONTAINER_MAIN.Size = New System.Drawing.Size(454, 461) Me.CONTAINER_MAIN.TabIndex = 0 Me.CONTAINER_MAIN.TopToolStripPanelVisible = False ' @@ -428,15 +461,15 @@ ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(454, 431) + Me.ClientSize = New System.Drawing.Size(454, 461) Me.Controls.Add(Me.CONTAINER_MAIN) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.KeyPreview = True Me.MaximizeBox = False - Me.MaximumSize = New System.Drawing.Size(470, 470) + Me.MaximumSize = New System.Drawing.Size(470, 500) Me.MinimizeBox = False - Me.MinimumSize = New System.Drawing.Size(470, 470) + Me.MinimumSize = New System.Drawing.Size(470, 500) Me.Name = "UserCreatorForm" Me.ShowInTaskbar = False Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide @@ -458,6 +491,7 @@ TP_DOWN_OPTIONS.ResumeLayout(False) TP_DOWN_OPTIONS.PerformLayout() CType(Me.TXT_SPEC_FOLDER, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).EndInit() Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False) Me.CONTAINER_MAIN.ResumeLayout(False) Me.CONTAINER_MAIN.PerformLayout() @@ -483,5 +517,6 @@ Private WithEvents TXT_SPEC_FOLDER As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents CMB_SITE As PersonalUtilities.Forms.Controls.ComboBoxExtended Private WithEvents BTT_OTHER_SETTINGS As Button + Private WithEvents TXT_SCRIPT As PersonalUtilities.Forms.Controls.TextBoxExtended End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Editors/UserCreatorForm.resx b/SCrawler/Editors/UserCreatorForm.resx index 0fda744..66a09fe 100644 --- a/SCrawler/Editors/UserCreatorForm.resx +++ b/SCrawler/Editors/UserCreatorForm.resx @@ -273,6 +273,25 @@ xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP + WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP + aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+ + 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8 + vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB + cMaRN0UdBBkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go + tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX + AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC diff --git a/SCrawler/Editors/UserCreatorForm.vb b/SCrawler/Editors/UserCreatorForm.vb index 9363df1..2cdd07b 100644 --- a/SCrawler/Editors/UserCreatorForm.vb +++ b/SCrawler/Editors/UserCreatorForm.vb @@ -15,6 +15,7 @@ Imports PersonalUtilities.Functions.RegularExpressions Imports SCrawler.API.Base Imports SCrawler.Plugin Imports SCrawler.Plugin.Hosts +Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons Namespace Editors Friend Class UserCreatorForm : Implements IOkCancelToolbar Private ReadOnly MyDef As DefaultFormProps(Of FieldsChecker) @@ -65,6 +66,16 @@ Namespace Editors Return TXT_USER_FRIENDLY.Text End Get End Property + Friend ReadOnly Property ScriptUse As Boolean + Get + Return TXT_SCRIPT.Checked + End Get + End Property + Friend ReadOnly Property ScriptFile As SFile + Get + Return TXT_SCRIPT.Text + End Get + End Property Friend Property MyExchangeOptions As Object = Nothing Private ReadOnly _SpecPathPattern As RParams = RParams.DM("\w:\\.*", 0, EDP.ReturnValue) Private ReadOnly Property SpecialPath(ByVal s As SettingsHost) As SFile @@ -111,6 +122,7 @@ Namespace Editors CH_TEMP.Checked = Settings.DefaultTemporary CH_DOWN_IMAGES.Checked = Settings.DefaultDownloadImages CH_DOWN_VIDEOS.Checked = Settings.DefaultDownloadVideos + TXT_SCRIPT.Checked = Settings.ScriptFile.Attribute SetParamsBySite() Else TP_ADD_BY_LIST.Enabled = False @@ -135,6 +147,8 @@ Namespace Editors CH_READY_FOR_DOWN.Checked = .ReadyForDownload CH_DOWN_IMAGES.Checked = .DownloadImages CH_DOWN_VIDEOS.Checked = .DownloadVideos + TXT_SCRIPT.Checked = .ScriptUse + TXT_SCRIPT.Text = .ScriptFile TXT_DESCR.Text = .Description UserLabels.ListAddList(.Labels) If UserLabels.ListExists Then TXT_LABELS.Text = UserLabels.ListToString @@ -158,7 +172,13 @@ Namespace Editors End Try End Sub Private Sub UserCreatorForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown - If e.KeyCode = Keys.F4 Then ChangeLabels() : e.Handled = True + Dim b As Boolean = True + Select Case e.KeyCode + Case Keys.F4 : ChangeLabels() + Case Keys.F2 : If BTT_OTHER_SETTINGS.Enabled Then BTT_OTHER_SETTINGS.PerformClick() + Case Else : b = False + End Select + If b Then e.Handled = True End Sub Private Sub UserCreatorForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing If Not BeforeCloseChecker(MyDef.ChangesDetected) Then @@ -188,6 +208,14 @@ Namespace Editors .UpdateUserFile() End With User = tmpUser + Dim ScriptText$ = TXT_SCRIPT.Text + If Not ScriptText.IsEmptyString Then + Dim f As SFile = ScriptText + If Not SFile.IsDirectory(ScriptText) And Not UserInstance Is Nothing Then + With DirectCast(UserInstance, UserDataBase) : f.Path = .MyFile.Path : End With + End If + TXT_SCRIPT.Text = f + End If If Not UserInstance Is Nothing Then With DirectCast(UserInstance, UserDataBase) .User = User @@ -208,12 +236,14 @@ Namespace Editors .Labels.ListAddList(UserLabels, LAP.NotContainsOnly, LAP.ClearBeforeAdd) End If .ParseUserMediaOnly = CH_PARSE_USER_MEDIA.Checked + .ScriptUse = TXT_SCRIPT.Checked + .ScriptFile = TXT_SCRIPT.Text .UpdateUserInformation() End With End If GoTo CloseForm Else - MsgBoxE("User site does not selected", MsgBoxStyle.Exclamation) + MsgBoxE("User site not selected", MsgBoxStyle.Exclamation) End If End If Else @@ -397,6 +427,7 @@ CloseForm: .ReadyForDownload = CH_READY_FOR_DOWN.Checked .DownloadImages = CH_DOWN_IMAGES.Checked .DownloadVideos = CH_DOWN_VIDEOS.Checked + .ScriptUse = TXT_SCRIPT.Checked .Labels.ListAddList(UserLabels) .ParseUserMediaOnly = CH_PARSE_USER_MEDIA.Checked If Not CH_AUTO_DETECT_SITE.Checked Then _ @@ -439,8 +470,8 @@ CloseForm: End Function Private Sub TXT_LABELS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_LABELS.ActionOnButtonClick Select Case Sender.DefaultButton - Case ActionButton.DefaultButtons.Open : ChangeLabels() - Case ActionButton.DefaultButtons.Clear : UserLabels.Clear() + Case ADB.Open : ChangeLabels() + Case ADB.Clear : UserLabels.Clear() End Select End Sub Private Sub ChangeLabels() @@ -456,5 +487,11 @@ CloseForm: End If End Using End Sub + Private Sub TXT_SCRIPT_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_SCRIPT.ActionOnButtonClick + If Sender.DefaultButton = ADB.Open Then + Dim f As SFile = SFile.SelectFiles(TXT_SCRIPT.Text, False, "Select script file").FirstOrDefault + If Not f.IsEmptyString Then TXT_SCRIPT.Text = f + End If + End Sub End Class End Namespace \ No newline at end of file diff --git a/SCrawler/MainFrame.Designer.vb b/SCrawler/MainFrame.Designer.vb index 183b34f..69561d5 100644 --- a/SCrawler/MainFrame.Designer.vb +++ b/SCrawler/MainFrame.Designer.vb @@ -86,6 +86,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form Me.BTT_CONTEXT_TEMP = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_READY = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_GROUPS = New System.Windows.Forms.ToolStripMenuItem() + Me.BTT_CONTEXT_SCRIPT = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_ADD_TO_COL = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_COL_MERGE = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_CONTEXT_CHANGE_FOLDER = New System.Windows.Forms.ToolStripMenuItem() @@ -562,9 +563,9 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form ' 'USER_CONTEXT ' - Me.USER_CONTEXT.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.BTT_CONTEXT_DOWN_LIMITED, Me.BTT_CONTEXT_DOWN_DATE_LIMIT, Me.BTT_CONTEXT_EDIT, Me.BTT_CONTEXT_DELETE, CONTEXT_SEP_1, Me.BTT_CONTEXT_FAV, Me.BTT_CONTEXT_TEMP, Me.BTT_CONTEXT_READY, Me.BTT_CONTEXT_GROUPS, Me.BTT_CONTEXT_ADD_TO_COL, Me.BTT_CONTEXT_COL_MERGE, Me.BTT_CONTEXT_CHANGE_FOLDER, CONTEXT_SEP_2, Me.BTT_CHANGE_IMAGE, CONTEXT_SEP_3, Me.BTT_CONTEXT_OPEN_PATH, CONTEXT_SEP_4, Me.BTT_CONTEXT_OPEN_SITE, CONTEXT_SEP_5, Me.BTT_CONTEXT_INFO}) + Me.USER_CONTEXT.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.BTT_CONTEXT_DOWN_LIMITED, Me.BTT_CONTEXT_DOWN_DATE_LIMIT, Me.BTT_CONTEXT_EDIT, Me.BTT_CONTEXT_DELETE, CONTEXT_SEP_1, Me.BTT_CONTEXT_FAV, Me.BTT_CONTEXT_TEMP, Me.BTT_CONTEXT_READY, Me.BTT_CONTEXT_GROUPS, Me.BTT_CONTEXT_SCRIPT, Me.BTT_CONTEXT_ADD_TO_COL, Me.BTT_CONTEXT_COL_MERGE, Me.BTT_CONTEXT_CHANGE_FOLDER, CONTEXT_SEP_2, Me.BTT_CHANGE_IMAGE, CONTEXT_SEP_3, Me.BTT_CONTEXT_OPEN_PATH, CONTEXT_SEP_4, Me.BTT_CONTEXT_OPEN_SITE, CONTEXT_SEP_5, Me.BTT_CONTEXT_INFO}) Me.USER_CONTEXT.Name = "USER_CONTEXT" - Me.USER_CONTEXT.Size = New System.Drawing.Size(222, 386) + Me.USER_CONTEXT.Size = New System.Drawing.Size(222, 430) ' 'BTT_CONTEXT_DOWN ' @@ -629,6 +630,13 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form Me.BTT_CONTEXT_GROUPS.Size = New System.Drawing.Size(221, 22) Me.BTT_CONTEXT_GROUPS.Text = "Change labels" ' + 'BTT_CONTEXT_SCRIPT + ' + Me.BTT_CONTEXT_SCRIPT.Image = Global.SCrawler.My.Resources.Resources.ScriptPic32 + Me.BTT_CONTEXT_SCRIPT.Name = "BTT_CONTEXT_SCRIPT" + Me.BTT_CONTEXT_SCRIPT.Size = New System.Drawing.Size(221, 22) + Me.BTT_CONTEXT_SCRIPT.Text = "Change script usage" + ' 'BTT_CONTEXT_ADD_TO_COL ' Me.BTT_CONTEXT_ADD_TO_COL.Image = Global.SCrawler.My.Resources.Resources.DBPic_32 @@ -796,4 +804,5 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form Private WithEvents BTT_DOWN_SITE As ToolStripMenuItem Private WithEvents BTT_DOWN_ALL_FULL As ToolStripMenuItem Private WithEvents BTT_DOWN_SITE_FULL As ToolStripMenuItem + Private WithEvents BTT_CONTEXT_SCRIPT As ToolStripMenuItem End Class \ No newline at end of file diff --git a/SCrawler/MainFrame.vb b/SCrawler/MainFrame.vb index 740648d..98c580d 100644 --- a/SCrawler/MainFrame.vb +++ b/SCrawler/MainFrame.vb @@ -249,6 +249,8 @@ CloseResume: .DownloadVideos = f.DownloadVideos .FriendlyName = f.UserFriendly .Description = f.UserDescr + .ScriptUse = f.ScriptUse + .ScriptFile = f.ScriptFile If Not f.MyExchangeOptions Is Nothing Then DirectCast(.Self, UserDataBase).ExchangeOptionsSet(f.MyExchangeOptions) .Self.Labels.ListAddList(f.UserLabels, LAP.ClearBeforeAdd, LAP.NotContainsOnly) .UpdateUserInformation() @@ -617,6 +619,31 @@ CloseResume: ErrorsDescriber.Execute(EDP.ShowAllMsg, ex, "[ChangeUserGroups]") End Try End Sub + Private Sub BTT_CONTEXT_SCRIPT_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_SCRIPT.Click + Try + Dim users As List(Of IUserData) = GetSelectedUserArray() + If users.ListExists Then + Dim ans% = MsgBoxE({"You want to change the script usage for selected users." & vbCr & + "Which script usage mode do you want to set?", + "Change script usage"}, vbExclamation,,, {"Use", "Do not use", "Cancel"}) + If ans < 2 Then + Dim s As Boolean = IIf(ans = 0, True, False) + users.ForEach(Sub(ByVal u As IUserData) + Dim b As Boolean = u.ScriptUse = s + u.ScriptUse = s + If Not b Then u.UpdateUserInformation() + End Sub) + MsgBoxE($"Script mode was set to [{IIf(s, "Use", "Do not use")}] for all selected users") + Else + MsgBoxE("Operation canceled") + End If + Else + MsgBoxE("Users not selected", vbExclamation) + End If + Catch ex As Exception + ErrorsDescriber.Execute(EDP.LogMessageValue, ex, "Change script usage") + End Try + End Sub Private Function AskForMassReplace(ByVal users As List(Of IUserData), ByVal param As String) As Boolean Dim u$ = users.ListIfNothing.Take(20).Select(Function(uu) uu.Name).ListToString(, vbCr) If Not u.IsEmptyString And users.ListExists(21) Then u &= vbCr & "..." diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb index 1cc927e..fc7db2b 100644 --- a/SCrawler/My Project/AssemblyInfo.vb +++ b/SCrawler/My Project/AssemblyInfo.vb @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/SCrawler/My Project/Resources.Designer.vb b/SCrawler/My Project/Resources.Designer.vb index 7df0ec4..54bcdab 100644 --- a/SCrawler/My Project/Resources.Designer.vb +++ b/SCrawler/My Project/Resources.Designer.vb @@ -250,6 +250,16 @@ Namespace My.Resources End Get End Property + '''

+ ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property ScriptPic32() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("ScriptPic32", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Looks up a localized resource of type System.Drawing.Bitmap. ''' diff --git a/SCrawler/My Project/Resources.resx b/SCrawler/My Project/Resources.resx index 027e42f..2c52e69 100644 --- a/SCrawler/My Project/Resources.resx +++ b/SCrawler/My Project/Resources.resx @@ -118,29 +118,29 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Content\Pictures\DBPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Content\Pictures\StarPic_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Content\Pictures\PrevPIC2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\StartPic_01_Green_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\TwitterPic400.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\PencilPic_01_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\PicturePic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Content\Pictures\NextPIC2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\BookmarkBlack_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Content\Pictures\Folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\TwitterPic400.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\PencilPic_01_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Content\Pictures\PlusPIC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -148,6 +148,9 @@ ..\Content\Icons\TwitterIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\SettingsPic_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Content\Pictures\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -166,8 +169,8 @@ ..\Content\Pictures\Refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\PicturePic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\HeartPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Content\Icons\RedditIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -181,13 +184,13 @@ ..\Content\Pictures\RedditPic512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\DBPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\BookmarkBlack_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\SettingsPic_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\StartPic_01_Green_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Content\Pictures\HeartPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Content\Pictures\ScriptPic32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/SCrawler/SCrawler.vbproj b/SCrawler/SCrawler.vbproj index 55f6ec4..5ef3ef6 100644 --- a/SCrawler/SCrawler.vbproj +++ b/SCrawler/SCrawler.vbproj @@ -379,6 +379,7 @@ + PreserveNewest diff --git a/SCrawler/SettingsCLS.vb b/SCrawler/SettingsCLS.vb index 6751b2f..3807610 100644 --- a/SCrawler/SettingsCLS.vb +++ b/SCrawler/SettingsCLS.vb @@ -97,6 +97,7 @@ Friend Class SettingsCLS : Implements IDisposable FromChannelDownloadTopUse = New XMLValue(Of Boolean)("FromChannelDownloadTopUse", False, MyXML, n) FromChannelCopyImageToUser = New XMLValue(Of Boolean)("FromChannelCopyImageToUser", True, MyXML, n) UpdateUserDescriptionEveryTime = New XMLValue(Of Boolean)("UpdateUserDescriptionEveryTime", True, MyXML, n) + ScriptFile = New XMLValueAttribute(Of SFile, Boolean)("ScriptFile", "Use",,, MyXML, n) n = {"Users", "FileName"} MaxUsersJobsCount = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, n) @@ -359,6 +360,7 @@ Friend Class SettingsCLS : Implements IDisposable End Property Friend ReadOnly Property MaxUsersJobsCount As XMLValue(Of Integer) Friend ReadOnly Property ImgurClientID As XMLValue(Of String) + Friend ReadOnly Property ScriptFile As XMLValueAttribute(Of SFile, Boolean) #Region "Defaults" Friend ReadOnly Property DefaultTemporary As XMLValue(Of Boolean) Friend ReadOnly Property DefaultDownloadImages As XMLValue(Of Boolean)