From 5f2c4476ada816ba754ab036f30d8abdd03d6d68 Mon Sep 17 00:00:00 2001 From: Andy <88590076+AAndyProgram@users.noreply.github.com> Date: Mon, 20 Dec 2021 14:16:29 +0300 Subject: [PATCH] 1.0.1.0 Extend settings, fix minor bugs, add some functions --- Changelog.md | 21 + SCrawler/API/Base/SiteSettings.vb | 5 +- SCrawler/API/Base/UserDataBase.vb | 37 +- SCrawler/API/Reddit/Channel.vb | 20 +- SCrawler/API/Reddit/UserData.vb | 43 +- SCrawler/API/Twitter/UserData.vb | 19 +- SCrawler/API/UserDataBind.vb | 22 +- SCrawler/Channels/ChannelViewForm.vb | 7 +- .../Editors/GlobalSettingsForm.Designer.vb | 791 ++++++++++++------ SCrawler/Editors/GlobalSettingsForm.resx | 61 +- SCrawler/Editors/GlobalSettingsForm.vb | 65 +- SCrawler/Editors/UserCreatorForm.vb | 39 +- SCrawler/MainFrame.vb | 25 +- SCrawler/MainMod.vb | 6 +- SCrawler/My Project/AssemblyInfo.vb | 4 +- SCrawler/SettingsCLS.vb | 145 +++- SCrawler/TDownloader.vb | 4 + 17 files changed, 947 insertions(+), 367 deletions(-) diff --git a/Changelog.md b/Changelog.md index 5f04ba3..80f4c1a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,24 @@ +# 1.0.1.0 + +- Added + - Extended site settings + - Non-existend users will be marked in red + - Suspended users' profiles will be marked in yellow + - Automatically disable 'Ready for download' if user does not exist. + - Ability to disable MD5 check when downloading regular (added to the main window) channels + - Ability to create a user from a channel with the default option 'Ready to download' (setting in the 'Settings') + - Ability to change default 'Temporary' parameter on create a user from a channel (setting in the 'Settings') + - Advanced defaults for each site (download images, download videos and temporary) + - By checking the 'Temporary' checkbox in the user creation form, the 'Ready for download' checkbox became unchecked + - Automatically disable 'Ready for download' if profile does not exists or has been deleted +- Change + - Removed extended twitter invalid credentials error and replaced with a simple line in the log + - Redesigned settings form +- Fixed + - In some cases, the image of the channel post is not copied to the user's folder + - Users in the main window are not refreshed if new users are added by a list that includes banned and/or unrecognized users. + - Minor bugs + # 1.0.0.4 - Added diff --git a/SCrawler/API/Base/SiteSettings.vb b/SCrawler/API/Base/SiteSettings.vb index 07aff64..0907f00 100644 --- a/SCrawler/API/Base/SiteSettings.vb +++ b/SCrawler/API/Base/SiteSettings.vb @@ -60,7 +60,10 @@ Namespace API.Base End If Responser.SaveSettings() End If - _Path = New XMLValue(Of SFile)("Path", SFile.GetPath($"{GlobalPath.PathWithSeparator}{Site}"), _XML, {Site.ToString}, XMLValue(Of SFile).ToFilePath) + _Path = New XMLValue(Of SFile)("Path", SFile.GetPath($"{GlobalPath.PathWithSeparator}{Site}"), + _XML, {SettingsCLS.Name_Node_Sites, Site.ToString}, XMLValue(Of SFile).ToFilePath) + _Path.ReplaceByValue("Path", {Site.ToString}) + _XML.Remove(Site.ToString) End Sub Friend Sub Update() Responser.SaveSettings() diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb index 033bf13..533f730 100644 --- a/SCrawler/API/Base/UserDataBase.vb +++ b/SCrawler/API/Base/UserDataBase.vb @@ -13,9 +13,9 @@ Imports UState = SCrawler.API.Base.UserMedia.States Namespace API.Base Friend MustInherit Class UserDataBase : Implements IUserData Friend Const UserFileAppender As String = "User" - Friend Event OnPictureUpdated As IUserData.OnPictureUpdatedEventHandler Implements IUserData.OnPictureUpdated - Protected Sub Raise_OnPictureUpdated() - RaiseEvent OnPictureUpdated(Me) + Friend Event OnUserUpdated As IUserData.OnUserUpdatedEventHandler Implements IUserData.OnUserUpdated + Protected Sub Raise_OnUserUpdated() + RaiseEvent OnUserUpdated(Me) End Sub #Region "Collection buttons" Friend WithEvents BTT_CONTEXT_DOWN As ToolStripMenuItem @@ -43,6 +43,8 @@ Namespace API.Base Private Const Name_Site As String = "Site" Private Const Name_IsChannel As String = "IsChannel" Private Const Name_UserName As String = "UserName" + Private Const Name_UserExists As String = "UserExists" + Private Const Name_UserSuspended As String = "UserSuspended" Private Const Name_FriendlyName As String = "FriendlyName" Private Const Name_UserID As String = "UserID" Private Const Name_Description As String = "Description" @@ -76,6 +78,10 @@ Namespace API.Base #Region "Declarations" Friend MustOverride Property Site As Sites Implements IContentProvider.Site Friend User As UserInfo + Protected Const NonExistendUserHelp As String = "404" + Protected Const SuspendedUserHelp As String = "403" + Friend Overridable Property UserExists As Boolean = True Implements IUserData.Exists + Friend Overridable Property UserSuspended As Boolean = False Implements IUserData.Suspended Friend Overridable Property Name As String Implements IContentProvider.Name Get Return User.Name @@ -436,10 +442,11 @@ BlockNullPicture: If MyFile.Exists Then FileExists = True Using x As New XmlFile(MyFile) With {.XmlReadOnly = True} - x.DefaultsLoading(False) User.Site = Site Site = x.Value(Name_Site).FromXML(Of Integer)(0) User.Name = x.Value(Name_UserName) + UserExists = x.Value(Name_UserExists).FromXML(Of Boolean)(True) + UserSuspended = x.Value(Name_UserSuspended).FromXML(Of Boolean)(False) ID = x.Value(Name_UserID) FriendlyName = x.Value(Name_FriendlyName) UserDescription = x.Value(Name_Description) @@ -470,6 +477,8 @@ BlockNullPicture: Using x As New XmlFile With {.Name = "User"} x.Add(Name_Site, CInt(Site)) x.Add(Name_UserName, User.Name) + x.Add(Name_UserExists, UserExists.BoolToInteger) + x.Add(Name_UserSuspended, UserSuspended.BoolToInteger) x.Add(Name_UserID, ID) x.Add(Name_FriendlyName, FriendlyName) x.Add(Name_Description, UserDescription) @@ -508,9 +517,8 @@ BlockNullPicture: Private Overloads Sub LoadContentInformation(ByRef _CLIST As List(Of UserMedia), ByVal f As SFile) Try If Not f.Exists Then Exit Sub - Using x As New XmlFile(f, ProtectionLevels.All, False) With {.XmlReadOnly = True, .AllowSameNames = True} + Using x As New XmlFile(f, Protector.Modes.All, False) With {.XmlReadOnly = True, .AllowSameNames = True} x.LoadData() - x.DefaultsLoading(False) If x.Count > 0 Then Dim fs$ = MyFile.CutPath.PathWithSeparator Dim gfn As Func(Of String, String) = Function(ByVal Input As String) As String @@ -589,11 +597,17 @@ BlockNullPicture: #End Region #Region "Download functions and options" Friend Overridable Property DownloadTopCount As Integer? = Nothing Implements IUserData.DownloadTopCount + Protected Responser As PersonalUtilities.Tools.WEB.Response Friend Overridable Sub DownloadData(ByVal Token As CancellationToken) Implements IContentProvider.DownloadData Dim Canceled As Boolean = False Try UpdateDataFiles() + If Not Responser Is Nothing Then Responser.Dispose() + Responser = New PersonalUtilities.Tools.WEB.Response + Responser.Copy(Settings.Site(Site).Responser) Dim UpPic As Boolean = Settings.ViewModeIsPicture AndAlso GetPicture(False) Is Nothing + Dim sEnvir() As Boolean = {UserExists, UserSuspended} + Dim EnvirChanged As Func(Of Boolean) = Function() Not sEnvir(0) = UserExists Or Not sEnvir(1) = UserSuspended _DownloadedPicturesSession = 0 _DownloadedVideosSession = 0 _TempMediaList.Clear() @@ -623,7 +637,7 @@ BlockNullPicture: _ContentList.ListAddList(_ContentNew.Where(Function(c) c.State = UState.Downloaded), LNC) _CountPictures = _ContentList.LongCount(Function(c) c.Type = UserMedia.Types.Picture) _CountVideo = _ContentList.LongCount(Function(c) c.Type = UserMedia.Types.Video) - If DownloadedPictures + DownloadedVideos > 0 Then + If DownloadedPictures + DownloadedVideos > 0 Or EnvirChanged.Invoke Then If __SaveData Then LastUpdated = Now If Labels.Contains(LabelsKeeper.NoParsedUser) Then Labels.Remove(LabelsKeeper.NoParsedUser) @@ -634,12 +648,13 @@ BlockNullPicture: _ContentList.Clear() CreatedByChannel = False End If + If Not UserExists Then ReadyForDownload = False UpdateUserInformation() End If ThrowIfDisposed() _DownloadedPicturesTotal += _DownloadedPicturesSession _DownloadedVideosTotal += _DownloadedVideosSession - If UpPic Then Raise_OnPictureUpdated() + If UpPic Or EnvirChanged.Invoke Then Raise_OnUserUpdated() Catch oex As OperationCanceledException When Token.IsCancellationRequested MyMainLOG = $"{Site} - {Name}: downloading canceled" Canceled = True @@ -649,6 +664,7 @@ BlockNullPicture: LogError(ex, "downloading data error") HasError = True Finally + If Not Responser Is Nothing Then Responser.Dispose() : Responser = Nothing If Not Canceled Then _DataParsed = True ': LastUpdated = Now _ContentNew.Clear() DownloadTopCount = Nothing @@ -927,6 +943,7 @@ BlockNullPicture: _ContentNew.Clear() _TempMediaList.Clear() _TempPostsList.Clear() + If Not Responser Is Nothing Then Responser.Dispose() If Not BTT_CONTEXT_DOWN Is Nothing Then BTT_CONTEXT_DOWN.Dispose() If Not BTT_CONTEXT_EDIT Is Nothing Then BTT_CONTEXT_EDIT.Dispose() If Not BTT_CONTEXT_DELETE Is Nothing Then BTT_CONTEXT_DELETE.Dispose() @@ -959,7 +976,7 @@ BlockNullPicture: Sub DownloadData(ByVal Token As CancellationToken) End Interface Friend Interface IUserData : Inherits IContentProvider, IComparable(Of UserDataBase), IComparable, IEquatable(Of UserDataBase), IDisposable - Event OnPictureUpdated(ByVal User As IUserData) + Event OnUserUpdated(ByVal User As IUserData) Property ParseUserMediaOnly As Boolean #Region "Images" Function GetPicture() As Image @@ -972,6 +989,8 @@ BlockNullPicture: ReadOnly Property Labels As List(Of String) #End Region ReadOnly Property IsChannel As Boolean + Property Exists As Boolean + Property Suspended As Boolean Property ReadyForDownload As Boolean Property [File] As SFile Property FileExists As Boolean diff --git a/SCrawler/API/Reddit/Channel.vb b/SCrawler/API/Reddit/Channel.vb index 49e26cc..800a745 100644 --- a/SCrawler/API/Reddit/Channel.vb +++ b/SCrawler/API/Reddit/Channel.vb @@ -22,9 +22,23 @@ Namespace API.Reddit #End Region Friend Const DefaultDownloadLimitCount As Integer = 1000 #Region "IUserData Support" - Private Event OnPictureUpdated(User As IUserData) Implements IUserData.OnPictureUpdated + Private Event OnUserUpdated As IUserData.OnUserUpdatedEventHandler Implements IUserData.OnUserUpdated Friend Property Instance As IUserData Private Property IUserData_ParseUserMediaOnly As Boolean = False Implements IUserData.ParseUserMediaOnly + Private Property IUserData_Exists As Boolean Implements IUserData.Exists + Get + Return Instance.Exists + End Get + Set(ByVal e As Boolean) + End Set + End Property + Private Property IUserData_Suspended As Boolean Implements IUserData.Suspended + Get + Return Instance.Suspended + End Get + Set(ByVal s As Boolean) + End Set + End Property Private ReadOnly Property IUserData_IsCollection As Boolean Implements IUserData.IsCollection Get Return Instance.IsCollection @@ -504,9 +518,8 @@ Namespace API.Reddit End Function Friend Overloads Function LoadData(ByVal f As SFile, ByVal PartialLoad As Boolean, Optional ByVal e As ErrorsDescriber = Nothing) As Boolean If f.Exists Then - Using x As New XmlFile(f, ProtectionLevels.All, False) With {.XmlReadOnly = True, .AllowSameNames = True} + Using x As New XmlFile(f, Protector.Modes.All, False) With {.XmlReadOnly = True, .AllowSameNames = True} x.LoadData() - x.DefaultsLoading(False) If x.Count > 0 Then Dim XMLDateProvider As New ADateTime(ADateTime.Formats.BaseDateTime) Name = x.Value(Name_Name) @@ -527,7 +540,6 @@ Namespace API.Reddit Friend Overloads Function Save(Optional ByVal f As SFile = Nothing, Optional ByVal e As ErrorsDescriber = Nothing) As Boolean Implements ILoaderSaver.Save Dim XMLDateProvider As New ADateTime(ADateTime.Formats.BaseDateTime) Using x As New XmlFile With {.AllowSameNames = True, .Name = "Channel"} - x.DefaultsLoading(False) x.Add(Name_Name, Name) x.Add(Name_ID, ID) If Posts.Count > 0 Or PostsLatest.Count > 0 Then diff --git a/SCrawler/API/Reddit/UserData.vb b/SCrawler/API/Reddit/UserData.vb index 3cd9bfb..3bcbdcb 100644 --- a/SCrawler/API/Reddit/UserData.vb +++ b/SCrawler/API/Reddit/UserData.vb @@ -62,6 +62,8 @@ Namespace API.Reddit #Region "Initializers" ''' Video downloader initializer Private Sub New() + ChannelPostsNames = New List(Of String) + _ExistsUsersNames = New List(Of String) End Sub ''' Default initializer Friend Sub New(ByVal u As UserInfo, Optional ByVal _LoadUserInformation As Boolean = True, Optional ByVal InvokeImageHandler As Boolean = True) @@ -75,6 +77,9 @@ Namespace API.Reddit #Region "Download Overrides" Friend Overrides Sub DownloadData(ByVal Token As CancellationToken) If IsChannel AndAlso Not ChannelInfo.IsRegularChannel Then + If Not Responser Is Nothing Then Responser.Dispose() + Responser = New PersonalUtilities.Tools.WEB.Response + Responser.Copy(Settings.Site(Sites.Reddit).Responser) ChannelPostsNames.ListAddList(ChannelInfo.PostsAll.Select(Function(p) p.ID), LNC) If SkipExistsUsers Then _ExistsUsersNames.ListAddList(Settings.UsersList.Select(Function(p) p.Name), LNC) DownloadDataF(Token) @@ -201,8 +206,14 @@ Namespace API.Reddit Catch oex As OperationCanceledException When Token.IsCancellationRequested Catch dex As ObjectDisposedException When Disposed Catch ex As Exception - LogError(ex, $"data downloading error [{URL}]") - HasError = True + If ex.HelpLink = NonExistendUserHelp Then + UserExists = False + ElseIf ex.HelpLink = SuspendedUserHelp Then + UserSuspended = True + Else + LogError(ex, $"data downloading error [{URL}]") + HasError = True + End If End Try End Sub Private Sub DownloadDataChannel(ByVal POST As String, ByVal Token As CancellationToken) @@ -283,8 +294,14 @@ Namespace API.Reddit Catch oex As OperationCanceledException When Token.IsCancellationRequested Catch dex As ObjectDisposedException When Disposed Catch ex As Exception - LogError(ex, $"channel data downloading error [{URL}]") - HasError = True + If ex.HelpLink = NonExistendUserHelp Then + UserExists = False + ElseIf ex.HelpLink = SuspendedUserHelp Then + UserSuspended = True + Else + LogError(ex, $"channel data downloading error [{URL}]") + HasError = True + End If End Try End Sub #End Region @@ -384,6 +401,8 @@ Namespace API.Reddit If Not URL.IsEmptyString AndAlso URL.Contains("redgifs") Then Using r As New UserData r._TempMediaList.Add(MediaFromData(UTypes.VideoPre, URL, String.Empty, String.Empty,, False)) + r.Responser = New PersonalUtilities.Tools.WEB.Response + r.Responser.Copy(Settings.Site(Sites.Reddit).Responser) r.ReparseVideo(Nothing) If r._TempMediaList.ListExists Then Return r._TempMediaList(0) End Using @@ -442,6 +461,7 @@ Namespace API.Reddit Dim cached As Boolean = IsChannel And SaveToCache Dim vsf As Boolean = SeparateVideoFolderF Dim ImgFormat As Imaging.ImageFormat + Dim UseMD5 As Boolean = Not IsChannel Or (Not cached And Settings.ChannelsRegularCheckMD5) Dim bDP As New ErrorsDescriber(EDP.None) Dim MD5BS As Func(Of String, UTypes, SFile, Boolean, String) = Function(ByVal __URL As String, ByVal __MT As UTypes, @@ -474,7 +494,7 @@ Namespace API.Reddit End If f.Separator = "\" m = String.Empty - If (v.Type = UTypes.Picture Or v.Type = UTypes.GIF) And Not cached Then + If (v.Type = UTypes.Picture Or v.Type = UTypes.GIF) And UseMD5 Then m = MD5BS(v.URL, v.Type, f, False) If m.IsEmptyString AndAlso Not v.URL_BASE.IsEmptyString AndAlso Not v.URL_BASE = v.URL Then m = MD5BS(v.URL_BASE, v.Type, f, True) @@ -483,7 +503,7 @@ Namespace API.Reddit End If If (Not m.IsEmptyString AndAlso Not HashList.Contains(m)) Or Not (v.Type = UTypes.Picture Or - v.Type = UTypes.GIF) Or cached Then + v.Type = UTypes.GIF) Or Not UseMD5 Then If Not cached Then HashList.Add(m) v.MD5 = m f.Path = MyDir @@ -536,15 +556,20 @@ Namespace API.Reddit End Sub Protected Function GetSiteResponse(ByVal URL As String, Optional ByVal e As ErrorsDescriber = Nothing) As String Try - Return Settings.Site(Sites.Reddit).Responser.GetResponse(URL,, EDP.ThrowException) + Return Responser.GetResponse(URL,, EDP.ThrowException) Catch ex As Exception HasError = True Dim OptText$ = String.Empty If Not e.Exists Then Dim ee As EDP = EDP.SendInLog - If Settings.Site(Sites.Reddit).Responser.StatusCode = HttpStatusCode.NotFound Then - ee += EDP.ThrowException + If Responser.StatusCode = HttpStatusCode.NotFound Then + ee = EDP.ThrowException OptText = ": USER NOT FOUND" + ex.HelpLink = NonExistendUserHelp + ElseIf Responser.StatusCode = HttpStatusCode.Forbidden Then + ee = EDP.ThrowException + OptText = ": USER PROFILE SUSPENDED" + ex.HelpLink = SuspendedUserHelp Else ee += EDP.ReturnValue End If diff --git a/SCrawler/API/Twitter/UserData.vb b/SCrawler/API/Twitter/UserData.vb index 00a06b9..83e81dd 100644 --- a/SCrawler/API/Twitter/UserData.vb +++ b/SCrawler/API/Twitter/UserData.vb @@ -6,6 +6,7 @@ ' ' This program is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY +Imports PersonalUtilities.Tools.WEB Imports PersonalUtilities.Tools.WebDocuments.JSON Imports PersonalUtilities.Functions.XML Imports System.Net @@ -67,7 +68,7 @@ Namespace API.Twitter If Not POST.IsEmptyString Then URL &= $"&max_id={POST}" ThrowAny(Token) - Dim r$ = Settings.Site(Sites.Twitter).Responser.GetResponse(URL,, EDP.ThrowException) + Dim r$ = Responser.GetResponse(URL,, EDP.ThrowException) If Not r.IsEmptyString Then Using w As EContainer = JsonDocument.Parse(r) If Not w Is Nothing AndAlso w.Count > 0 Then @@ -117,8 +118,16 @@ Namespace API.Twitter Catch oex As OperationCanceledException When Token.IsCancellationRequested Catch dex As ObjectDisposedException When Disposed Catch ex As Exception - LogError(ex, $"data downloading error [{URL}]") - HasError = True + If Responser.StatusCode = HttpStatusCode.NotFound Then + UserExists = False + ElseIf Responser.StatusCode = HttpStatusCode.Unauthorized Then + UserSuspended = True + ElseIf Responser.StatusCode = HttpStatusCode.BadRequest Then + MyMainLOG = "Twitter has invalid credentials" + Else + LogError(ex, $"data downloading error [{URL}]") + HasError = True + End If End Try End Sub Friend Shared Function GetVideoInfo(ByVal URL As String) As UserMedia @@ -126,8 +135,8 @@ Namespace API.Twitter If URL.Contains("twitter") Then Dim PostID$ = RegexReplace(URL, New RegexStructure("(?<=/)\d+", True, False,,,,, String.Empty)) If Not PostID.IsEmptyString Then - Dim r$ = Settings.Site(Sites.Twitter).Responser.GetResponse($"https://api.twitter.com/1.1/statuses/show.json?id={PostID}",, - EDP.ReturnValue) + Dim r$ = DirectCast(Settings.Site(Sites.Twitter).Responser.Copy(), Response). + GetResponse($"https://api.twitter.com/1.1/statuses/show.json?id={PostID}",, EDP.ReturnValue) If Not r.IsEmptyString Then Using j As EContainer = JsonDocument.Parse(r) If j.ListExists Then diff --git a/SCrawler/API/UserDataBind.vb b/SCrawler/API/UserDataBind.vb index 3fc66f8..800a440 100644 --- a/SCrawler/API/UserDataBind.vb +++ b/SCrawler/API/UserDataBind.vb @@ -36,6 +36,20 @@ Namespace API CollectionName = NewCollectionName End Set End Property + Friend Overrides Property UserExists As Boolean + Get + Return Count > 0 AndAlso Collections.Exists(Function(c) c.Exists) + End Get + Set(ByVal e As Boolean) + End Set + End Property + Friend Overrides Property UserSuspended As Boolean + Get + Return Count > 0 AndAlso Collections.LongCount(Function(c) c.Suspended) = Count + End Get + Set(ByVal s As Boolean) + End Set + End Property Friend Overrides Sub ChangeCollectionName(ByVal NewName As String, ByVal UpdateSettings As Boolean) _CollectionName = NewName If Count > 0 Then Collections.ForEach(Sub(c) c.CollectionName = NewName) @@ -278,8 +292,8 @@ Namespace API End Sub Protected Overrides Sub DownloadContent(ByVal Token As CancellationToken) End Sub - Private Sub User_OnPictureUpdated(ByVal User As IUserData) - Raise_OnPictureUpdated() + Private Sub User_OnUserUpdated(ByVal User As IUserData) + Raise_OnUserUpdated() End Sub Friend Overrides Sub OpenSite() If Count > 0 Then Collections(0).OpenSite() @@ -314,7 +328,7 @@ Namespace API .UpdateUserInformation() End If ImageHandler(_Item, False) - AddHandler .Self.OnPictureUpdated, AddressOf User_OnPictureUpdated + AddHandler .Self.OnUserUpdated, AddressOf User_OnUserUpdated DirectCast(.Self, UserDataBase).CreateButtons(Count - 1) End With Else @@ -333,7 +347,7 @@ Namespace API .CreateButtons(Count - 1) AddHandler .BTT_CONTEXT_DELETE.Click, AddressOf BTT_CONTEXT_DELETE_Click End With - AddHandler Collections(Count - 1).OnPictureUpdated, AddressOf User_OnPictureUpdated + AddHandler Collections.Last.OnUserUpdated, AddressOf User_OnUserUpdated End Sub Friend Sub AddRange(ByVal _Items As IEnumerable(Of IUserData)) If Not _Items Is Nothing AndAlso _Items.Count > 0 Then diff --git a/SCrawler/Channels/ChannelViewForm.vb b/SCrawler/Channels/ChannelViewForm.vb index 9aeafcb..ed1efed 100644 --- a/SCrawler/Channels/ChannelViewForm.vb +++ b/SCrawler/Channels/ChannelViewForm.vb @@ -424,7 +424,11 @@ Friend Class ChannelViewForm : Implements IChannelLimits If Not Settings.UsersList.Contains(.ElementAt(i)) Then f = PendingUsers(i).File Settings.UpdateUsersList(.ElementAt(i)) - Settings.Users.Add(New UserData(.ElementAt(i), False) With {.Temporary = True, .CreatedByChannel = True}) + Settings.Users.Add(New UserData(.ElementAt(i), False) With { + .Temporary = Settings.ChannelsDefaultTemporary, + .CreatedByChannel = True, + .ReadyForDownload = Settings.ChannelsDefaultReadyForDownload + }) With Settings.Users.Last .Labels.Add(CannelsLabelName) .UpdateUserInformation() @@ -568,6 +572,7 @@ Friend Class ChannelViewForm : Implements IChannelLimits End Sub Private Sub ChangeComboIndex(ByVal Appender As Integer) Try + AppendPendingUsers() Dim _ComboUpEnabled As Boolean = False Dim _ComboDownEnabled As Boolean = False If CMB_CHANNELS.Count > 0 Then diff --git a/SCrawler/Editors/GlobalSettingsForm.Designer.vb b/SCrawler/Editors/GlobalSettingsForm.Designer.vb index 787ec8d..8158981 100644 --- a/SCrawler/Editors/GlobalSettingsForm.Designer.vb +++ b/SCrawler/Editors/GlobalSettingsForm.Designer.vb @@ -15,35 +15,41 @@ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() - Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel + Dim TP_BASIS As System.Windows.Forms.TableLayoutPanel Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GlobalSettingsForm)) Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim TP_IMAGES As System.Windows.Forms.TableLayoutPanel - Dim TP_CHANNELS_IMGS As System.Windows.Forms.TableLayoutPanel + Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton() - Dim TP_DEFAULTS As System.Windows.Forms.TableLayoutPanel + Dim TT_MAIN As System.Windows.Forms.ToolTip Dim TP_FILE_NAME As System.Windows.Forms.TableLayoutPanel Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel Dim LBL_DATE_POS As System.Windows.Forms.Label - Dim TT_MAIN As System.Windows.Forms.ToolTip + Dim TP_CHANNELS_IMGS As System.Windows.Forms.TableLayoutPanel + Dim TAB_MAIN As System.Windows.Forms.TabControl + Dim TAB_BASIS As System.Windows.Forms.TabPage + Dim TAB_DEFAULTS As System.Windows.Forms.TabPage + Dim TP_DEFS As System.Windows.Forms.TableLayoutPanel + Dim TAB_DEFS_CHANNELS As System.Windows.Forms.TabPage + Dim TP_CHANNELS As System.Windows.Forms.TableLayoutPanel + Dim TAB_DEFS_REDDIT As System.Windows.Forms.TabPage + Dim TP_REDDIT As System.Windows.Forms.TableLayoutPanel + Dim TAB_DEFS_TWITTER As System.Windows.Forms.TabPage + Dim TP_TWITTER As System.Windows.Forms.TableLayoutPanel Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.CH_SEPARATE_VIDEO_FOLDER = New System.Windows.Forms.CheckBox() - Me.TXT_COLLECTIONS_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.TXT_CHANNELS_ROWS = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.TXT_CHANNELS_COLUMNS = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.TXT_CHANNEL_USER_POST_LIMIT = New PersonalUtilities.Forms.Controls.TextBoxExtended() - Me.CH_COPY_CHANNEL_USER_IMAGE = New System.Windows.Forms.CheckBox() - Me.CH_CHECK_VER_START = New System.Windows.Forms.CheckBox() + Me.TXT_COLLECTIONS_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_MAX_JOBS_USERS = New PersonalUtilities.Forms.Controls.TextBoxExtended() Me.TXT_MAX_JOBS_CHANNELS = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.CH_CHECK_VER_START = New System.Windows.Forms.CheckBox() + 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() Me.CH_DOWN_VIDEOS = New System.Windows.Forms.CheckBox() + Me.CH_SEPARATE_VIDEO_FOLDER = New System.Windows.Forms.CheckBox() Me.OPT_FILE_NAME_REPLACE = New System.Windows.Forms.RadioButton() Me.OPT_FILE_NAME_ADD_DATE = New System.Windows.Forms.RadioButton() Me.CH_FILE_NAME_CHANGE = New System.Windows.Forms.CheckBox() @@ -51,72 +57,93 @@ Me.CH_FILE_TIME = New System.Windows.Forms.CheckBox() Me.OPT_FILE_DATE_START = New System.Windows.Forms.RadioButton() Me.OPT_FILE_DATE_END = New System.Windows.Forms.RadioButton() + Me.TXT_CHANNELS_ROWS = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.TXT_CHANNELS_COLUMNS = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.TXT_CHANNEL_USER_POST_LIMIT = New PersonalUtilities.Forms.Controls.TextBoxExtended() + Me.CH_CHANNELS_USERS_TEMP = New System.Windows.Forms.CheckBox() + Me.CH_REDDIT_TEMP = New System.Windows.Forms.CheckBox() + Me.CH_REDDIT_DOWN_IMG = New System.Windows.Forms.CheckBox() + Me.CH_REDDIT_DOWN_VID = New System.Windows.Forms.CheckBox() + Me.CH_TWITTER_TEMP = New System.Windows.Forms.CheckBox() + Me.CH_TWITTER_DOWN_IMG = New System.Windows.Forms.CheckBox() + Me.CH_TWITTER_DOWN_VID = New System.Windows.Forms.CheckBox() + Me.CH_TWITTER_USER_MEDIA = New System.Windows.Forms.CheckBox() Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer() - TP_MAIN = New System.Windows.Forms.TableLayoutPanel() + TP_BASIS = New System.Windows.Forms.TableLayoutPanel() TP_IMAGES = New System.Windows.Forms.TableLayoutPanel() - TP_CHANNELS_IMGS = New System.Windows.Forms.TableLayoutPanel() - TP_DEFAULTS = New System.Windows.Forms.TableLayoutPanel() + TT_MAIN = New System.Windows.Forms.ToolTip(Me.components) TP_FILE_NAME = New System.Windows.Forms.TableLayoutPanel() TP_FILE_PATTERNS = New System.Windows.Forms.TableLayoutPanel() LBL_DATE_POS = New System.Windows.Forms.Label() - TT_MAIN = New System.Windows.Forms.ToolTip(Me.components) - TP_MAIN.SuspendLayout() + TP_CHANNELS_IMGS = New System.Windows.Forms.TableLayoutPanel() + TAB_MAIN = New System.Windows.Forms.TabControl() + TAB_BASIS = New System.Windows.Forms.TabPage() + TAB_DEFAULTS = New System.Windows.Forms.TabPage() + TP_DEFS = New System.Windows.Forms.TableLayoutPanel() + TAB_DEFS_CHANNELS = New System.Windows.Forms.TabPage() + TP_CHANNELS = New System.Windows.Forms.TableLayoutPanel() + TAB_DEFS_REDDIT = New System.Windows.Forms.TabPage() + TP_REDDIT = New System.Windows.Forms.TableLayoutPanel() + TAB_DEFS_TWITTER = New System.Windows.Forms.TabPage() + TP_TWITTER = New System.Windows.Forms.TableLayoutPanel() + TP_BASIS.SuspendLayout() CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).BeginInit() TP_IMAGES.SuspendLayout() CType(Me.TXT_IMAGE_LARGE, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TXT_IMAGE_SMALL, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_MAX_JOBS_USERS, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).BeginInit() + TP_FILE_NAME.SuspendLayout() + TP_FILE_PATTERNS.SuspendLayout() TP_CHANNELS_IMGS.SuspendLayout() CType(Me.TXT_CHANNELS_ROWS, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TXT_CHANNELS_COLUMNS, System.ComponentModel.ISupportInitialize).BeginInit() + TAB_MAIN.SuspendLayout() + TAB_BASIS.SuspendLayout() + TAB_DEFAULTS.SuspendLayout() + TP_DEFS.SuspendLayout() + TAB_DEFS_CHANNELS.SuspendLayout() + TP_CHANNELS.SuspendLayout() CType(Me.TXT_CHANNEL_USER_POST_LIMIT, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_MAX_JOBS_USERS, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).BeginInit() - TP_DEFAULTS.SuspendLayout() - TP_FILE_NAME.SuspendLayout() - TP_FILE_PATTERNS.SuspendLayout() + TAB_DEFS_REDDIT.SuspendLayout() + TP_REDDIT.SuspendLayout() + TAB_DEFS_TWITTER.SuspendLayout() + TP_TWITTER.SuspendLayout() Me.CONTAINER_MAIN.ContentPanel.SuspendLayout() Me.CONTAINER_MAIN.SuspendLayout() Me.SuspendLayout() ' - 'TP_MAIN + 'TP_BASIS ' - TP_MAIN.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] - TP_MAIN.ColumnCount = 1 - TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_MAIN.Controls.Add(Me.TXT_GLOBAL_PATH, 0, 0) - TP_MAIN.Controls.Add(Me.CH_SEPARATE_VIDEO_FOLDER, 0, 2) - TP_MAIN.Controls.Add(Me.TXT_COLLECTIONS_PATH, 0, 4) - TP_MAIN.Controls.Add(TP_IMAGES, 0, 1) - TP_MAIN.Controls.Add(TP_CHANNELS_IMGS, 0, 5) - TP_MAIN.Controls.Add(Me.TXT_CHANNEL_USER_POST_LIMIT, 0, 6) - TP_MAIN.Controls.Add(Me.CH_COPY_CHANNEL_USER_IMAGE, 0, 7) - TP_MAIN.Controls.Add(Me.CH_CHECK_VER_START, 0, 8) - TP_MAIN.Controls.Add(Me.TXT_MAX_JOBS_USERS, 0, 9) - TP_MAIN.Controls.Add(Me.TXT_MAX_JOBS_CHANNELS, 0, 10) - TP_MAIN.Controls.Add(TP_DEFAULTS, 0, 3) - TP_MAIN.Controls.Add(TP_FILE_NAME, 0, 11) - TP_MAIN.Controls.Add(TP_FILE_PATTERNS, 0, 12) - 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 = 13 - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692121!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.693649!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.693649!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692503!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.691732!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.692427!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.691657!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.691657!)) - TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) - TP_MAIN.Size = New System.Drawing.Size(584, 359) - TP_MAIN.TabIndex = 0 + TP_BASIS.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_BASIS.ColumnCount = 1 + TP_BASIS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_BASIS.Controls.Add(Me.TXT_GLOBAL_PATH, 0, 0) + TP_BASIS.Controls.Add(TP_IMAGES, 0, 1) + TP_BASIS.Controls.Add(Me.TXT_COLLECTIONS_PATH, 0, 2) + TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_USERS, 0, 3) + TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_CHANNELS, 0, 4) + TP_BASIS.Controls.Add(Me.CH_CHECK_VER_START, 0, 5) + 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 = 7 + 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!)) + 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, 25.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_BASIS.Size = New System.Drawing.Size(570, 352) + TP_BASIS.TabIndex = 0 ' 'TXT_GLOBAL_PATH ' @@ -134,37 +161,9 @@ Me.TXT_GLOBAL_PATH.Dock = System.Windows.Forms.DockStyle.Fill Me.TXT_GLOBAL_PATH.Location = New System.Drawing.Point(4, 4) Me.TXT_GLOBAL_PATH.Name = "TXT_GLOBAL_PATH" - Me.TXT_GLOBAL_PATH.Size = New System.Drawing.Size(576, 22) + Me.TXT_GLOBAL_PATH.Size = New System.Drawing.Size(562, 22) Me.TXT_GLOBAL_PATH.TabIndex = 0 ' - 'CH_SEPARATE_VIDEO_FOLDER - ' - Me.CH_SEPARATE_VIDEO_FOLDER.AutoSize = True - Me.CH_SEPARATE_VIDEO_FOLDER.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_SEPARATE_VIDEO_FOLDER.Location = New System.Drawing.Point(4, 58) - Me.CH_SEPARATE_VIDEO_FOLDER.Name = "CH_SEPARATE_VIDEO_FOLDER" - Me.CH_SEPARATE_VIDEO_FOLDER.Padding = New System.Windows.Forms.Padding(100, 0, 0, 0) - Me.CH_SEPARATE_VIDEO_FOLDER.Size = New System.Drawing.Size(576, 20) - Me.CH_SEPARATE_VIDEO_FOLDER.TabIndex = 2 - Me.CH_SEPARATE_VIDEO_FOLDER.Text = "Separate video folders" - TT_MAIN.SetToolTip(Me.CH_SEPARATE_VIDEO_FOLDER, resources.GetString("CH_SEPARATE_VIDEO_FOLDER.ToolTip")) - Me.CH_SEPARATE_VIDEO_FOLDER.UseVisualStyleBackColor = True - ' - 'TXT_COLLECTIONS_PATH - ' - ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image) - ActionButton3.Index = 0 - ActionButton3.Name = "BTT_CLEAR" - Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton3) - Me.TXT_COLLECTIONS_PATH.CaptionText = "Collections folder" - Me.TXT_COLLECTIONS_PATH.CaptionToolTipEnabled = True - Me.TXT_COLLECTIONS_PATH.CaptionToolTipText = "Set collections folder name (name only)" - Me.TXT_COLLECTIONS_PATH.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_COLLECTIONS_PATH.Location = New System.Drawing.Point(4, 112) - Me.TXT_COLLECTIONS_PATH.Name = "TXT_COLLECTIONS_PATH" - Me.TXT_COLLECTIONS_PATH.Size = New System.Drawing.Size(576, 22) - Me.TXT_COLLECTIONS_PATH.TabIndex = 4 - ' 'TP_IMAGES ' TP_IMAGES.ColumnCount = 2 @@ -173,13 +172,13 @@ TP_IMAGES.Controls.Add(Me.TXT_IMAGE_LARGE, 0, 0) TP_IMAGES.Controls.Add(Me.TXT_IMAGE_SMALL, 1, 0) TP_IMAGES.Dock = System.Windows.Forms.DockStyle.Fill - TP_IMAGES.Location = New System.Drawing.Point(1, 28) + TP_IMAGES.Location = New System.Drawing.Point(1, 30) TP_IMAGES.Margin = New System.Windows.Forms.Padding(0) TP_IMAGES.Name = "TP_IMAGES" TP_IMAGES.RowCount = 1 TP_IMAGES.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) TP_IMAGES.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_IMAGES.Size = New System.Drawing.Size(582, 26) + TP_IMAGES.Size = New System.Drawing.Size(568, 28) TP_IMAGES.TabIndex = 1 ' 'TXT_IMAGE_LARGE @@ -193,7 +192,7 @@ Me.TXT_IMAGE_LARGE.Name = "TXT_IMAGE_LARGE" Me.TXT_IMAGE_LARGE.NumberMaximum = New Decimal(New Integer() {1000, 0, 0, 0}) Me.TXT_IMAGE_LARGE.NumberMinimum = New Decimal(New Integer() {50, 0, 0, 0}) - Me.TXT_IMAGE_LARGE.Size = New System.Drawing.Size(285, 22) + Me.TXT_IMAGE_LARGE.Size = New System.Drawing.Size(278, 22) Me.TXT_IMAGE_LARGE.TabIndex = 0 Me.TXT_IMAGE_LARGE.Text = "50" Me.TXT_IMAGE_LARGE.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center @@ -205,103 +204,29 @@ Me.TXT_IMAGE_SMALL.CaptionToolTipText = "Maximum small image size by height" Me.TXT_IMAGE_SMALL.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown Me.TXT_IMAGE_SMALL.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_IMAGE_SMALL.Location = New System.Drawing.Point(294, 3) + Me.TXT_IMAGE_SMALL.Location = New System.Drawing.Point(287, 3) Me.TXT_IMAGE_SMALL.Name = "TXT_IMAGE_SMALL" Me.TXT_IMAGE_SMALL.NumberMaximum = New Decimal(New Integer() {500, 0, 0, 0}) Me.TXT_IMAGE_SMALL.NumberMinimum = New Decimal(New Integer() {10, 0, 0, 0}) - Me.TXT_IMAGE_SMALL.Size = New System.Drawing.Size(285, 22) + Me.TXT_IMAGE_SMALL.Size = New System.Drawing.Size(278, 22) Me.TXT_IMAGE_SMALL.TabIndex = 1 Me.TXT_IMAGE_SMALL.Text = "10" Me.TXT_IMAGE_SMALL.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center ' - 'TP_CHANNELS_IMGS + 'TXT_COLLECTIONS_PATH ' - TP_CHANNELS_IMGS.ColumnCount = 2 - TP_CHANNELS_IMGS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - TP_CHANNELS_IMGS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - TP_CHANNELS_IMGS.Controls.Add(Me.TXT_CHANNELS_ROWS, 0, 0) - TP_CHANNELS_IMGS.Controls.Add(Me.TXT_CHANNELS_COLUMNS, 1, 0) - TP_CHANNELS_IMGS.Dock = System.Windows.Forms.DockStyle.Fill - TP_CHANNELS_IMGS.Location = New System.Drawing.Point(1, 136) - TP_CHANNELS_IMGS.Margin = New System.Windows.Forms.Padding(0) - TP_CHANNELS_IMGS.Name = "TP_CHANNELS_IMGS" - TP_CHANNELS_IMGS.RowCount = 1 - TP_CHANNELS_IMGS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_CHANNELS_IMGS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) - TP_CHANNELS_IMGS.Size = New System.Drawing.Size(582, 26) - TP_CHANNELS_IMGS.TabIndex = 5 - ' - 'TXT_CHANNELS_ROWS - ' - Me.TXT_CHANNELS_ROWS.CaptionText = "Channels rows" - Me.TXT_CHANNELS_ROWS.CaptionToolTipEnabled = True - Me.TXT_CHANNELS_ROWS.CaptionToolTipText = "How many images' rows should be shown in the channels form" - Me.TXT_CHANNELS_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown - Me.TXT_CHANNELS_ROWS.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_CHANNELS_ROWS.Location = New System.Drawing.Point(3, 3) - Me.TXT_CHANNELS_ROWS.Name = "TXT_CHANNELS_ROWS" - Me.TXT_CHANNELS_ROWS.Size = New System.Drawing.Size(285, 22) - Me.TXT_CHANNELS_ROWS.TabIndex = 0 - Me.TXT_CHANNELS_ROWS.Text = "0" - Me.TXT_CHANNELS_ROWS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center - ' - 'TXT_CHANNELS_COLUMNS - ' - Me.TXT_CHANNELS_COLUMNS.CaptionText = "Channels columns" - Me.TXT_CHANNELS_COLUMNS.CaptionToolTipEnabled = True - Me.TXT_CHANNELS_COLUMNS.CaptionToolTipText = "How many images' columns should be shown in the channels form" - Me.TXT_CHANNELS_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown - Me.TXT_CHANNELS_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_CHANNELS_COLUMNS.Location = New System.Drawing.Point(294, 3) - Me.TXT_CHANNELS_COLUMNS.Name = "TXT_CHANNELS_COLUMNS" - Me.TXT_CHANNELS_COLUMNS.Size = New System.Drawing.Size(285, 22) - Me.TXT_CHANNELS_COLUMNS.TabIndex = 1 - Me.TXT_CHANNELS_COLUMNS.Text = "0" - Me.TXT_CHANNELS_COLUMNS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center - ' - 'TXT_CHANNEL_USER_POST_LIMIT - ' - Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox - Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionSizeType = System.Windows.Forms.SizeType.Percent - Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionText = "Download limit for channel user" - Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionToolTipText = "Set count of downloading posts limit if user added from channel" - Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionWidth = 50.0R - Me.TXT_CHANNEL_USER_POST_LIMIT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown - Me.TXT_CHANNEL_USER_POST_LIMIT.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_CHANNEL_USER_POST_LIMIT.Location = New System.Drawing.Point(4, 166) - Me.TXT_CHANNEL_USER_POST_LIMIT.Name = "TXT_CHANNEL_USER_POST_LIMIT" - Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMaximum = New Decimal(New Integer() {1000, 0, 0, 0}) - Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0}) - Me.TXT_CHANNEL_USER_POST_LIMIT.Size = New System.Drawing.Size(576, 22) - Me.TXT_CHANNEL_USER_POST_LIMIT.TabIndex = 6 - Me.TXT_CHANNEL_USER_POST_LIMIT.Text = "1" - Me.TXT_CHANNEL_USER_POST_LIMIT.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center - ' - 'CH_COPY_CHANNEL_USER_IMAGE - ' - Me.CH_COPY_CHANNEL_USER_IMAGE.AutoSize = True - Me.CH_COPY_CHANNEL_USER_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_COPY_CHANNEL_USER_IMAGE.Location = New System.Drawing.Point(4, 193) - Me.CH_COPY_CHANNEL_USER_IMAGE.Name = "CH_COPY_CHANNEL_USER_IMAGE" - Me.CH_COPY_CHANNEL_USER_IMAGE.Padding = New System.Windows.Forms.Padding(100, 0, 0, 0) - Me.CH_COPY_CHANNEL_USER_IMAGE.Size = New System.Drawing.Size(576, 20) - Me.CH_COPY_CHANNEL_USER_IMAGE.TabIndex = 7 - Me.CH_COPY_CHANNEL_USER_IMAGE.Text = "Copy channel user image" - TT_MAIN.SetToolTip(Me.CH_COPY_CHANNEL_USER_IMAGE, "Copy image posted by user (in the channel you added from) to the user destination" & - " folder.") - Me.CH_COPY_CHANNEL_USER_IMAGE.UseVisualStyleBackColor = True - ' - 'CH_CHECK_VER_START - ' - Me.CH_CHECK_VER_START.AutoSize = True - Me.CH_CHECK_VER_START.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_CHECK_VER_START.Location = New System.Drawing.Point(4, 220) - Me.CH_CHECK_VER_START.Name = "CH_CHECK_VER_START" - Me.CH_CHECK_VER_START.Padding = New System.Windows.Forms.Padding(100, 0, 0, 0) - Me.CH_CHECK_VER_START.Size = New System.Drawing.Size(576, 20) - Me.CH_CHECK_VER_START.TabIndex = 8 - Me.CH_CHECK_VER_START.Text = "Check new version at start" - Me.CH_CHECK_VER_START.UseVisualStyleBackColor = True + ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image) + ActionButton3.Index = 0 + ActionButton3.Name = "BTT_CLEAR" + Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton3) + Me.TXT_COLLECTIONS_PATH.CaptionText = "Collections folder" + Me.TXT_COLLECTIONS_PATH.CaptionToolTipEnabled = True + Me.TXT_COLLECTIONS_PATH.CaptionToolTipText = "Set collections folder name (name only)" + Me.TXT_COLLECTIONS_PATH.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_COLLECTIONS_PATH.Location = New System.Drawing.Point(4, 62) + Me.TXT_COLLECTIONS_PATH.Name = "TXT_COLLECTIONS_PATH" + Me.TXT_COLLECTIONS_PATH.Size = New System.Drawing.Size(562, 22) + Me.TXT_COLLECTIONS_PATH.TabIndex = 2 ' 'TXT_MAX_JOBS_USERS ' @@ -315,11 +240,11 @@ Me.TXT_MAX_JOBS_USERS.CaptionWidth = 50.0R Me.TXT_MAX_JOBS_USERS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown Me.TXT_MAX_JOBS_USERS.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_MAX_JOBS_USERS.Location = New System.Drawing.Point(4, 247) + Me.TXT_MAX_JOBS_USERS.Location = New System.Drawing.Point(4, 91) Me.TXT_MAX_JOBS_USERS.Name = "TXT_MAX_JOBS_USERS" Me.TXT_MAX_JOBS_USERS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0}) - Me.TXT_MAX_JOBS_USERS.Size = New System.Drawing.Size(576, 22) - Me.TXT_MAX_JOBS_USERS.TabIndex = 9 + Me.TXT_MAX_JOBS_USERS.Size = New System.Drawing.Size(562, 22) + Me.TXT_MAX_JOBS_USERS.TabIndex = 3 Me.TXT_MAX_JOBS_USERS.Text = "1" Me.TXT_MAX_JOBS_USERS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center ' @@ -335,70 +260,86 @@ Me.TXT_MAX_JOBS_CHANNELS.CaptionWidth = 50.0R Me.TXT_MAX_JOBS_CHANNELS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown Me.TXT_MAX_JOBS_CHANNELS.Dock = System.Windows.Forms.DockStyle.Fill - Me.TXT_MAX_JOBS_CHANNELS.Location = New System.Drawing.Point(4, 274) + Me.TXT_MAX_JOBS_CHANNELS.Location = New System.Drawing.Point(4, 120) Me.TXT_MAX_JOBS_CHANNELS.Name = "TXT_MAX_JOBS_CHANNELS" Me.TXT_MAX_JOBS_CHANNELS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0}) - Me.TXT_MAX_JOBS_CHANNELS.Size = New System.Drawing.Size(576, 22) - Me.TXT_MAX_JOBS_CHANNELS.TabIndex = 10 + Me.TXT_MAX_JOBS_CHANNELS.Size = New System.Drawing.Size(562, 22) + Me.TXT_MAX_JOBS_CHANNELS.TabIndex = 4 Me.TXT_MAX_JOBS_CHANNELS.Text = "1" Me.TXT_MAX_JOBS_CHANNELS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center ' - 'TP_DEFAULTS + 'CH_CHECK_VER_START ' - TP_DEFAULTS.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] - TP_DEFAULTS.ColumnCount = 3 - TP_DEFAULTS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) - TP_DEFAULTS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) - TP_DEFAULTS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!)) - TP_DEFAULTS.Controls.Add(Me.CH_DEF_TEMP, 0, 0) - TP_DEFAULTS.Controls.Add(Me.CH_DOWN_IMAGES, 1, 0) - TP_DEFAULTS.Controls.Add(Me.CH_DOWN_VIDEOS, 2, 0) - TP_DEFAULTS.Dock = System.Windows.Forms.DockStyle.Fill - TP_DEFAULTS.Location = New System.Drawing.Point(1, 82) - TP_DEFAULTS.Margin = New System.Windows.Forms.Padding(0) - TP_DEFAULTS.Name = "TP_DEFAULTS" - TP_DEFAULTS.RowCount = 1 - TP_DEFAULTS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_DEFAULTS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27.0!)) - TP_DEFAULTS.Size = New System.Drawing.Size(582, 26) - TP_DEFAULTS.TabIndex = 3 + Me.CH_CHECK_VER_START.AutoSize = True + Me.CH_CHECK_VER_START.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_CHECK_VER_START.Location = New System.Drawing.Point(4, 149) + Me.CH_CHECK_VER_START.Name = "CH_CHECK_VER_START" + Me.CH_CHECK_VER_START.Size = New System.Drawing.Size(562, 19) + Me.CH_CHECK_VER_START.TabIndex = 5 + Me.CH_CHECK_VER_START.Text = "Check new version at start" + Me.CH_CHECK_VER_START.UseVisualStyleBackColor = True + ' + 'CH_COPY_CHANNEL_USER_IMAGE + ' + Me.CH_COPY_CHANNEL_USER_IMAGE.AutoSize = True + Me.CH_COPY_CHANNEL_USER_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_COPY_CHANNEL_USER_IMAGE.Location = New System.Drawing.Point(4, 62) + Me.CH_COPY_CHANNEL_USER_IMAGE.Name = "CH_COPY_CHANNEL_USER_IMAGE" + Me.CH_COPY_CHANNEL_USER_IMAGE.Size = New System.Drawing.Size(562, 19) + Me.CH_COPY_CHANNEL_USER_IMAGE.TabIndex = 2 + Me.CH_COPY_CHANNEL_USER_IMAGE.Text = "Copy channel user image" + TT_MAIN.SetToolTip(Me.CH_COPY_CHANNEL_USER_IMAGE, "Copy image posted by user (in the channel you added from) to the user's destinati" & + "on folder.") + Me.CH_COPY_CHANNEL_USER_IMAGE.UseVisualStyleBackColor = True ' 'CH_DEF_TEMP ' Me.CH_DEF_TEMP.AutoSize = True Me.CH_DEF_TEMP.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_DEF_TEMP.Location = New System.Drawing.Point(4, 4) + Me.CH_DEF_TEMP.Location = New System.Drawing.Point(4, 30) Me.CH_DEF_TEMP.Name = "CH_DEF_TEMP" - Me.CH_DEF_TEMP.Size = New System.Drawing.Size(186, 18) - Me.CH_DEF_TEMP.TabIndex = 0 - Me.CH_DEF_TEMP.Text = "Temporary default" - TT_MAIN.SetToolTip(Me.CH_DEF_TEMP, "Default value on user creating (can be changed in the new user form)") + Me.CH_DEF_TEMP.Size = New System.Drawing.Size(562, 19) + Me.CH_DEF_TEMP.TabIndex = 1 + Me.CH_DEF_TEMP.Text = "Temporary" + TT_MAIN.SetToolTip(Me.CH_DEF_TEMP, "Default value when creating a new user (can be changed in the new user form)") Me.CH_DEF_TEMP.UseVisualStyleBackColor = True ' 'CH_DOWN_IMAGES ' Me.CH_DOWN_IMAGES.AutoSize = True Me.CH_DOWN_IMAGES.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_DOWN_IMAGES.Location = New System.Drawing.Point(197, 4) + Me.CH_DOWN_IMAGES.Location = New System.Drawing.Point(4, 56) Me.CH_DOWN_IMAGES.Name = "CH_DOWN_IMAGES" - Me.CH_DOWN_IMAGES.Size = New System.Drawing.Size(186, 18) - Me.CH_DOWN_IMAGES.TabIndex = 1 + Me.CH_DOWN_IMAGES.Size = New System.Drawing.Size(562, 19) + Me.CH_DOWN_IMAGES.TabIndex = 2 Me.CH_DOWN_IMAGES.Text = "Download images" - TT_MAIN.SetToolTip(Me.CH_DOWN_IMAGES, "By default, download images for new users (can be changed in the new user form)") + TT_MAIN.SetToolTip(Me.CH_DOWN_IMAGES, "Default value when creating a new user (can be changed in the new user form)") Me.CH_DOWN_IMAGES.UseVisualStyleBackColor = True ' 'CH_DOWN_VIDEOS ' Me.CH_DOWN_VIDEOS.AutoSize = True Me.CH_DOWN_VIDEOS.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_DOWN_VIDEOS.Location = New System.Drawing.Point(390, 4) + Me.CH_DOWN_VIDEOS.Location = New System.Drawing.Point(4, 82) Me.CH_DOWN_VIDEOS.Name = "CH_DOWN_VIDEOS" - Me.CH_DOWN_VIDEOS.Size = New System.Drawing.Size(188, 18) - Me.CH_DOWN_VIDEOS.TabIndex = 2 + Me.CH_DOWN_VIDEOS.Size = New System.Drawing.Size(562, 19) + Me.CH_DOWN_VIDEOS.TabIndex = 3 Me.CH_DOWN_VIDEOS.Text = "Download videos" - TT_MAIN.SetToolTip(Me.CH_DOWN_VIDEOS, "By default, download videos for new users (can be changed in the new user form)") + TT_MAIN.SetToolTip(Me.CH_DOWN_VIDEOS, "Default value when creating a new user (can be changed in the new user form)") Me.CH_DOWN_VIDEOS.UseVisualStyleBackColor = True ' + 'CH_SEPARATE_VIDEO_FOLDER + ' + Me.CH_SEPARATE_VIDEO_FOLDER.AutoSize = True + Me.CH_SEPARATE_VIDEO_FOLDER.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_SEPARATE_VIDEO_FOLDER.Location = New System.Drawing.Point(4, 4) + Me.CH_SEPARATE_VIDEO_FOLDER.Name = "CH_SEPARATE_VIDEO_FOLDER" + Me.CH_SEPARATE_VIDEO_FOLDER.Size = New System.Drawing.Size(562, 19) + Me.CH_SEPARATE_VIDEO_FOLDER.TabIndex = 0 + Me.CH_SEPARATE_VIDEO_FOLDER.Text = "Separate video folders" + TT_MAIN.SetToolTip(Me.CH_SEPARATE_VIDEO_FOLDER, resources.GetString("CH_SEPARATE_VIDEO_FOLDER.ToolTip")) + Me.CH_SEPARATE_VIDEO_FOLDER.UseVisualStyleBackColor = True + ' 'TP_FILE_NAME ' TP_FILE_NAME.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] @@ -410,21 +351,21 @@ TP_FILE_NAME.Controls.Add(Me.OPT_FILE_NAME_ADD_DATE, 2, 0) TP_FILE_NAME.Controls.Add(Me.CH_FILE_NAME_CHANGE, 0, 0) TP_FILE_NAME.Dock = System.Windows.Forms.DockStyle.Fill - TP_FILE_NAME.Location = New System.Drawing.Point(1, 298) + TP_FILE_NAME.Location = New System.Drawing.Point(1, 111) TP_FILE_NAME.Margin = New System.Windows.Forms.Padding(0) TP_FILE_NAME.Name = "TP_FILE_NAME" TP_FILE_NAME.RowCount = 1 TP_FILE_NAME.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_FILE_NAME.Size = New System.Drawing.Size(582, 26) - TP_FILE_NAME.TabIndex = 12 + TP_FILE_NAME.Size = New System.Drawing.Size(568, 30) + TP_FILE_NAME.TabIndex = 4 ' 'OPT_FILE_NAME_REPLACE ' Me.OPT_FILE_NAME_REPLACE.AutoSize = True Me.OPT_FILE_NAME_REPLACE.Dock = System.Windows.Forms.DockStyle.Fill - Me.OPT_FILE_NAME_REPLACE.Location = New System.Drawing.Point(197, 4) + Me.OPT_FILE_NAME_REPLACE.Location = New System.Drawing.Point(193, 4) Me.OPT_FILE_NAME_REPLACE.Name = "OPT_FILE_NAME_REPLACE" - Me.OPT_FILE_NAME_REPLACE.Size = New System.Drawing.Size(186, 18) + Me.OPT_FILE_NAME_REPLACE.Size = New System.Drawing.Size(182, 22) Me.OPT_FILE_NAME_REPLACE.TabIndex = 1 Me.OPT_FILE_NAME_REPLACE.TabStop = True Me.OPT_FILE_NAME_REPLACE.Text = "Replace file name by date" @@ -434,9 +375,9 @@ ' Me.OPT_FILE_NAME_ADD_DATE.AutoSize = True Me.OPT_FILE_NAME_ADD_DATE.Dock = System.Windows.Forms.DockStyle.Fill - Me.OPT_FILE_NAME_ADD_DATE.Location = New System.Drawing.Point(390, 4) + Me.OPT_FILE_NAME_ADD_DATE.Location = New System.Drawing.Point(382, 4) Me.OPT_FILE_NAME_ADD_DATE.Name = "OPT_FILE_NAME_ADD_DATE" - Me.OPT_FILE_NAME_ADD_DATE.Size = New System.Drawing.Size(188, 18) + Me.OPT_FILE_NAME_ADD_DATE.Size = New System.Drawing.Size(182, 22) Me.OPT_FILE_NAME_ADD_DATE.TabIndex = 2 Me.OPT_FILE_NAME_ADD_DATE.TabStop = True Me.OPT_FILE_NAME_ADD_DATE.Text = "Add date/time to file name" @@ -448,7 +389,7 @@ Me.CH_FILE_NAME_CHANGE.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_FILE_NAME_CHANGE.Location = New System.Drawing.Point(4, 4) Me.CH_FILE_NAME_CHANGE.Name = "CH_FILE_NAME_CHANGE" - Me.CH_FILE_NAME_CHANGE.Size = New System.Drawing.Size(186, 18) + Me.CH_FILE_NAME_CHANGE.Size = New System.Drawing.Size(182, 22) Me.CH_FILE_NAME_CHANGE.TabIndex = 0 Me.CH_FILE_NAME_CHANGE.Text = "Change file names" Me.CH_FILE_NAME_CHANGE.UseVisualStyleBackColor = True @@ -468,14 +409,14 @@ TP_FILE_PATTERNS.Controls.Add(Me.OPT_FILE_DATE_START, 3, 0) TP_FILE_PATTERNS.Controls.Add(Me.OPT_FILE_DATE_END, 4, 0) TP_FILE_PATTERNS.Dock = System.Windows.Forms.DockStyle.Fill - TP_FILE_PATTERNS.Location = New System.Drawing.Point(1, 325) + TP_FILE_PATTERNS.Location = New System.Drawing.Point(1, 142) TP_FILE_PATTERNS.Margin = New System.Windows.Forms.Padding(0) TP_FILE_PATTERNS.Name = "TP_FILE_PATTERNS" TP_FILE_PATTERNS.RowCount = 1 TP_FILE_PATTERNS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) - TP_FILE_PATTERNS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40.0!)) - TP_FILE_PATTERNS.Size = New System.Drawing.Size(582, 33) - TP_FILE_PATTERNS.TabIndex = 13 + TP_FILE_PATTERNS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29.0!)) + TP_FILE_PATTERNS.Size = New System.Drawing.Size(568, 30) + TP_FILE_PATTERNS.TabIndex = 5 ' 'CH_FILE_DATE ' @@ -483,7 +424,7 @@ Me.CH_FILE_DATE.Dock = System.Windows.Forms.DockStyle.Fill Me.CH_FILE_DATE.Location = New System.Drawing.Point(4, 4) Me.CH_FILE_DATE.Name = "CH_FILE_DATE" - Me.CH_FILE_DATE.Size = New System.Drawing.Size(109, 25) + Me.CH_FILE_DATE.Size = New System.Drawing.Size(106, 22) Me.CH_FILE_DATE.TabIndex = 0 Me.CH_FILE_DATE.Text = "Date" Me.CH_FILE_DATE.UseVisualStyleBackColor = True @@ -492,9 +433,9 @@ ' Me.CH_FILE_TIME.AutoSize = True Me.CH_FILE_TIME.Dock = System.Windows.Forms.DockStyle.Fill - Me.CH_FILE_TIME.Location = New System.Drawing.Point(120, 4) + Me.CH_FILE_TIME.Location = New System.Drawing.Point(117, 4) Me.CH_FILE_TIME.Name = "CH_FILE_TIME" - Me.CH_FILE_TIME.Size = New System.Drawing.Size(109, 25) + Me.CH_FILE_TIME.Size = New System.Drawing.Size(106, 22) Me.CH_FILE_TIME.TabIndex = 1 Me.CH_FILE_TIME.Text = "Time" Me.CH_FILE_TIME.UseVisualStyleBackColor = True @@ -503,9 +444,9 @@ ' LBL_DATE_POS.AutoSize = True LBL_DATE_POS.Dock = System.Windows.Forms.DockStyle.Fill - LBL_DATE_POS.Location = New System.Drawing.Point(236, 1) + LBL_DATE_POS.Location = New System.Drawing.Point(230, 1) LBL_DATE_POS.Name = "LBL_DATE_POS" - LBL_DATE_POS.Size = New System.Drawing.Size(109, 31) + LBL_DATE_POS.Size = New System.Drawing.Size(106, 28) LBL_DATE_POS.TabIndex = 2 LBL_DATE_POS.Text = "Date position:" LBL_DATE_POS.TextAlign = System.Drawing.ContentAlignment.MiddleRight @@ -514,9 +455,9 @@ ' Me.OPT_FILE_DATE_START.AutoSize = True Me.OPT_FILE_DATE_START.Dock = System.Windows.Forms.DockStyle.Fill - Me.OPT_FILE_DATE_START.Location = New System.Drawing.Point(352, 4) + Me.OPT_FILE_DATE_START.Location = New System.Drawing.Point(343, 4) Me.OPT_FILE_DATE_START.Name = "OPT_FILE_DATE_START" - Me.OPT_FILE_DATE_START.Size = New System.Drawing.Size(109, 25) + Me.OPT_FILE_DATE_START.Size = New System.Drawing.Size(106, 22) Me.OPT_FILE_DATE_START.TabIndex = 3 Me.OPT_FILE_DATE_START.TabStop = True Me.OPT_FILE_DATE_START.Text = "Start" @@ -526,21 +467,333 @@ ' Me.OPT_FILE_DATE_END.AutoSize = True Me.OPT_FILE_DATE_END.Dock = System.Windows.Forms.DockStyle.Fill - Me.OPT_FILE_DATE_END.Location = New System.Drawing.Point(468, 4) + Me.OPT_FILE_DATE_END.Location = New System.Drawing.Point(456, 4) Me.OPT_FILE_DATE_END.Name = "OPT_FILE_DATE_END" - Me.OPT_FILE_DATE_END.Size = New System.Drawing.Size(110, 25) + Me.OPT_FILE_DATE_END.Size = New System.Drawing.Size(108, 22) Me.OPT_FILE_DATE_END.TabIndex = 4 Me.OPT_FILE_DATE_END.TabStop = True Me.OPT_FILE_DATE_END.Text = "End" Me.OPT_FILE_DATE_END.UseVisualStyleBackColor = True ' + 'TP_CHANNELS_IMGS + ' + TP_CHANNELS_IMGS.ColumnCount = 2 + TP_CHANNELS_IMGS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + TP_CHANNELS_IMGS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + TP_CHANNELS_IMGS.Controls.Add(Me.TXT_CHANNELS_ROWS, 0, 0) + TP_CHANNELS_IMGS.Controls.Add(Me.TXT_CHANNELS_COLUMNS, 1, 0) + TP_CHANNELS_IMGS.Dock = System.Windows.Forms.DockStyle.Fill + TP_CHANNELS_IMGS.Location = New System.Drawing.Point(1, 1) + TP_CHANNELS_IMGS.Margin = New System.Windows.Forms.Padding(0) + TP_CHANNELS_IMGS.Name = "TP_CHANNELS_IMGS" + TP_CHANNELS_IMGS.RowCount = 1 + TP_CHANNELS_IMGS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_CHANNELS_IMGS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_CHANNELS_IMGS.Size = New System.Drawing.Size(568, 28) + TP_CHANNELS_IMGS.TabIndex = 0 + ' + 'TXT_CHANNELS_ROWS + ' + Me.TXT_CHANNELS_ROWS.CaptionText = "Channels rows" + Me.TXT_CHANNELS_ROWS.CaptionToolTipEnabled = True + Me.TXT_CHANNELS_ROWS.CaptionToolTipText = "How many lines of images should be shown in the channels form" + Me.TXT_CHANNELS_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown + Me.TXT_CHANNELS_ROWS.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_CHANNELS_ROWS.Location = New System.Drawing.Point(3, 3) + Me.TXT_CHANNELS_ROWS.Name = "TXT_CHANNELS_ROWS" + Me.TXT_CHANNELS_ROWS.Size = New System.Drawing.Size(278, 22) + Me.TXT_CHANNELS_ROWS.TabIndex = 0 + Me.TXT_CHANNELS_ROWS.Text = "0" + Me.TXT_CHANNELS_ROWS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center + ' + 'TXT_CHANNELS_COLUMNS + ' + Me.TXT_CHANNELS_COLUMNS.CaptionText = "Channels columns" + Me.TXT_CHANNELS_COLUMNS.CaptionToolTipEnabled = True + Me.TXT_CHANNELS_COLUMNS.CaptionToolTipText = "How many columns of images should be shown in the channels form" + Me.TXT_CHANNELS_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown + Me.TXT_CHANNELS_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_CHANNELS_COLUMNS.Location = New System.Drawing.Point(287, 3) + Me.TXT_CHANNELS_COLUMNS.Name = "TXT_CHANNELS_COLUMNS" + Me.TXT_CHANNELS_COLUMNS.Size = New System.Drawing.Size(278, 22) + Me.TXT_CHANNELS_COLUMNS.TabIndex = 1 + Me.TXT_CHANNELS_COLUMNS.Text = "0" + Me.TXT_CHANNELS_COLUMNS.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center + ' + 'TAB_MAIN + ' + TAB_MAIN.Controls.Add(TAB_BASIS) + TAB_MAIN.Controls.Add(TAB_DEFAULTS) + TAB_MAIN.Controls.Add(TAB_DEFS_CHANNELS) + TAB_MAIN.Controls.Add(TAB_DEFS_REDDIT) + TAB_MAIN.Controls.Add(TAB_DEFS_TWITTER) + TAB_MAIN.Dock = System.Windows.Forms.DockStyle.Fill + TAB_MAIN.Location = New System.Drawing.Point(0, 0) + TAB_MAIN.Name = "TAB_MAIN" + TAB_MAIN.SelectedIndex = 0 + TAB_MAIN.Size = New System.Drawing.Size(584, 384) + TAB_MAIN.TabIndex = 1 + ' + 'TAB_BASIS + ' + TAB_BASIS.Controls.Add(TP_BASIS) + 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, 358) + TAB_BASIS.TabIndex = 0 + TAB_BASIS.Text = "Basis" + ' + 'TAB_DEFAULTS + ' + TAB_DEFAULTS.Controls.Add(TP_DEFS) + 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, 358) + TAB_DEFAULTS.TabIndex = 1 + TAB_DEFAULTS.Text = "Defaults" + ' + 'TP_DEFS + ' + TP_DEFS.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_DEFS.ColumnCount = 1 + TP_DEFS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_DEFS.Controls.Add(Me.CH_SEPARATE_VIDEO_FOLDER, 0, 0) + TP_DEFS.Controls.Add(Me.CH_DOWN_VIDEOS, 0, 3) + TP_DEFS.Controls.Add(Me.CH_DOWN_IMAGES, 0, 2) + TP_DEFS.Controls.Add(Me.CH_DEF_TEMP, 0, 1) + TP_DEFS.Dock = System.Windows.Forms.DockStyle.Fill + TP_DEFS.Location = New System.Drawing.Point(3, 3) + TP_DEFS.Name = "TP_DEFS" + TP_DEFS.RowCount = 5 + 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.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, 352) + TP_DEFS.TabIndex = 0 + ' + 'TAB_DEFS_CHANNELS + ' + TAB_DEFS_CHANNELS.Controls.Add(TP_CHANNELS) + 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, 358) + TAB_DEFS_CHANNELS.TabIndex = 4 + TAB_DEFS_CHANNELS.Text = "Channels" + ' + 'TP_CHANNELS + ' + TP_CHANNELS.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_CHANNELS.ColumnCount = 1 + TP_CHANNELS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_CHANNELS.Controls.Add(Me.TXT_CHANNEL_USER_POST_LIMIT, 0, 1) + TP_CHANNELS.Controls.Add(TP_CHANNELS_IMGS, 0, 0) + TP_CHANNELS.Controls.Add(Me.CH_COPY_CHANNEL_USER_IMAGE, 0, 2) + TP_CHANNELS.Controls.Add(TP_FILE_NAME, 0, 4) + TP_CHANNELS.Controls.Add(TP_FILE_PATTERNS, 0, 5) + TP_CHANNELS.Controls.Add(Me.CH_CHANNELS_USERS_TEMP, 0, 3) + TP_CHANNELS.Dock = System.Windows.Forms.DockStyle.Fill + TP_CHANNELS.Location = New System.Drawing.Point(3, 3) + TP_CHANNELS.Name = "TP_CHANNELS" + TP_CHANNELS.RowCount = 7 + TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) + TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.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.Absolute, 25.0!)) + TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) + TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.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, 352) + TP_CHANNELS.TabIndex = 0 + ' + 'TXT_CHANNEL_USER_POST_LIMIT + ' + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionSizeType = System.Windows.Forms.SizeType.Percent + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionText = "Download limit for channel user" + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionToolTipEnabled = True + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionToolTipText = "Set a limit on the number of downloads of posts limit if the user is added from t" & + "he channel" + Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionWidth = 50.0R + Me.TXT_CHANNEL_USER_POST_LIMIT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown + Me.TXT_CHANNEL_USER_POST_LIMIT.Dock = System.Windows.Forms.DockStyle.Fill + Me.TXT_CHANNEL_USER_POST_LIMIT.Location = New System.Drawing.Point(4, 33) + Me.TXT_CHANNEL_USER_POST_LIMIT.Name = "TXT_CHANNEL_USER_POST_LIMIT" + Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMaximum = New Decimal(New Integer() {1000, 0, 0, 0}) + Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0}) + Me.TXT_CHANNEL_USER_POST_LIMIT.Size = New System.Drawing.Size(562, 22) + Me.TXT_CHANNEL_USER_POST_LIMIT.TabIndex = 1 + Me.TXT_CHANNEL_USER_POST_LIMIT.Text = "1" + Me.TXT_CHANNEL_USER_POST_LIMIT.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center + ' + 'CH_CHANNELS_USERS_TEMP + ' + Me.CH_CHANNELS_USERS_TEMP.AutoSize = True + Me.CH_CHANNELS_USERS_TEMP.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_CHANNELS_USERS_TEMP.Location = New System.Drawing.Point(4, 88) + Me.CH_CHANNELS_USERS_TEMP.Name = "CH_CHANNELS_USERS_TEMP" + Me.CH_CHANNELS_USERS_TEMP.Size = New System.Drawing.Size(562, 19) + Me.CH_CHANNELS_USERS_TEMP.TabIndex = 3 + Me.CH_CHANNELS_USERS_TEMP.Text = "Create temporary users" + TT_MAIN.SetToolTip(Me.CH_CHANNELS_USERS_TEMP, "Users added from channels will be created with this parameter") + Me.CH_CHANNELS_USERS_TEMP.UseVisualStyleBackColor = True + ' + 'TAB_DEFS_REDDIT + ' + TAB_DEFS_REDDIT.Controls.Add(TP_REDDIT) + TAB_DEFS_REDDIT.Location = New System.Drawing.Point(4, 22) + TAB_DEFS_REDDIT.Name = "TAB_DEFS_REDDIT" + TAB_DEFS_REDDIT.Padding = New System.Windows.Forms.Padding(3) + TAB_DEFS_REDDIT.Size = New System.Drawing.Size(576, 358) + TAB_DEFS_REDDIT.TabIndex = 2 + TAB_DEFS_REDDIT.Text = "Reddit" + ' + 'TP_REDDIT + ' + TP_REDDIT.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_REDDIT.ColumnCount = 1 + TP_REDDIT.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_REDDIT.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_REDDIT.Controls.Add(Me.CH_REDDIT_TEMP, 0, 0) + TP_REDDIT.Controls.Add(Me.CH_REDDIT_DOWN_IMG, 0, 1) + TP_REDDIT.Controls.Add(Me.CH_REDDIT_DOWN_VID, 0, 2) + TP_REDDIT.Dock = System.Windows.Forms.DockStyle.Fill + TP_REDDIT.Location = New System.Drawing.Point(3, 3) + TP_REDDIT.Name = "TP_REDDIT" + TP_REDDIT.RowCount = 4 + TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_REDDIT.Size = New System.Drawing.Size(570, 352) + TP_REDDIT.TabIndex = 0 + ' + 'CH_REDDIT_TEMP + ' + Me.CH_REDDIT_TEMP.AutoSize = True + Me.CH_REDDIT_TEMP.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_REDDIT_TEMP.Location = New System.Drawing.Point(4, 4) + Me.CH_REDDIT_TEMP.Name = "CH_REDDIT_TEMP" + Me.CH_REDDIT_TEMP.Size = New System.Drawing.Size(562, 19) + Me.CH_REDDIT_TEMP.TabIndex = 0 + Me.CH_REDDIT_TEMP.Text = "Temporary" + Me.CH_REDDIT_TEMP.ThreeState = True + Me.CH_REDDIT_TEMP.UseVisualStyleBackColor = True + ' + 'CH_REDDIT_DOWN_IMG + ' + Me.CH_REDDIT_DOWN_IMG.AutoSize = True + Me.CH_REDDIT_DOWN_IMG.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_REDDIT_DOWN_IMG.Location = New System.Drawing.Point(4, 30) + Me.CH_REDDIT_DOWN_IMG.Name = "CH_REDDIT_DOWN_IMG" + Me.CH_REDDIT_DOWN_IMG.Size = New System.Drawing.Size(562, 19) + Me.CH_REDDIT_DOWN_IMG.TabIndex = 1 + Me.CH_REDDIT_DOWN_IMG.Text = "Download images" + Me.CH_REDDIT_DOWN_IMG.ThreeState = True + Me.CH_REDDIT_DOWN_IMG.UseVisualStyleBackColor = True + ' + 'CH_REDDIT_DOWN_VID + ' + Me.CH_REDDIT_DOWN_VID.AutoSize = True + Me.CH_REDDIT_DOWN_VID.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_REDDIT_DOWN_VID.Location = New System.Drawing.Point(4, 56) + Me.CH_REDDIT_DOWN_VID.Name = "CH_REDDIT_DOWN_VID" + Me.CH_REDDIT_DOWN_VID.Size = New System.Drawing.Size(562, 19) + Me.CH_REDDIT_DOWN_VID.TabIndex = 2 + Me.CH_REDDIT_DOWN_VID.Text = "Download videos" + Me.CH_REDDIT_DOWN_VID.ThreeState = True + Me.CH_REDDIT_DOWN_VID.UseVisualStyleBackColor = True + ' + 'TAB_DEFS_TWITTER + ' + TAB_DEFS_TWITTER.Controls.Add(TP_TWITTER) + TAB_DEFS_TWITTER.Location = New System.Drawing.Point(4, 22) + TAB_DEFS_TWITTER.Name = "TAB_DEFS_TWITTER" + TAB_DEFS_TWITTER.Padding = New System.Windows.Forms.Padding(3) + TAB_DEFS_TWITTER.Size = New System.Drawing.Size(576, 358) + TAB_DEFS_TWITTER.TabIndex = 3 + TAB_DEFS_TWITTER.Text = "Twitter" + ' + 'TP_TWITTER + ' + TP_TWITTER.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single] + TP_TWITTER.ColumnCount = 1 + TP_TWITTER.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_TWITTER.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + TP_TWITTER.Controls.Add(Me.CH_TWITTER_TEMP, 0, 0) + TP_TWITTER.Controls.Add(Me.CH_TWITTER_DOWN_IMG, 0, 1) + TP_TWITTER.Controls.Add(Me.CH_TWITTER_DOWN_VID, 0, 2) + TP_TWITTER.Controls.Add(Me.CH_TWITTER_USER_MEDIA, 0, 3) + TP_TWITTER.Dock = System.Windows.Forms.DockStyle.Fill + TP_TWITTER.Location = New System.Drawing.Point(3, 3) + TP_TWITTER.Name = "TP_TWITTER" + TP_TWITTER.RowCount = 5 + TP_TWITTER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_TWITTER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_TWITTER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_TWITTER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) + TP_TWITTER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + TP_TWITTER.Size = New System.Drawing.Size(570, 352) + TP_TWITTER.TabIndex = 0 + ' + 'CH_TWITTER_TEMP + ' + Me.CH_TWITTER_TEMP.AutoSize = True + Me.CH_TWITTER_TEMP.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_TWITTER_TEMP.Location = New System.Drawing.Point(4, 4) + Me.CH_TWITTER_TEMP.Name = "CH_TWITTER_TEMP" + Me.CH_TWITTER_TEMP.Size = New System.Drawing.Size(562, 19) + Me.CH_TWITTER_TEMP.TabIndex = 0 + Me.CH_TWITTER_TEMP.Text = "Temporary" + Me.CH_TWITTER_TEMP.ThreeState = True + Me.CH_TWITTER_TEMP.UseVisualStyleBackColor = True + ' + 'CH_TWITTER_DOWN_IMG + ' + Me.CH_TWITTER_DOWN_IMG.AutoSize = True + Me.CH_TWITTER_DOWN_IMG.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_TWITTER_DOWN_IMG.Location = New System.Drawing.Point(4, 30) + Me.CH_TWITTER_DOWN_IMG.Name = "CH_TWITTER_DOWN_IMG" + Me.CH_TWITTER_DOWN_IMG.Size = New System.Drawing.Size(562, 19) + Me.CH_TWITTER_DOWN_IMG.TabIndex = 1 + Me.CH_TWITTER_DOWN_IMG.Text = "Download images" + Me.CH_TWITTER_DOWN_IMG.ThreeState = True + Me.CH_TWITTER_DOWN_IMG.UseVisualStyleBackColor = True + ' + 'CH_TWITTER_DOWN_VID + ' + Me.CH_TWITTER_DOWN_VID.AutoSize = True + Me.CH_TWITTER_DOWN_VID.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_TWITTER_DOWN_VID.Location = New System.Drawing.Point(4, 56) + Me.CH_TWITTER_DOWN_VID.Name = "CH_TWITTER_DOWN_VID" + Me.CH_TWITTER_DOWN_VID.Size = New System.Drawing.Size(562, 19) + Me.CH_TWITTER_DOWN_VID.TabIndex = 2 + Me.CH_TWITTER_DOWN_VID.Text = "Download videos" + Me.CH_TWITTER_DOWN_VID.ThreeState = True + Me.CH_TWITTER_DOWN_VID.UseVisualStyleBackColor = True + ' + 'CH_TWITTER_USER_MEDIA + ' + Me.CH_TWITTER_USER_MEDIA.AutoSize = True + Me.CH_TWITTER_USER_MEDIA.Dock = System.Windows.Forms.DockStyle.Fill + Me.CH_TWITTER_USER_MEDIA.Location = New System.Drawing.Point(4, 82) + Me.CH_TWITTER_USER_MEDIA.Name = "CH_TWITTER_USER_MEDIA" + Me.CH_TWITTER_USER_MEDIA.Size = New System.Drawing.Size(562, 19) + Me.CH_TWITTER_USER_MEDIA.TabIndex = 3 + Me.CH_TWITTER_USER_MEDIA.Text = "Get user media only" + Me.CH_TWITTER_USER_MEDIA.UseVisualStyleBackColor = True + ' 'CONTAINER_MAIN ' ' 'CONTAINER_MAIN.ContentPanel ' - Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN) - Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 359) + Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TAB_MAIN) + Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 384) Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0) @@ -567,25 +820,37 @@ Me.ShowInTaskbar = False Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide Me.Text = "Settings" - TP_MAIN.ResumeLayout(False) - TP_MAIN.PerformLayout() + TP_BASIS.ResumeLayout(False) + TP_BASIS.PerformLayout() CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).EndInit() TP_IMAGES.ResumeLayout(False) CType(Me.TXT_IMAGE_LARGE, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_IMAGE_SMALL, 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() - CType(Me.TXT_CHANNEL_USER_POST_LIMIT, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_MAX_JOBS_USERS, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).EndInit() - TP_DEFAULTS.ResumeLayout(False) - TP_DEFAULTS.PerformLayout() TP_FILE_NAME.ResumeLayout(False) TP_FILE_NAME.PerformLayout() TP_FILE_PATTERNS.ResumeLayout(False) TP_FILE_PATTERNS.PerformLayout() + TP_CHANNELS_IMGS.ResumeLayout(False) + CType(Me.TXT_CHANNELS_ROWS, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TXT_CHANNELS_COLUMNS, System.ComponentModel.ISupportInitialize).EndInit() + TAB_MAIN.ResumeLayout(False) + TAB_BASIS.ResumeLayout(False) + TAB_DEFAULTS.ResumeLayout(False) + TP_DEFS.ResumeLayout(False) + TP_DEFS.PerformLayout() + TAB_DEFS_CHANNELS.ResumeLayout(False) + TP_CHANNELS.ResumeLayout(False) + TP_CHANNELS.PerformLayout() + CType(Me.TXT_CHANNEL_USER_POST_LIMIT, System.ComponentModel.ISupportInitialize).EndInit() + TAB_DEFS_REDDIT.ResumeLayout(False) + TP_REDDIT.ResumeLayout(False) + TP_REDDIT.PerformLayout() + TAB_DEFS_TWITTER.ResumeLayout(False) + TP_TWITTER.ResumeLayout(False) + TP_TWITTER.PerformLayout() Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False) Me.CONTAINER_MAIN.ResumeLayout(False) Me.CONTAINER_MAIN.PerformLayout() @@ -595,26 +860,34 @@ Private WithEvents CONTAINER_MAIN As ToolStripContainer Private WithEvents TXT_GLOBAL_PATH As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents CH_SEPARATE_VIDEO_FOLDER As CheckBox Private WithEvents TXT_COLLECTIONS_PATH As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents TXT_IMAGE_LARGE As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents TXT_IMAGE_SMALL As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents TXT_CHANNELS_ROWS As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents TXT_CHANNELS_COLUMNS As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents TXT_CHANNEL_USER_POST_LIMIT As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents CH_COPY_CHANNEL_USER_IMAGE As CheckBox Private WithEvents CH_CHECK_VER_START As CheckBox Private WithEvents TXT_MAX_JOBS_USERS As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents TXT_MAX_JOBS_CHANNELS As PersonalUtilities.Forms.Controls.TextBoxExtended - Private WithEvents CH_DEF_TEMP As CheckBox - Private WithEvents CH_DOWN_IMAGES As CheckBox - Private WithEvents CH_DOWN_VIDEOS As CheckBox + Private WithEvents TXT_CHANNEL_USER_POST_LIMIT As PersonalUtilities.Forms.Controls.TextBoxExtended + Private WithEvents TXT_CHANNELS_ROWS As PersonalUtilities.Forms.Controls.TextBoxExtended + Private WithEvents TXT_CHANNELS_COLUMNS As PersonalUtilities.Forms.Controls.TextBoxExtended Private WithEvents OPT_FILE_NAME_REPLACE As RadioButton Private WithEvents OPT_FILE_NAME_ADD_DATE As RadioButton + Private WithEvents CH_FILE_NAME_CHANGE As CheckBox Private WithEvents CH_FILE_DATE As CheckBox Private WithEvents CH_FILE_TIME As CheckBox Private WithEvents OPT_FILE_DATE_START As RadioButton Private WithEvents OPT_FILE_DATE_END As RadioButton - Private WithEvents CH_FILE_NAME_CHANGE As CheckBox + Private WithEvents CH_COPY_CHANNEL_USER_IMAGE As CheckBox + Private WithEvents CH_SEPARATE_VIDEO_FOLDER As CheckBox + Private WithEvents CH_DOWN_VIDEOS As CheckBox + Private WithEvents CH_DOWN_IMAGES As CheckBox + Private WithEvents CH_DEF_TEMP As CheckBox + Private WithEvents CH_TWITTER_TEMP As CheckBox + Private WithEvents CH_TWITTER_DOWN_IMG As CheckBox + Private WithEvents CH_TWITTER_DOWN_VID As CheckBox + Private WithEvents CH_TWITTER_USER_MEDIA As CheckBox + Private WithEvents CH_REDDIT_TEMP As CheckBox + Private WithEvents CH_REDDIT_DOWN_IMG As CheckBox + Private WithEvents CH_REDDIT_DOWN_VID As CheckBox + Private WithEvents CH_CHANNELS_USERS_TEMP As CheckBox End Class End Namespace \ No newline at end of file diff --git a/SCrawler/Editors/GlobalSettingsForm.resx b/SCrawler/Editors/GlobalSettingsForm.resx index b3a1ead..b3dc4bd 100644 --- a/SCrawler/Editors/GlobalSettingsForm.resx +++ b/SCrawler/Editors/GlobalSettingsForm.resx @@ -117,7 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + False @@ -140,17 +140,9 @@ AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - + False - - 17, 17 - - - This is global setting for new added only users. -This parameter indicates how video will be stored in users' download path. -If checked then videos will be stored in separated folder; otherwise, videos will be stored with pictures together. - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -159,12 +151,6 @@ If checked then videos will be stored in separated folder; otherwise, videos wil AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC - - False - - - False - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6 @@ -197,9 +183,17 @@ If checked then videos will be stored in separated folder; otherwise, videos wil VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg== - + False + + 17, 17 + + + This is a global setting for newly added users only. +This parameter specifies how the video will be stored in the users' download path. +If checked, videos will be stored in separate folder; otherwise, videos will be stored along with images. + False @@ -209,4 +203,37 @@ If checked then videos will be stored in separated folder; otherwise, videos wil False + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + \ No newline at end of file diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb index c531094..c1283f5 100644 --- a/SCrawler/Editors/GlobalSettingsForm.vb +++ b/SCrawler/Editors/GlobalSettingsForm.vb @@ -23,23 +23,27 @@ Namespace Editors .AddOkCancelToolbar() .DelegateClosingChecker() With Settings + 'Basis TXT_GLOBAL_PATH.Text = .GlobalPath.Value TXT_IMAGE_LARGE.Value = .MaxLargeImageHeigh.Value TXT_IMAGE_SMALL.Value = .MaxSmallImageHeigh.Value TXT_COLLECTIONS_PATH.Text = .CollectionsPath + TXT_MAX_JOBS_USERS.Value = .MaxUsersJobsCount.Value + TXT_MAX_JOBS_CHANNELS.Value = .ChannelsMaxJobsCount.Value + CH_CHECK_VER_START.Checked = .CheckUpdatesAtStart + 'Defaults CH_SEPARATE_VIDEO_FOLDER.Checked = .SeparateVideoFolder.Value CH_DEF_TEMP.Checked = .DefaultTemporary CH_DOWN_IMAGES.Checked = .DefaultDownloadImages CH_DOWN_VIDEOS.Checked = .DefaultDownloadVideos - TXT_CHANNELS_COLUMNS.Value = .ChannelsImagesColumns.Value + 'Channels TXT_CHANNELS_ROWS.Value = .ChannelsImagesRows.Value + TXT_CHANNELS_COLUMNS.Value = .ChannelsImagesColumns.Value TXT_CHANNEL_USER_POST_LIMIT.Value = .FromChannelDownloadTop.Value TXT_CHANNEL_USER_POST_LIMIT.Checked = .FromChannelDownloadTopUse.Value CH_COPY_CHANNEL_USER_IMAGE.Checked = .FromChannelCopyImageToUser - CH_CHECK_VER_START.Checked = .CheckUpdatesAtStart - TXT_MAX_JOBS_USERS.Value = .MaxUsersJobsCount.Value - TXT_MAX_JOBS_CHANNELS.Value = .ChannelsMaxJobsCount.Value - + CH_CHANNELS_USERS_TEMP.Checked = .ChannelsDefaultTemporary + 'Channels filenames CH_FILE_NAME_CHANGE.Checked = .FileReplaceNameByDate Or .FileAddDateToFileName Or .FileAddTimeToFileName OPT_FILE_NAME_REPLACE.Checked = .FileReplaceNameByDate OPT_FILE_NAME_ADD_DATE.Checked = Not .FileReplaceNameByDate @@ -47,6 +51,15 @@ Namespace Editors CH_FILE_TIME.Checked = .FileAddTimeToFileName OPT_FILE_DATE_START.Checked = Not .FileDateTimePositionEnd OPT_FILE_DATE_END.Checked = .FileDateTimePositionEnd + 'Reddit + SetChecker(CH_REDDIT_TEMP, .RedditTemporary) + SetChecker(CH_REDDIT_DOWN_IMG, .RedditDownloadImages) + SetChecker(CH_REDDIT_DOWN_VID, .RedditDownloadVideos) + 'Twitter + SetChecker(CH_TWITTER_TEMP, .TwitterTemporary) + SetChecker(CH_TWITTER_DOWN_IMG, .TwitterDownloadImages) + SetChecker(CH_TWITTER_DOWN_VID, .TwitterDownloadVideos) + CH_TWITTER_USER_MEDIA.Checked = .TwitterDefaultGetUserMedia End With .MyFieldsChecker = New FieldsChecker With .MyFieldsChecker @@ -62,6 +75,20 @@ Namespace Editors MyDefs.InvokeLoaderError(ex) End Try End Sub + Private Sub SetChecker(ByRef CH As CheckBox, ByVal Prop As XML.Base.XMLValue(Of Boolean)) + If Prop.ValueF.Exists Then + CH.Checked = Prop.Value + Else + CH.CheckState = CheckState.Indeterminate + End If + End Sub + Private Sub SetPropByChecker(ByRef Prop As XML.Base.XMLValue(Of Boolean), ByRef CH As CheckBox) + Select Case CH.CheckState + Case CheckState.Checked : Prop.Value = True + Case CheckState.Unchecked : Prop.Value = False + Case CheckState.Indeterminate : Prop.ValueF = Nothing + End Select + End Sub Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK If MyDefs.MyFieldsChecker.AllParamsOK Then With Settings @@ -93,21 +120,26 @@ Namespace Editors End If .BeginUpdate() + 'Basis .GlobalPath.Value = TXT_GLOBAL_PATH.Text .MaxLargeImageHeigh.Value = CInt(TXT_IMAGE_LARGE.Value) .MaxSmallImageHeigh.Value = CInt(TXT_IMAGE_SMALL.Value) - .SeparateVideoFolder.Value = CH_SEPARATE_VIDEO_FOLDER.Checked .CollectionsPath.Value = TXT_COLLECTIONS_PATH.Text + .MaxUsersJobsCount.Value = CInt(TXT_MAX_JOBS_USERS.Value) + .ChannelsMaxJobsCount.Value = TXT_MAX_JOBS_CHANNELS.Value + .CheckUpdatesAtStart.Value = CH_CHECK_VER_START.Checked + 'Defaults + .SeparateVideoFolder.Value = CH_SEPARATE_VIDEO_FOLDER.Checked .DefaultTemporary.Value = CH_DEF_TEMP.Checked .DefaultDownloadImages.Value = CH_DOWN_IMAGES.Checked .DefaultDownloadVideos.Value = CH_DOWN_VIDEOS.Checked + 'Channels .ChannelsImagesRows.Value = CInt(TXT_CHANNELS_ROWS.Value) .ChannelsImagesColumns.Value = CInt(TXT_CHANNELS_COLUMNS.Value) - .FromChannelDownloadTopUse.Value = TXT_CHANNEL_USER_POST_LIMIT.Checked .FromChannelDownloadTop.Value = CInt(TXT_CHANNEL_USER_POST_LIMIT.Value) + .FromChannelDownloadTopUse.Value = TXT_CHANNEL_USER_POST_LIMIT.Checked .FromChannelCopyImageToUser.Value = CH_COPY_CHANNEL_USER_IMAGE.Checked - .CheckUpdatesAtStart.Value = CH_CHECK_VER_START.Checked - .MaxUsersJobsCount.Value = CInt(TXT_MAX_JOBS_USERS.Value) + .ChannelsDefaultTemporary.Value = CH_CHANNELS_USERS_TEMP.Checked If CH_FILE_NAME_CHANGE.Checked Then .FileReplaceNameByDate.Value = OPT_FILE_NAME_REPLACE.Checked @@ -119,6 +151,15 @@ Namespace Editors .FileAddTimeToFileName.Value = False .FileReplaceNameByDate.Value = False End If + 'Reddit + SetPropByChecker(.RedditTemporary, CH_REDDIT_TEMP) + SetPropByChecker(.RedditDownloadImages, CH_REDDIT_DOWN_IMG) + SetPropByChecker(.RedditDownloadVideos, CH_REDDIT_DOWN_VID) + 'Twitter + SetPropByChecker(.TwitterTemporary, CH_TWITTER_TEMP) + SetPropByChecker(.TwitterDownloadImages, CH_TWITTER_DOWN_IMG) + SetPropByChecker(.TwitterDownloadVideos, CH_TWITTER_DOWN_VID) + .TwitterDefaultGetUserMedia.Value = CH_TWITTER_USER_MEDIA.Checked .EndUpdate() End With @@ -140,13 +181,13 @@ Namespace Editors Private Sub TXT_MAX_JOBS_CHANNELS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_MAX_JOBS_CHANNELS.ActionOnButtonClick If Sender.DefaultButton = ActionButton.DefaultButtons.Refresh Then TXT_MAX_JOBS_CHANNELS.Value = SettingsCLS.DefaultMaxDownloadingTasks End Sub - Private Sub CH_FILE_NAME_CHANGE_CheckedChanged(sender As Object, e As EventArgs) Handles CH_FILE_NAME_CHANGE.CheckedChanged + Private Sub CH_FILE_NAME_CHANGE_CheckedChanged(sender As Object, e As EventArgs) ChangeFileNameChangersEnabling() End Sub - Private Sub OPT_FILE_NAME_REPLACE_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_FILE_NAME_REPLACE.CheckedChanged + Private Sub OPT_FILE_NAME_REPLACE_CheckedChanged(sender As Object, e As EventArgs) ChangePositionControlsEnabling() End Sub - Private Sub OPT_FILE_NAME_ADD_DATE_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_FILE_NAME_ADD_DATE.CheckedChanged + Private Sub OPT_FILE_NAME_ADD_DATE_CheckedChanged(sender As Object, e As EventArgs) ChangePositionControlsEnabling() End Sub Private Sub ChangePositionControlsEnabling() diff --git a/SCrawler/Editors/UserCreatorForm.vb b/SCrawler/Editors/UserCreatorForm.vb index cb11af9..fd218be 100644 --- a/SCrawler/Editors/UserCreatorForm.vb +++ b/SCrawler/Editors/UserCreatorForm.vb @@ -122,8 +122,10 @@ Namespace Editors UserLabels.ListAddList(.Labels) If UserLabels.ListExists Then TXT_LABELS.Text = UserLabels.ListToString End With + CH_ADD_BY_LIST.Enabled = False Else - CH_READY_FOR_DOWN.Checked = Settings.DefaultTemporary + CH_TEMP.Checked = Settings.DefaultTemporary + CH_READY_FOR_DOWN.Checked = Not Settings.DefaultTemporary CH_DOWN_IMAGES.Checked = Settings.DefaultDownloadImages CH_DOWN_VIDEOS.Checked = Settings.DefaultDownloadVideos End If @@ -131,6 +133,7 @@ Namespace Editors .MyFieldsChecker = New FieldsChecker .MyFieldsChecker.AddControl(Of String)(TXT_USER, TXT_USER.CaptionText) .MyFieldsChecker.EndLoaderOperations() + SetParamsBySite() .AppendDetectors() .EndLoaderOperations() End With @@ -146,7 +149,6 @@ Namespace Editors e.Cancel = True Else MyDef.Dispose() - If Not DialogResult = DialogResult.OK And Not DialogResult = DialogResult.Cancel And StartIndex >= 0 Then DialogResult = DialogResult.OK End If End Sub Private Sub UserCreatorForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed @@ -242,26 +244,50 @@ CloseForm: If Not s.IsEmptyString Then TXT = s : Return True Else Return False End Function Private Sub OPT_REDDIT_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_REDDIT.CheckedChanged - If OPT_REDDIT.Checked Then CH_IS_CHANNEL.Enabled = True + If OPT_REDDIT.Checked Then CH_IS_CHANNEL.Enabled = True : SetParamsBySite() End Sub Private Sub OPT_TWITTER_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_TWITTER.CheckedChanged - CH_PARSE_USER_MEDIA.Enabled = OPT_TWITTER.Checked - If OPT_TWITTER.Checked Then CH_IS_CHANNEL.Checked = False : CH_IS_CHANNEL.Enabled = False + If OPT_TWITTER.Checked Then CH_IS_CHANNEL.Checked = False : CH_IS_CHANNEL.Enabled = False : SetParamsBySite() End Sub Private Sub CH_TEMP_CheckedChanged(sender As Object, e As EventArgs) Handles CH_TEMP.CheckedChanged - If CH_TEMP.Checked Then CH_FAV.Checked = False + If CH_TEMP.Checked Then CH_FAV.Checked = False : CH_READY_FOR_DOWN.Checked = False End Sub Private Sub CH_FAV_CheckedChanged(sender As Object, e As EventArgs) Handles CH_FAV.CheckedChanged If CH_FAV.Checked Then CH_TEMP.Checked = False End Sub + Private Sub SetParamsBySite() + Dim s As Sites = Sites.Undefined + Select Case True + Case OPT_REDDIT.Checked : s = Sites.Reddit + Case OPT_TWITTER.Checked : s = Sites.Twitter + End Select + With Settings + Select Case s + Case Sites.Reddit + CH_TEMP.Checked = .RedditTemporary + CH_DOWN_IMAGES.Checked = .RedditDownloadImages + CH_DOWN_VIDEOS.Checked = .RedditDownloadVideos + CH_PARSE_USER_MEDIA.Checked = False + CH_PARSE_USER_MEDIA.Enabled = False + Case Sites.Twitter + CH_TEMP.Checked = .TwitterTemporary + CH_DOWN_IMAGES.Checked = .TwitterDownloadImages + CH_DOWN_VIDEOS.Checked = .TwitterDownloadVideos + CH_PARSE_USER_MEDIA.Enabled = True + CH_PARSE_USER_MEDIA.Checked = .TwitterDefaultGetUserMedia + End Select + End With + End Sub Private Sub CH_ADD_BY_LIST_CheckedChanged(sender As Object, e As EventArgs) Handles CH_ADD_BY_LIST.CheckedChanged If CH_ADD_BY_LIST.Checked Then TXT_DESCR.GroupBoxText = "Users list" CH_AUTO_DETECT_SITE.Enabled = True + CH_PARSE_USER_MEDIA.Enabled = True Else TXT_DESCR.GroupBoxText = "Description" CH_AUTO_DETECT_SITE.Checked = False CH_AUTO_DETECT_SITE.Enabled = False + SetParamsBySite() End If TXT_USER.Enabled = Not CH_ADD_BY_LIST.Checked TXT_USER_FRIENDLY.Enabled = Not CH_ADD_BY_LIST.Checked @@ -355,6 +381,7 @@ CloseForm: End If MsgBoxE(m) + If Added > 0 Then MyDef.ChangesDetected = False Return Added > 0 And Not BannedUsers.ListExists And NonIdentified.Count = 0 Else MsgBoxE("No one user can not recognized", MsgBoxStyle.Exclamation) diff --git a/SCrawler/MainFrame.vb b/SCrawler/MainFrame.vb index e8aa384..ca87a9a 100644 --- a/SCrawler/MainFrame.vb +++ b/SCrawler/MainFrame.vb @@ -170,6 +170,17 @@ CloseResume: Case View.SmallIcon : .SmallImageList.Images.Add(User.LVIKey, User.GetPicture()) End Select .Items.Add(User.GetLVI(LIST_PROFILES)) + If Not User.Exists Then + With .Items(.Items.Count - 1) + .BackColor = ColorBttDeleteBack + .ForeColor = ColorBttDeleteFore + End With + ElseIf User.Suspended Then + With .Items(.Items.Count - 1) + .BackColor = ColorBttEditBack + .ForeColor = ColorBttEditFore + End With + End If End With End Sub Else @@ -188,6 +199,16 @@ CloseResume: End Select .Items(i).Text = User.ToString .Items(i).Group = User.GetLVIGroup(LIST_PROFILES) + If Not User.Exists Then + .Items(i).BackColor = ColorBttDeleteBack + .Items(i).ForeColor = ColorBttDeleteFore + ElseIf User.Suspended Then + .Items(i).BackColor = ColorBttEditBack + .Items(i).ForeColor = ColorBttEditFore + Else + .Items(i).BackColor = SystemColors.Window + .Items(i).ForeColor = SystemColors.WindowText + End If End If End With End Sub @@ -239,7 +260,7 @@ CloseResume: Private Sub BTT_ADD_USER_Click(sender As Object, e As EventArgs) Handles BTT_ADD_USER.Click Using f As New UserCreatorForm f.ShowDialog() - If f.DialogResult = DialogResult.OK Then + If f.DialogResult = DialogResult.OK Or f.StartIndex >= 0 Then Dim i% If f.StartIndex >= 0 Then OnUsersAddedHandler(f.StartIndex) @@ -818,7 +839,7 @@ ResumeDownloadingOperation: If Not user Is Nothing Then user.OpenFolder() End Sub #End Region - Friend Sub User_OnPictureUpdated(ByVal User As IUserData) + Friend Sub User_OnUserUpdated(ByVal User As IUserData) UserListUpdate(User, False) End Sub Private _LogVisible As Boolean = False diff --git a/SCrawler/MainMod.vb b/SCrawler/MainMod.vb index b878585..f04c81e 100644 --- a/SCrawler/MainMod.vb +++ b/SCrawler/MainMod.vb @@ -13,7 +13,7 @@ Friend Module MainMod Friend Settings As SettingsCLS Friend Const SettingsFolderName As String = "Settings" Friend ReadOnly LinkPattern As New RegexStructure("[htps:]{0,6}[/]{0,2}(.+)", 1) - Friend ReadOnly FilesPattern As New RegexStructure("[^\./]+?\.\w+", True, False, 1) + Friend ReadOnly FilesPattern As New RegexStructure("[^\./]+?\.\w+", True, False, 1,,,, String.Empty, EDP.ReturnValue) Friend Const LVI_TempOption As String = "Temp" Friend Const LVI_FavOption As String = "Favorite" Friend Const CannelsLabelName As String = "Channels" @@ -171,9 +171,9 @@ Friend Module MainMod Friend Sub ImageHandler(ByVal User As IUserData, ByVal Add As Boolean) Try If Add Then - AddHandler User.Self.OnPictureUpdated, AddressOf MainFrame.User_OnPictureUpdated + AddHandler User.Self.OnUserUpdated, AddressOf MainFrame.User_OnUserUpdated Else - RemoveHandler User.Self.OnPictureUpdated, AddressOf MainFrame.User_OnPictureUpdated + RemoveHandler User.Self.OnUserUpdated, AddressOf MainFrame.User_OnUserUpdated End If Catch ex As Exception End Try diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb index 070c958..4481450 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/SettingsCLS.vb b/SCrawler/SettingsCLS.vb index 1dfdbc7..249042f 100644 --- a/SCrawler/SettingsCLS.vb +++ b/SCrawler/SettingsCLS.vb @@ -12,6 +12,7 @@ Imports SCrawler.API Imports SCrawler.API.Base Friend Class SettingsCLS : Implements IDisposable Friend Const DefaultMaxDownloadingTasks As Integer = 5 + Friend Const Name_Node_Sites As String = "Sites" Friend ReadOnly Design As XmlFile Private ReadOnly MyXML As XmlFile Friend ReadOnly OS64 As Boolean @@ -35,8 +36,7 @@ Friend Class SettingsCLS : Implements IDisposable FfmpegFile = "ffmpeg.exe" FfmpegExists = FfmpegFile.Exists If OS64 And Not FfmpegExists Then MsgBoxE("[ffmpeg.exe] is missing", vbExclamation) - Design = New XmlFile("Settings\Design.xml") - Design.DefaultsLoading(False) + Design = New XmlFile("Settings\Design.xml", Protector.Modes.All) MyXML = New XmlFile(Nothing) With {.AutoUpdateFile = True} Users = New List(Of IUserData) UsersList = New List(Of UserInfo) @@ -52,16 +52,43 @@ Friend Class SettingsCLS : Implements IDisposable SeparateVideoFolder = New XMLValue(Of Boolean)("SeparateVideoFolder", True, MyXML) CollectionsPath = New XMLValue(Of String)("CollectionsPath", "Collections", MyXML) - MaxUsersJobsCount = New XMLValue(Of Integer)("MaxUsersJobsCount", DefaultMaxDownloadingTasks, MyXML) - DefaultTemporary = New XMLValue(Of Boolean)("DefaultTemporary", False, MyXML) - DefaultDownloadImages = New XMLValue(Of Boolean)("DefaultDownloadImages", True, MyXML) - DefaultDownloadVideos = New XMLValue(Of Boolean)("DefaultDownloadVideos", True, MyXML) + Dim n() As String = {"Defaults"} + DefaultTemporary = New XMLValue(Of Boolean)("Temporary", False, MyXML, n) + DefaultTemporary.ReplaceByValue("DefaultTemporary") + DefaultDownloadImages = New XMLValue(Of Boolean)("DownloadImages", True, MyXML, n) + DefaultDownloadImages.ReplaceByValue("DefaultDownloadImages") + DefaultDownloadVideos = New XMLValue(Of Boolean)("DownloadVideos", True, MyXML, n) + DefaultDownloadVideos.ReplaceByValue("DefaultDownloadVideos") + ChangeReadyForDownOnTempChange = New XMLValue(Of Boolean)("ChangeReadyForDownOnTempChange", True, MyXML, n) - FileAddDateToFileName = New XMLValue(Of Boolean)("FileAddDateToFileName", False, MyXML) With {.OnChangeFunction = AddressOf ChangeDateProvider} - FileAddTimeToFileName = New XMLValue(Of Boolean)("FileAddTimeToFileName", False, MyXML) With {.OnChangeFunction = AddressOf ChangeDateProvider} - FileDateTimePositionEnd = New XMLValue(Of Boolean)("FileDateTimePositionEnd", True, MyXML) With {.OnChangeFunction = AddressOf ChangeDateProvider} - FileReplaceNameByDate = New XMLValue(Of Boolean)("FileReplaceNameByDate", False, MyXML) + n = {Name_Node_Sites, Sites.Reddit.ToString} + RedditTemporary = New XMLValue(Of Boolean) + RedditTemporary.SetExtended("Temporary", False, MyXML, n) + RedditTemporary.SetDefault(DefaultTemporary) + + RedditDownloadImages = New XMLValue(Of Boolean) + RedditDownloadImages.SetExtended("DownloadImages", True, MyXML, n) + RedditDownloadImages.SetDefault(DefaultDownloadImages) + + RedditDownloadVideos = New XMLValue(Of Boolean) + RedditDownloadVideos.SetExtended("DownloadVideos", True, MyXML, n) + RedditDownloadVideos.SetDefault(DefaultDownloadVideos) + + n = {Name_Node_Sites, Sites.Twitter.ToString} + TwitterTemporary = New XMLValue(Of Boolean) + TwitterTemporary.SetExtended("Temporary", False, MyXML, n) + TwitterTemporary.SetDefault(DefaultTemporary) + + TwitterDownloadImages = New XMLValue(Of Boolean) + TwitterDownloadImages.SetExtended("DownloadImages", True, MyXML, n) + TwitterDownloadImages.SetDefault(DefaultDownloadImages) + + TwitterDownloadVideos = New XMLValue(Of Boolean) + TwitterDownloadVideos.SetExtended("DownloadVideos", True, MyXML, n) + TwitterDownloadVideos.SetDefault(DefaultDownloadVideos) + + TwitterDefaultGetUserMedia = New XMLValue(Of Boolean)("TwitterDefaultGetUserMedia", True, MyXML, n) MaxLargeImageHeigh = New XMLValue(Of Integer)("MaxLargeImageHeigh", 150, MyXML) MaxSmallImageHeigh = New XMLValue(Of Integer)("MaxSmallImageHeigh", 15, MyXML) @@ -73,26 +100,51 @@ Friend Class SettingsCLS : Implements IDisposable LatestSelectedLabels = New XMLValue(Of String)("LatestSelectedLabels",, MyXML) LatestSelectedChannel = New XMLValue(Of String)("LatestSelectedChannel",, MyXML) - ChannelsImagesRows = New XMLValue(Of Integer)("ChannelsImagesRows", 2, MyXML) - ChannelsImagesColumns = New XMLValue(Of Integer)("ChannelsImagesColumns", 5, MyXML) - ChannelsHideExistsUser = New XMLValue(Of Boolean)("ChannelsHideExistsUser", True, MyXML) - ChannelsMaxJobsCount = New XMLValue(Of Integer)("ChannelsMaxJobsCount", DefaultMaxDownloadingTasks, MyXML) - FromChannelDownloadTop = New XMLValue(Of Integer)("FromChannelDownloadTop", 10, MyXML) - FromChannelDownloadTopUse = New XMLValue(Of Boolean)("FromChannelDownloadTopUse", False, MyXML) - FromChannelCopyImageToUser = New XMLValue(Of Boolean)("FromChannelCopyImageToUser", True, MyXML) + n = {Name_Node_Sites, "Channels"} + ChannelsDefaultReadyForDownload = New XMLValue(Of Boolean)("ChannelsDefaultReadyForDownload", False, MyXML, n) + ChannelsDefaultTemporary = New XMLValue(Of Boolean)("ChannelsDefaultTemporary", True, MyXML, n) + ChannelsRegularCheckMD5 = New XMLValue(Of Boolean)("ChannelsRegularCheckMD5", False, MyXML, n) + ChannelsImagesRows = New XMLValue(Of Integer)("ImagesRows", 2, MyXML, n) + ChannelsImagesRows.ReplaceByValue("ChannelsImagesRows") + ChannelsImagesColumns = New XMLValue(Of Integer)("ImagesColumns", 5, MyXML, n) + ChannelsImagesColumns.ReplaceByValue("ChannelsImagesColumns") + ChannelsHideExistsUser = New XMLValue(Of Boolean)("HideExistsUser", True, MyXML, n) + ChannelsHideExistsUser.ReplaceByValue("ChannelsHideExistsUser") + ChannelsMaxJobsCount = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, n) + ChannelsMaxJobsCount.ReplaceByValue("ChannelsMaxJobsCount") + + n = {"Users"} + FromChannelDownloadTop = New XMLValue(Of Integer)("FromChannelDownloadTop", 10, MyXML, n) + FromChannelDownloadTop.ReplaceByValue("FromChannelDownloadTop") + FromChannelDownloadTopUse = New XMLValue(Of Boolean)("FromChannelDownloadTopUse", False, MyXML, n) + FromChannelDownloadTopUse.ReplaceByValue("FromChannelDownloadTopUse") + FromChannelCopyImageToUser = New XMLValue(Of Boolean)("FromChannelCopyImageToUser", True, MyXML, n) + FromChannelCopyImageToUser.ReplaceByValue("FromChannelCopyImageToUser") + + n = {"Users", "FileName"} + MaxUsersJobsCount = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, n) + MaxUsersJobsCount.ReplaceByValue("MaxUsersJobsCount") + FileAddDateToFileName = New XMLValue(Of Boolean)("FileAddDateToFileName", False, MyXML, n) With {.OnChangeFunction = AddressOf ChangeDateProvider} + FileAddDateToFileName.ReplaceByValue("FileAddDateToFileName") + FileAddTimeToFileName = New XMLValue(Of Boolean)("FileAddTimeToFileName", False, MyXML, n) With {.OnChangeFunction = AddressOf ChangeDateProvider} + FileAddTimeToFileName.ReplaceByValue("FileAddTimeToFileName") + FileDateTimePositionEnd = New XMLValue(Of Boolean)("FileDateTimePositionEnd", True, MyXML, n) With {.OnChangeFunction = AddressOf ChangeDateProvider} + FileDateTimePositionEnd.ReplaceByValue("FileDateTimePositionEnd") + FileReplaceNameByDate = New XMLValue(Of Boolean)("FileReplaceNameByDate", False, MyXML, n) + FileReplaceNameByDate.ReplaceByValue("FileReplaceNameByDate") CheckUpdatesAtStart = New XMLValue(Of Boolean)("CheckUpdatesAtStart", True, MyXML) ShowNewVersionNotification = New XMLValue(Of Boolean)("ShowNewVersionNotification", True, MyXML) LatestVersion = New XMLValue(Of String)("LatestVersion", String.Empty, MyXML) - MyXML.DefaultsLoading(False) - If MyXML.ChangesDetected Then MyXML.UpdateData() + If MyXML.ChangesDetected Then MyXML.Sort() : MyXML.UpdateData() Labels = New LabelsKeeper If Not LatestSelectedLabels.IsEmptyString Then Labels.CurrentSelection.ListAddList(LatestSelectedLabels.Value.StringToList(Of String, List(Of String))("|")) If BlackListFile.Exists Then BlackList.ListAddList(IO.File.ReadAllLines(BlackListFile), LAP.NotContainsOnly) If BlackList.Count > 0 Then BlackList.RemoveAll(Function(b) Not b.Exists) End If + _UpdatesSuspended = False ChangeDateProvider(Nothing, Nothing, Nothing) End Sub Private Sub ChangeDateProvider(ByVal Sender As Object, ByVal Name As String, ByVal Value As Object) @@ -108,9 +160,8 @@ Friend Class SettingsCLS : Implements IDisposable Try Users.Clear() If UsersSettingsFile.Exists Then - Using x As New XmlFile(UsersSettingsFile, ProtectionLevels.All, False) With {.AllowSameNames = True} + Using x As New XmlFile(UsersSettingsFile, Protector.Modes.All, False) With {.AllowSameNames = True} x.LoadData() - x.DefaultsLoading(False) If x.Count > 0 Then x.ForEach(Sub(xx) UsersList.Add(xx)) End Using Dim PNC As Func(Of UserInfo, Boolean) = Function(u) Not u.IncludedInCollection @@ -184,6 +235,12 @@ Friend Class SettingsCLS : Implements IDisposable Catch ex As Exception End Try End Sub + Private _UserListUpdateRequired As Boolean = False + Friend ReadOnly Property UserListUpdateRequired As Boolean + Get + Return _UserListUpdateRequired + End Get + End Property Friend Overloads Sub UpdateUsersList(ByVal u As UserInfo) Dim i% = UsersList.IndexOf(u) If i >= 0 Then @@ -194,13 +251,17 @@ Friend Class SettingsCLS : Implements IDisposable UpdateUsersList() End Sub Friend Overloads Sub UpdateUsersList() - If UsersList.Count > 0 Then - Using x As New XmlFile With {.AllowSameNames = True, .Name = "Users"} - x.DefaultsLoading(False) - UsersList.ForEach(Sub(u) x.Add(u.GetContainer())) - x.Save(UsersSettingsFile) - End Using - End If + Try + If UsersList.Count > 0 Then + Using x As New XmlFile With {.AllowSameNames = True, .Name = "Users"} + UsersList.ForEach(Sub(u) x.Add(u.GetContainer())) + x.Save(UsersSettingsFile) + End Using + End If + _UserListUpdateRequired = False + Catch ex As Exception + _UserListUpdateRequired = True + End Try End Sub Friend Sub UpdateBlackList() If BlackList.Count > 0 Then @@ -228,7 +289,7 @@ Friend Class SettingsCLS : Implements IDisposable Friend Overloads Function UserExists(ByVal _User As UserInfo) As Boolean Return UserExists(_User.Site, _User.Name) End Function - Private _UpdatesSuspended As Boolean = False + Private _UpdatesSuspended As Boolean = True Friend Sub BeginUpdate() MyXML.BeginUpdate() _UpdatesSuspended = True @@ -261,13 +322,30 @@ Friend Class SettingsCLS : Implements IDisposable Friend ReadOnly Property DefaultTemporary As XMLValue(Of Boolean) Friend ReadOnly Property DefaultDownloadImages As XMLValue(Of Boolean) Friend ReadOnly Property DefaultDownloadVideos As XMLValue(Of Boolean) + Friend ReadOnly Property ChangeReadyForDownOnTempChange As XMLValue(Of Boolean) +#Region "Reddit" + Friend ReadOnly Property RedditTemporary As XMLValue(Of Boolean) + Friend ReadOnly Property RedditDownloadImages As XMLValue(Of Boolean) + Friend ReadOnly Property RedditDownloadVideos As XMLValue(Of Boolean) #End Region -#Region "Additional info" +#Region "Twitter" + Friend ReadOnly Property TwitterTemporary As XMLValue(Of Boolean) + Friend ReadOnly Property TwitterDownloadImages As XMLValue(Of Boolean) + Friend ReadOnly Property TwitterDownloadVideos As XMLValue(Of Boolean) + Friend ReadOnly Property TwitterDefaultGetUserMedia As XMLValue(Of Boolean) +#End Region +#End Region +#Region "User data" + Friend ReadOnly Property FromChannelDownloadTop As XMLValue(Of Integer) + Friend ReadOnly Property FromChannelDownloadTopUse As XMLValue(Of Boolean) + Friend ReadOnly Property FromChannelCopyImageToUser As XMLValue(Of Boolean) +#Region "File naming" Friend ReadOnly Property FileAddDateToFileName As XMLValue(Of Boolean) Friend ReadOnly Property FileAddTimeToFileName As XMLValue(Of Boolean) Friend ReadOnly Property FileDateTimePositionEnd As XMLValue(Of Boolean) Friend ReadOnly Property FileReplaceNameByDate As XMLValue(Of Boolean) #End Region +#End Region #Region "View" Friend ReadOnly Property MaxLargeImageHeigh As XMLValue(Of Integer) Friend ReadOnly Property MaxSmallImageHeigh As XMLValue(Of Integer) @@ -289,13 +367,13 @@ Friend Class SettingsCLS : Implements IDisposable Friend ReadOnly Property LatestSelectedChannel As XMLValue(Of String) #End Region #Region "Channels properties" + Friend ReadOnly Property ChannelsDefaultReadyForDownload As XMLValue(Of Boolean) + Friend ReadOnly Property ChannelsDefaultTemporary As XMLValue(Of Boolean) + Friend ReadOnly Property ChannelsRegularCheckMD5 As XMLValue(Of Boolean) Friend ReadOnly Property ChannelsImagesRows As XMLValue(Of Integer) Friend ReadOnly Property ChannelsImagesColumns As XMLValue(Of Integer) Friend ReadOnly Property ChannelsHideExistsUser As XMLValue(Of Boolean) Friend ReadOnly Property ChannelsMaxJobsCount As XMLValue(Of Integer) - Friend ReadOnly Property FromChannelDownloadTop As XMLValue(Of Integer) - Friend ReadOnly Property FromChannelDownloadTopUse As XMLValue(Of Boolean) - Friend ReadOnly Property FromChannelCopyImageToUser As XMLValue(Of Boolean) #End Region #Region "New version properties" Friend ReadOnly Property CheckUpdatesAtStart As XMLValue(Of Boolean) @@ -307,6 +385,7 @@ Friend Class SettingsCLS : Implements IDisposable Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then + If UserListUpdateRequired Then UpdateUsersList() If Not Channels Is Nothing Then Channels.Dispose() If Reddit.ChannelsCollection.ChannelsPathCache.Exists(SFO.Path, False) Then _ diff --git a/SCrawler/TDownloader.vb b/SCrawler/TDownloader.vb index 651293f..fdea68a 100644 --- a/SCrawler/TDownloader.vb +++ b/SCrawler/TDownloader.vb @@ -136,6 +136,10 @@ Friend Class TDownloader : Implements IDisposable Catch ex As Exception ErrorsDescriber.Execute(EDP.SendInLog, ex, "TDownloader.DownloadData") Finally + If Settings.UserListUpdateRequired Then _ + Task.WaitAll(Task.Run(Sub() + While Settings.UserListUpdateRequired : Settings.UpdateUsersList() : End While + End Sub)) MainProgress.Enabled(EOptions.ProgressBar) = False End Try End Sub