From b42832719f82274006ad38071506600de0fe9786 Mon Sep 17 00:00:00 2001
From: Andy <88590076+AAndyProgram@users.noreply.github.com>
Date: Thu, 21 Nov 2024 17:50:19 +0300
Subject: [PATCH] 2024.11.21.0
API.Instagram: code refactoring (settings); add setting to skip errors; add 'ForceUpdateUserName' and 'ForceUpdateUserInfo' properties; add 'IgnoreStoriesDownloadingErrors' to the settings; improve username update algorithm
API.OnlyFans: add 'UpdateRules401' property; update the code to handle error 401
API.YouTube: 404 error handling (community)
UserDataBase: raise event to update user in exceptions; add extra buttons for special download (limited and dated)
UserDataBind: extra buttons (UserDataBase)
UserCreatorForm: fix network paths
GlobalSettingsForm, MainFrame, SettingsCLS: add ability to change the feed opening shortcut
MainFrame: update button captions, update 'DownloadSelectedUser' function
---
Changelog.md | 29 +-
FAQ.md | 8 +-
SCrawler/API/Base/UserDataBase.vb | 17 +-
.../API/Instagram/EditorExchangeOptions.vb | 10 +-
SCrawler/API/Instagram/SiteSettings.vb | 228 ++++---
SCrawler/API/Instagram/UserData.vb | 100 +++-
SCrawler/API/OnlyFans/SiteSettings.vb | 16 +
SCrawler/API/OnlyFans/UserData.vb | 10 +-
SCrawler/API/UserDataBind.vb | 18 +
SCrawler/API/YouTube/UserData.vb | 2 +
.../Editors/GlobalSettingsForm.Designer.vb | 563 +++++++++---------
SCrawler/Editors/GlobalSettingsForm.resx | 119 ++--
SCrawler/Editors/GlobalSettingsForm.vb | 2 +
SCrawler/Editors/UserCreatorForm.vb | 2 +-
SCrawler/MainFrame.Designer.vb | 6 +-
SCrawler/MainFrame.vb | 17 +-
SCrawler/My Project/AssemblyInfo.vb | 4 +-
SCrawler/SettingsCLS.vb | 16 +
18 files changed, 678 insertions(+), 489 deletions(-)
diff --git a/Changelog.md b/Changelog.md
index fd524a0..348f5d9 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,14 +1,37 @@
+# 2024.11.21.0
+
+*2024-11-21*
+
+- Added
+ - Sites:
+ - Instagram:
+ - setting to skip errors without disabling download *(site settings)*
+ - settings to force update of username and/or user information *(user settings)*
+ - setting to continue downloading profile if error 560 occurs while downloading user stories *(site settings)*
+ - improve username update algorithm
+ - YouTube: 404 error handling (community)
+ - Main window: add extra buttons for special download (limited and dated) in collection
+ - Global settings: ability to change the feed opening shortcut (`Ctrl+F`/`Alt+F` *(Settings - Behavior)*)
+ - Minor improvements
+- Updated
+ - yt-dlp up to version **2024.11.18**
+ - gallery-dl up to version **1.27.7**
+- Fixed
+ - Users: network paths aren't working
+ - Main window: in some cases users are not updated in the list
+ - Minor bugs
+
# 2024.10.24.0
*2024-10-24*
- Added
- - YouTube (standalone app)
+ - YouTube (standalone app):
- settings `Embed thumbnail (cover)` and `Allow webm formats`
- changed cover selection for music downloads
- - allow `webm` formats is there are no `mp4` formats via http protocol (issue #211)
+ - allow `webm` formats if there are no `mp4` formats via http protocol (issue #211)
- Sites:
- - Instagram
+ - Instagram:
- **ability to manually change username**
- **mark user as non-existent if user `ID` cannot be obtained**
- Twitter: **ability to manually change username**
diff --git a/FAQ.md b/FAQ.md
index 929d977..5a9d053 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -33,15 +33,15 @@ I strongly recommend you to **regularly** create backup copies of the settings f
## General questions
- **PROFILES**
- I added a profile but **nothing downloaded** :arrow_forward: check your cookies and [site requirements](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements). If there are any optional fields that you don't fill in, do so. Still nothing works - [report it](#how-to-report-a-problem)!
- - User downloading failed :arrow_forward: check your credentials and **[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**. If all settings are set and nothing works, [report it](#how-to-report-a-problem). Don't forget to attach the LOG.
+ - User downloading failed :arrow_forward: check your credentials and **[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**. If all settings are set and nothing works, [report it](#how-to-report-a-problem). **Don't forget to attach the LOG.**
- [How to redownload user](https://github.com/AAndyProgram/SCrawler/wiki#redownload-user)
- How to **add profile** to download :arrow_forward: copy the **[profile URL](https://github.com/AAndyProgram/SCrawler/wiki#add-user)** and press `Insert` or `Ctrl+Insert`. **ALWAYS PASTE THE USER PROFILE URL**. After that select this user and press `F5` or click the `Download selected` button.
- How to download **[saved posts](https://github.com/AAndyProgram/SCrawler/wiki#saved-posts)**
- **[HOW TO ADD COOKIES](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-set-up-cookies)**
- [How to report a problem](#how-to-report-a-problem)
- I want you to **add the site** to SCrawler :arrow_forward: **I'm not currently accepting requests to add new sites**, but you can [create a plugin](https://github.com/AAndyProgram/SCrawler/wiki/Plugins) (for your site) for SCrawler.
-- What language is SCrawler written in :arrow_forward: vb.net
-- I don't know vb.net and I can't write a plugin :arrow_forward: you can write a plugin in `C#`
+- What language is SCrawler written in :arrow_forward: `vb.net`
+- I don't know `vb.net` and I can't write a plugin :arrow_forward: you can write a plugin in `C#`
- I have a suggestion, will it be added :arrow_forward: maybe if it interested me.
- How to name files using a pattern (e.g. `Site_PostID_Name.jpg`) :arrow_forward: **there is no such functionality and there are no such plans**.
- **DON'T CHANGE THE DEFAULT SITE SETTINGS UNLESS YOU KNOW EXACTLY WHAT YOU'RE DOING!** SCrawler already has all the default settings to work. You only need to add credentials (where [required](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)).
@@ -61,7 +61,7 @@ I strongly recommend you to **regularly** create backup copies of the settings f
*How to use: find the site you need in the list and read the answer.*
-- Reddit: don't use credentials at all or configure [OAuth](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-get-reddit-credentials). **Reddit profiles can be downloaded without any credentials at all. Subreddits require OAuth! If nothing downloads, use OAuth!**
+- Reddit: don't use credentials at all or configure [OAuth](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-get-reddit-credentials). **Reddit profiles can be downloaded without any credentials at all. Subreddits require OAuth! If nothing downloads, use OAuth!** Don't use OAuth token to download saved posts (use cookies only).
- **META** (**Instagram**, Threads, Facebook): you need **cookies** and fill in **all fields**
- **Instagram saved posts**: I don't consider questions like "I have 10k saved posts and only 1000 were downloaded". Download posts, remove them from saved posts, delete the `Saved posts` **settings folder**, repeat.
- TikTok: works via yt-dlp. If something doesn't download, we need to wait until yt-dlp fixes it. TikTok doesn't require cookies to download.
diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb
index 06b85bd..f2545ba 100644
--- a/SCrawler/API/Base/UserDataBase.vb
+++ b/SCrawler/API/Base/UserDataBase.vb
@@ -80,6 +80,8 @@ Namespace API.Base
Private _CollectionButtonsExists As Boolean = False
Private _CollectionButtonsColorsSet As Boolean = False
Friend WithEvents BTT_CONTEXT_DOWN As ToolStripKeyMenuItem
+ Friend WithEvents BTT_CONTEXT_DOWN_LIMIT As ToolStripKeyMenuItem
+ Friend WithEvents BTT_CONTEXT_DOWN_DATE As ToolStripKeyMenuItem
Friend WithEvents BTT_CONTEXT_EDIT As ToolStripMenuItem
Friend WithEvents BTT_CONTEXT_DELETE As ToolStripMenuItem
Friend WithEvents BTT_CONTEXT_ERASE As ToolStripMenuItem
@@ -98,6 +100,8 @@ Namespace API.Base
End If
End With
BTT_CONTEXT_DOWN = New ToolStripKeyMenuItem(tn, i) With {.Name = tnn("DOWN"), .Tag = Me}
+ BTT_CONTEXT_DOWN_LIMIT = New ToolStripKeyMenuItem(tn, i) With {.Name = tnn("DOWN_LIMIT"), .Tag = Me}
+ BTT_CONTEXT_DOWN_DATE = New ToolStripKeyMenuItem(tn, i) With {.Name = tnn("DOWN_DATE"), .Tag = Me}
BTT_CONTEXT_EDIT = New ToolStripMenuItem(tn, i) With {.Name = tnn("EDIT"), .Tag = Me}
BTT_CONTEXT_DELETE = New ToolStripMenuItem(tn, i) With {.Name = tnn("DELETE"), .Tag = Me}
BTT_CONTEXT_ERASE = New ToolStripMenuItem(tn, i) With {.Name = tnn("ERASE"), .Tag = Me}
@@ -117,7 +121,8 @@ Namespace API.Base
cb = MyColor.EditBack
cf = MyColor.EditFore
End If
- For Each b As ToolStripMenuItem In {BTT_CONTEXT_DOWN, BTT_CONTEXT_EDIT, BTT_CONTEXT_DELETE, BTT_CONTEXT_ERASE,
+ For Each b As ToolStripMenuItem In {BTT_CONTEXT_DOWN, BTT_CONTEXT_DOWN_LIMIT, BTT_CONTEXT_DOWN_DATE,
+ BTT_CONTEXT_EDIT, BTT_CONTEXT_DELETE, BTT_CONTEXT_ERASE,
BTT_CONTEXT_OPEN_PATH, BTT_CONTEXT_OPEN_SITE}
If Not b Is Nothing Then b.BackColor = cb : b.ForeColor = cf
Next
@@ -1282,12 +1287,14 @@ BlockNullPicture:
ErrorsDescriber.Execute(EDP.SendToLog, exit_ex, $"{ToStringForLog()}: downloading interrupted (exit)")
End If
End If
+ If _EnvirInvokeUserUpdated Then OnUserUpdated()
Canceled = True
Catch dex As ObjectDisposedException When Disposed
Canceled = True
Catch ex As Exception
UpdateUserInformation_Ex()
LogError(ex, "downloading data error")
+ If _EnvirInvokeUserUpdated Then OnUserUpdated()
HasError = True
Finally
If Not UserExists Then AddNonExistingUserToLog($"User '{ToStringForLog()}' not found on the site")
@@ -2191,6 +2198,12 @@ BlockNullPicture:
Private Sub BTT_CONTEXT_DOWN_KeyClick(sender As Object, e As MyKeyEventArgs) Handles BTT_CONTEXT_DOWN.KeyClick
Downloader.Add(Me, e.IncludeInTheFeed)
End Sub
+ Private Sub BTT_CONTEXT_DOWN_LIMIT_KeyClick(sender As Object, e As MyKeyEventArgs) Handles BTT_CONTEXT_DOWN_LIMIT.KeyClick
+ ControlInvokeFast(MainFrameObj.MF, Sub() MainFrameObj.MF.DownloadSelectedUser(MainFrame.DownUserLimits.Number, e.IncludeInTheFeed, Me), EDP.SendToLog)
+ End Sub
+ Private Sub BTT_CONTEXT_DOWN_DATE_KeyClick(sender As Object, e As MyKeyEventArgs) Handles BTT_CONTEXT_DOWN_DATE.KeyClick
+ ControlInvokeFast(MainFrameObj.MF, Sub() MainFrameObj.MF.DownloadSelectedUser(MainFrame.DownUserLimits.Date, e.IncludeInTheFeed, Me), EDP.SendToLog)
+ End Sub
Private Sub BTT_CONTEXT_EDIT_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_EDIT.Click
Using f As New Editors.UserCreatorForm(Me)
f.ShowDialog()
@@ -2271,6 +2284,8 @@ BlockNullPicture:
If Not ProgressPre Is Nothing Then ProgressPre.Reset() : ProgressPre.Dispose()
If Not Responser Is Nothing Then Responser.Dispose()
If Not BTT_CONTEXT_DOWN Is Nothing Then BTT_CONTEXT_DOWN.Dispose()
+ If Not BTT_CONTEXT_DOWN_LIMIT Is Nothing Then BTT_CONTEXT_DOWN_LIMIT.Dispose()
+ If Not BTT_CONTEXT_DOWN_DATE Is Nothing Then BTT_CONTEXT_DOWN_DATE.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()
If Not BTT_CONTEXT_ERASE Is Nothing Then BTT_CONTEXT_ERASE.Dispose()
diff --git a/SCrawler/API/Instagram/EditorExchangeOptions.vb b/SCrawler/API/Instagram/EditorExchangeOptions.vb
index d092a63..08c8b7e 100644
--- a/SCrawler/API/Instagram/EditorExchangeOptions.vb
+++ b/SCrawler/API/Instagram/EditorExchangeOptions.vb
@@ -9,7 +9,7 @@
Imports SCrawler.Plugin.Attributes
Imports DN = SCrawler.API.Base.DeclaredNames
Namespace API.Instagram
- Friend Class EditorExchangeOptions
+ Friend NotInheritable Class EditorExchangeOptions
#Region "Download"
Friend Property GetTimeline As Boolean
@@ -37,7 +37,11 @@ Namespace API.Instagram
Friend Property PutImageVideoFolder As Boolean
- Friend Overridable Property UserName As String = String.Empty
+ Friend Property UserName As String = String.Empty
+
+ Friend Property ForceUpdateUserName As Boolean = False
+
+ Friend Property ForceUpdateUserInfo As Boolean = False
Friend Sub New(ByVal u As UserData)
With u
GetTimeline = .GetTimeline
@@ -55,6 +59,8 @@ Namespace API.Instagram
PutImageVideoFolder = .PutImageVideoFolder
UserName = .NameTrue(True)
+ ForceUpdateUserName = .ForceUpdateUserName
+ ForceUpdateUserInfo = .ForceUpdateUserInfo
End With
End Sub
Friend Sub New(ByVal s As SiteSettings)
diff --git a/SCrawler/API/Instagram/SiteSettings.vb b/SCrawler/API/Instagram/SiteSettings.vb
index cebff7e..bb920e9 100644
--- a/SCrawler/API/Instagram/SiteSettings.vb
+++ b/SCrawler/API/Instagram/SiteSettings.vb
@@ -58,8 +58,10 @@ Namespace API.Instagram
#Region "Categories"
Private Const CAT_DOWN As String = "Download data"
Private Const CAT_UserDefs_VIDEO As String = DN.CAT_UserDefs & ": extract image from video"
+ Private Const CAT_ERRORS As String = "Errors"
#End Region
-#Region "Authorization properties"
+#Region "Properties"
+#Region "Authorization"
Friend Const Header_IG_APP_ID As String = "x-ig-app-id"
Friend Const Header_IG_WWW_CLAIM As String = "x-ig-www-claim"
Friend Const Header_CSRF_TOKEN As String = "x-csrftoken"
@@ -68,18 +70,18 @@ Namespace API.Instagram
Friend Const Header_Browser As String = "Sec-Ch-Ua"
Friend Const Header_BrowserExt As String = "Sec-Ch-Ua-Full-Version-List"
Friend Const Header_Platform_Verion As String = "Sec-Ch-Ua-Platform-Version"
-
+
Friend ReadOnly Property HH_CSRF_TOKEN As PropertyValue
Private Function GetValueFromCookies(ByVal PropName As String, ByVal c As CookieKeeper) As String
Return c.GetCookieValue(Header_CSRF_TOKEN_COOKIE, PropName, NameOf(HH_CSRF_TOKEN))
End Function
-
+
Friend ReadOnly Property HH_IG_APP_ID As PropertyValue
-
+
Friend ReadOnly Property HH_ASBD_ID As PropertyValue
'PropertyOption(ControlText:="x-ig-www-claim", IsAuth:=True, AllowNull:=True)
-
+
Friend ReadOnly Property HH_IG_WWW_CLAIM As PropertyValue
Private ReadOnly Property HH_IG_WWW_CLAIM_IS_ZERO As Boolean
Get
@@ -88,16 +90,16 @@ Namespace API.Instagram
End Get
End Property
+ InheritanceName:=SettingsCLS.HEADER_DEF_sec_ch_ua), PClonable, PXML(OnlyForChecked:=True)>
Private ReadOnly Property HH_BROWSER As PropertyValue
+ InheritanceName:=SettingsCLS.HEADER_DEF_sec_ch_ua_full_version_list), PClonable, PXML(OnlyForChecked:=True)>
Private ReadOnly Property HH_BROWSER_EXT As PropertyValue
+ InheritanceName:=SettingsCLS.HEADER_DEF_sec_ch_ua_platform_version), PClonable, PXML(OnlyForChecked:=True)>
Private ReadOnly Property HH_PLATFORM As PropertyValue
+ InheritanceName:=SettingsCLS.HEADER_DEF_UserAgent), PClonable, PXML(OnlyForChecked:=True)>
Private ReadOnly Property HH_USER_AGENT As PropertyValue
Friend Overrides Function BaseAuthExists() As Boolean
Return Responser.CookiesExists And ACheck(HH_IG_APP_ID.Value) And ACheck(HH_CSRF_TOKEN.Value)
@@ -126,113 +128,147 @@ Namespace API.Instagram
End If
End Sub
#Region "HH_IG_WWW_CLAIM"
-
+
Private ReadOnly Property HH_IG_WWW_CLAIM_UPDATE_INTERVAL As PropertyValue
+ PXML, PClonable, HiddenControl>
Friend ReadOnly Property HH_IG_WWW_CLAIM_ALWAYS_ZERO As PropertyValue
+ PXML, PClonable, HiddenControl>
Friend ReadOnly Property HH_IG_WWW_CLAIM_RESET_EACH_SESSION As PropertyValue
+ PXML, PClonable, HiddenControl>
Friend ReadOnly Property HH_IG_WWW_CLAIM_RESET_EACH_TARGET As PropertyValue
-
+
Friend ReadOnly Property HH_IG_WWW_CLAIM_USE As PropertyValue
-
+
Friend ReadOnly Property HH_IG_WWW_CLAIM_USE_DEFAULT_ALGO As PropertyValue
Private ReadOnly Property TokenUpdateIntervalProvider As IFormatProvider
#End Region
-
+
Friend ReadOnly Property USE_GQL As PropertyValue
#End Region
-#Region "Download properties"
-
- Private ReadOnly Property DownDetectorValue As PropertyValue
-
- Private ReadOnly Property DownDetectorValueProvider As IFormatProvider
-
- Private ReadOnly Property DownDetectorValueAddToLog As PropertyValue
+#Region "Download data"
+
+ Friend ReadOnly Property DownloadTimeline As PropertyValue
+ Private ReadOnly Property DownloadTimeline_Def As PropertyValue
+
+ Friend ReadOnly Property DownloadReels As PropertyValue
+ Private ReadOnly Property DownloadReels_Def As PropertyValue
+
+ Friend ReadOnly Property DownloadStories As PropertyValue
+ Private ReadOnly Property DownloadStories_Def As PropertyValue
+
+ Friend ReadOnly Property DownloadStoriesUser As PropertyValue
+ Private ReadOnly Property DownloadStoriesUser_Def As PropertyValue
+
+ Friend ReadOnly Property DownloadTagged As PropertyValue
+ Private ReadOnly Property DownloadTagged_Def As PropertyValue
+#End Region
+#Region "Timers"
Friend Const TimersUrgentTip As String = vbCr & "It is highly recommended not to change the default value."
+ PXML, PClonable>
Friend ReadOnly Property RequestsWaitTimer_Any As PropertyValue
Private ReadOnly Property RequestsWaitTimer_AnyProvider As IFormatProvider
+ AllowNull:=False, Category:=DN.CAT_Timers), PXML, PClonable>
Friend ReadOnly Property RequestsWaitTimer As PropertyValue
Private ReadOnly Property RequestsWaitTimerProvider As IFormatProvider
+ AllowNull:=False, LeftOffset:=120, Category:=DN.CAT_Timers), PXML, PClonable>
Friend ReadOnly Property RequestsWaitTimerTaskCount As PropertyValue
Private ReadOnly Property RequestsWaitTimerTaskCountProvider As IFormatProvider
+ AllowNull:=False, Category:=DN.CAT_Timers), PXML, PClonable>
Friend ReadOnly Property SleepTimerOnPostsLimit As PropertyValue
Private ReadOnly Property SleepTimerOnPostsLimitProvider As IFormatProvider
-
+#End Region
+#Region "New user defaults"
+
Friend ReadOnly Property GetTimeline As PropertyValue
-
+
Friend ReadOnly Property GetTimeline_VideoPic As PropertyValue
-
+
Friend ReadOnly Property GetReels As PropertyValue
-
+
Friend ReadOnly Property GetReels_VideoPic As PropertyValue
-
+
Friend ReadOnly Property GetStories As PropertyValue
-
+
Friend ReadOnly Property GetStories_VideoPic As PropertyValue
-
+
Friend ReadOnly Property GetStoriesUser As PropertyValue
-
+
Friend ReadOnly Property GetStoriesUser_VideoPic As PropertyValue
-
+
Friend ReadOnly Property GetTagged As PropertyValue
-
+
Friend ReadOnly Property GetTagged_VideoPic As PropertyValue
-
+
Friend ReadOnly Property GetSavedPosts_VideoPic As PropertyValue
-
+
Friend ReadOnly Property PutImageVideoFolder As PropertyValue
+#End Region
+#Region "Errors"
+ Private Const ErrorsDefault As String = "572"
+
+ Private ReadOnly Property SkipErrors As PropertyValue
+
+ Private ReadOnly Property SkipErrors_AddToLog As PropertyValue
+
+ Private ReadOnly Property SkipErrors_AddToLog_Silent As PropertyValue
+ Friend ReadOnly Property ErrorSpecialHandling(ByVal ErrCode As Integer) As Boolean
+ Get
+ With CStr(SkipErrors.Value) : Return Not .IsEmptyString AndAlso .Contains(ErrCode) : End With
+ End Get
+ End Property
+ Friend ReadOnly Property ErrorSpecialHandling_AddToLog(ByVal ErrCode As Integer) As Boolean
+ Get
+ With CStr(SkipErrors_AddToLog_Silent.Value)
+ Return CBool(SkipErrors_AddToLog.Value) AndAlso (.IsEmptyString OrElse Not .Contains(ErrCode))
+ End With
+ End Get
+ End Property
+
+ Friend ReadOnly Property IgnoreStoriesDownloadingErrors As PropertyValue
+#End Region
+#Region "Other params"
+
+ Private ReadOnly Property DownDetectorValue As PropertyValue
+
+ Private ReadOnly Property DownDetectorValueProvider As IFormatProvider
+
+ Private ReadOnly Property DownDetectorValueAddToLog As PropertyValue
+ "-1 to disable"), PXML, PClonable>
Friend ReadOnly Property TaggedNotifyLimit As PropertyValue
Private ReadOnly Property TaggedNotifyLimitProvider As IFormatProvider
#End Region
-#Region "Download ready"
-
- Friend ReadOnly Property DownloadTimeline As PropertyValue
- Private ReadOnly Property DownloadTimeline_Def As PropertyValue
-
- Friend ReadOnly Property DownloadReels As PropertyValue
- Private ReadOnly Property DownloadReels_Def As PropertyValue
-
- Friend ReadOnly Property DownloadStories As PropertyValue
- Private ReadOnly Property DownloadStories_Def As PropertyValue
-
- Friend ReadOnly Property DownloadStoriesUser As PropertyValue
- Private ReadOnly Property DownloadStoriesUser_Def As PropertyValue
-
- Friend ReadOnly Property DownloadTagged As PropertyValue
- Private ReadOnly Property DownloadTagged_Def As PropertyValue
#End Region
#Region "429 bypass"
@@ -266,8 +302,40 @@ Namespace API.Instagram
End Get
End Property
Private Const LastDownloadDateResetInterval As Integer = 60
+ Private TooManyRequestsReadyForCatch As Boolean = True
+ Friend Function GetWaitDate() As Date
+ With DownloadingErrorDate
+ If ACheck(Of Date)(.Value) Then
+ Return CDate(.Value).AddMinutes(If(LastApplyingValue, 10))
+ Else
+ Return Now
+ End If
+ End With
+ End Function
+ Friend Sub TooManyRequests(ByVal Catched As Boolean)
+ With DownloadingErrorDate
+ If Catched Then
+ If Not ACheck(Of Date)(.Value) Then
+ .Value = Now
+ If TooManyRequestsReadyForCatch Then
+ LastApplyingValue = If(LastApplyingValue, 0) + 10
+ TooManyRequestsReadyForCatch = False
+ MyMainLOG = $"Instagram downloading error: too many requests. Try again after {If(LastApplyingValue, 10)} minutes..."
+ End If
+ End If
+ Else
+ .Value = Nothing
+ LastApplyingValue = Nothing
+ TooManyRequestsReadyForCatch = True
+ End If
+ End With
+ End Sub
+#End Region
+#Region "LastRequestsCount, Label"
Private ReadOnly Property LastDownloadDate As PropertyValue
Private ReadOnly Property LastRequestsCount As PropertyValue
+
+ Private ReadOnly Property LastRequestsCountLabel As PropertyValue
Private ReadOnly MyLastRequests As Dictionary(Of Date, Integer)
Private ReadOnly Property MyLastRequestsDate As Date
Get
@@ -321,36 +389,6 @@ Namespace API.Instagram
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[SiteSettings.Instagram.RefreshMyLastRequests]")
End Try
End Sub
-
- Private ReadOnly Property LastRequestsCountLabel As PropertyValue
- Private TooManyRequestsReadyForCatch As Boolean = True
- Friend Function GetWaitDate() As Date
- With DownloadingErrorDate
- If ACheck(Of Date)(.Value) Then
- Return CDate(.Value).AddMinutes(If(LastApplyingValue, 10))
- Else
- Return Now
- End If
- End With
- End Function
- Friend Sub TooManyRequests(ByVal Catched As Boolean)
- With DownloadingErrorDate
- If Catched Then
- If Not ACheck(Of Date)(.Value) Then
- .Value = Now
- If TooManyRequestsReadyForCatch Then
- LastApplyingValue = If(LastApplyingValue, 0) + 10
- TooManyRequestsReadyForCatch = False
- MyMainLOG = $"Instagram downloading error: too many requests. Try again after {If(LastApplyingValue, 10)} minutes..."
- End If
- End If
- Else
- .Value = Nothing
- LastApplyingValue = Nothing
- TooManyRequestsReadyForCatch = True
- End If
- End With
- End Sub
#End Region
#End Region
#Region "Initializer"
@@ -427,9 +465,6 @@ Namespace API.Instagram
DownloadTagged = New PropertyValue(False)
DownloadTagged_Def = New PropertyValue(DownloadTagged.Value, GetType(Boolean))
- DownDetectorValue = New PropertyValue(20)
- DownDetectorValueProvider = New TimersChecker(-1)
- DownDetectorValueAddToLog = New PropertyValue(False)
RequestsWaitTimer_Any = New PropertyValue(1000)
RequestsWaitTimer_AnyProvider = New TimersChecker(0)
RequestsWaitTimer = New PropertyValue(1000)
@@ -451,6 +486,15 @@ Namespace API.Instagram
GetTagged_VideoPic = New PropertyValue(True)
GetSavedPosts_VideoPic = New PropertyValue(True)
PutImageVideoFolder = New PropertyValue(False)
+
+ SkipErrors = New PropertyValue(ErrorsDefault)
+ SkipErrors_AddToLog = New PropertyValue(True)
+ SkipErrors_AddToLog_Silent = New PropertyValue(String.Empty, GetType(String))
+ IgnoreStoriesDownloadingErrors = New PropertyValue(False)
+
+ DownDetectorValue = New PropertyValue(20)
+ DownDetectorValueProvider = New TimersChecker(-1)
+ DownDetectorValueAddToLog = New PropertyValue(False)
TaggedNotifyLimit = New PropertyValue(200)
TaggedNotifyLimitProvider = New TaggedNotifyLimitChecker
diff --git a/SCrawler/API/Instagram/UserData.vb b/SCrawler/API/Instagram/UserData.vb
index 145faa1..d9d8323 100644
--- a/SCrawler/API/Instagram/UserData.vb
+++ b/SCrawler/API/Instagram/UserData.vb
@@ -38,6 +38,8 @@ Namespace API.Instagram
Private Const Name_PutImageVideoFolder As String = "PutImageVideoFolder"
Private Const Name_TaggedChecked As String = "TaggedChecked"
Private Const Name_NameTrue As String = "NameTrue"
+ Private Const Name_ForceUpdateUserName As String = "ForceUpdateUserName"
+ Private Const Name_ForceUpdateUserInfo As String = "ForceUpdateUserInfo"
#End Region
#Region "Declarations"
Protected Structure PostKV : Implements IEContainerProvider
@@ -118,6 +120,8 @@ Namespace API.Instagram
End Get
End Property
Private UserNameRequested As Boolean = False
+ Friend Property ForceUpdateUserName As Boolean = False
+ Friend Property ForceUpdateUserInfo As Boolean = False
#End Region
#Region "Loader"
Protected Overrides Sub LoadUserInformation_OptionalFields(ByRef Container As XmlFile, ByVal Loading As Boolean)
@@ -138,6 +142,8 @@ Namespace API.Instagram
GetTaggedData_VideoPic = .Value(Name_GetTagged_VideoPic).FromXML(Of Boolean)(CBool(MySiteSettings.GetTagged_VideoPic.Value))
TaggedChecked = .Value(Name_TaggedChecked).FromXML(Of Boolean)(False)
_NameTrue = .Value(Name_NameTrue)
+ ForceUpdateUserName = .Value(Name_ForceUpdateUserName).FromXML(Of Boolean)(False)
+ ForceUpdateUserInfo = .Value(Name_ForceUpdateUserInfo).FromXML(Of Boolean)(False)
Else
.Add(Name_LastCursor, LastCursor)
.Add(Name_FirstLoadingDone, FirstLoadingDone.BoolToInteger)
@@ -154,6 +160,8 @@ Namespace API.Instagram
.Add(Name_PutImageVideoFolder, PutImageVideoFolder.BoolToInteger)
.Add(Name_TaggedChecked, TaggedChecked.BoolToInteger)
.Add(Name_NameTrue, _NameTrue)
+ .Add(Name_ForceUpdateUserName, ForceUpdateUserName.BoolToInteger)
+ .Add(Name_ForceUpdateUserInfo, ForceUpdateUserInfo.BoolToInteger)
End If
End With
End Sub
@@ -180,6 +188,8 @@ Namespace API.Instagram
PutImageVideoFolder = .PutImageVideoFolder
_NameTrue = .UserName
+ ForceUpdateUserName = .ForceUpdateUserName
+ ForceUpdateUserInfo = .ForceUpdateUserInfo
End With
End If
End Sub
@@ -197,15 +207,32 @@ Namespace API.Instagram
Private WwwClaimUse As Boolean = True
Private E560Thrown As Boolean = False
Friend Err5xx As Integer = -1
+ Private _ErrHandling As Integer = -1
+ Private Property ErrHandling As Integer
+ Get
+ Return _ErrHandling
+ End Get
+ Set(ByVal ErrCode As Integer)
+ _ErrHandling = ErrCode
+ Err5xx = ErrCode
+ End Set
+ End Property
+ Private ErrHandlingLog As Boolean = True
+ Private ErrHandlingSection As Sections = Sections.Timeline
+ Private Const ErrHandlingValue As Integer = 100
+ Private Const ErrHandlingValueStories As Integer = 150
Private Class ExitException : Inherits Exception
Friend Property Is560 As Boolean = False
Friend Property IsTokens As Boolean = False
Friend Property TokensData As String = String.Empty
Friend Shared Sub Throw560(ByRef Source As UserData)
- If Not Source.E560Thrown Then
- MyMainLOG = $"{Source.ToStringForLog}: ({IIf(Source.Err5xx > 0, Source.Err5xx, 560)}) Download skipped until next session"
- Source.E560Thrown = True
- End If
+ With Source
+ If Not .E560Thrown Then
+ If .ErrHandling = -1 Or .ErrHandlingLog Then _
+ MyMainLOG = $"{ .ToStringForLog}: ({IIf(.Err5xx > 0, .Err5xx, 560)}) Download skipped {If(.ErrHandling = -1, "until next session", $"({ .ErrHandlingSection})")}"
+ .E560Thrown = True
+ End If
+ End With
Throw New ExitException With {.Is560 = True}
End Sub
Friend Shared Sub ThrowTokens(ByRef Source As UserData, ByVal Data As String)
@@ -366,6 +393,9 @@ Namespace API.Instagram
Dim errorFound As Boolean = False
Try
Err5xx = -1
+ ErrHandling = -1
+ ErrHandlingLog = True
+ ErrHandlingSection = Sections.Timeline
_Limit = If(DownloadTopCount, -1)
_TotalPostsParsed = 0
LoadSavePostsKV(True)
@@ -638,6 +668,8 @@ Namespace API.Instagram
If Not ValidateBaseTokens() Then GetPageTokens()
If Not ValidateBaseTokens(TokensErrData) Then ValidateBaseTokens_Error(TokensErrData)
End If
+ If ForceUpdateUserName Then GetUserNameById()
+ If ForceUpdateUserInfo Then GetUserData()
End If
'Create query
@@ -720,6 +752,14 @@ Namespace API.Instagram
Select Case Section
Case Sections.Timeline
With n
+ If If(n("user")?.Count, 0) = 0 And Cursor.IsEmptyString Then
+ If Not UserNameRequested Then
+ ForceUpdateUserName = True
+ Continue Do
+ Else
+ UserExists = False
+ End If
+ End If
HasNextPage = .Value("more_available").FromXML(Of Boolean)(False)
EndCursor = .Value("next_max_id")
If If(.Item("items")?.Count, 0) > 0 Then
@@ -803,6 +843,11 @@ NextPageBlock:
Throw eex
Catch ex As Exception
dValue = ProcessException(ex, Token, $"data downloading error [{URL}]",, Section, False)
+ If dValue = ErrHandlingValue Then
+ ExitException.Throw560(Me)
+ ElseIf dValue = ErrHandlingValueStories Then
+ Exit Sub
+ End If
End Try
Loop
Catch jsonNull2 As JsonDocumentException When jsonNull2.State = WebDocumentEventArgs.States.Error And
@@ -1143,6 +1188,7 @@ NextPageBlock:
#Region "GetUserId, GetUserName"
Private Sub GetUserData()
Dim __idFound As Boolean = False
+ If ForceUpdateUserInfo Then ForceUpdateUserInfo = False : _ForceSaveUserInfo = True
Try
ChangeResponserMode(False)
UpdateRequestNumber()
@@ -1161,6 +1207,7 @@ NextPageBlock:
If Not eUrl.IsEmptyString AndAlso (descr.IsEmptyString OrElse Not descr.Contains(eUrl)) Then descr.StringAppendLine(eUrl)
UserDescriptionUpdate(descr)
Dim f As New SFile With {.Path = DownloadContentDefault_GetRootDir(), .Name = "ProfilePicture", .Extension = "jpg"}
+ f = SFile.IndexReindex(f)
If Not f.Exists Then
Dim profilePicture$ = .Value("profile_pic_url_hd")
If profilePicture.IsEmptyString OrElse Not GetWebFile(profilePicture, f, EDP.ReturnValue) Then
@@ -1187,6 +1234,7 @@ NextPageBlock:
End Sub
Private Function GetUserNameById() As Boolean
UserNameRequested = True
+ If ForceUpdateUserName Then ForceUpdateUserName = False : _ForceSaveUserInfo = True
Try
If Not ID.IsEmptyString Then
UpdateRequestNumber()
@@ -1203,7 +1251,7 @@ NextPageBlock:
Dim descr$ = $"Username changed from '{oldName}' to '{newName}' ({Now.ToStringDate(ADateTime.Formats.BaseDateTime)})!"
descr.StringAppendLine(UserDescription)
UserDescription = descr
- _ForceSaveUserData = True
+ _ForceSaveUserInfo = True
End If
Return True
End If
@@ -1282,20 +1330,15 @@ NextPageBlock:
End If
End Sub
Private Function GetStoriesList() As List(Of String)
- Try
- UpdateRequestNumber()
- Dim r$ = Responser.GetResponse($"https://i.instagram.com/api/v1/highlights/{ID}/highlights_tray/",, EDP.ThrowException)
- If Not r.IsEmptyString Then
- Dim ee As New ErrorsDescriber(EDP.ReturnValue) With {.DeclaredMessage = New MMessage($"{ToStringForLog()}:")}
- Using j As EContainer = JsonDocument.Parse(r, ee).XmlIfNothing()("tray").XmlIfNothing
- If j.Count > 0 Then Return j.Select(Function(jj) jj.Value("id").Replace("highlight:", String.Empty)).ListIfNothing
- End Using
- End If
- Return Nothing
- Catch ex As Exception
- DownloadingException(ex, "API.Instagram.GetStoriesList", False, Sections.Stories)
- Return Nothing
- End Try
+ UpdateRequestNumber()
+ Dim r$ = Responser.GetResponse($"https://i.instagram.com/api/v1/highlights/{ID}/highlights_tray/",, EDP.ThrowException)
+ If Not r.IsEmptyString Then
+ Dim ee As New ErrorsDescriber(EDP.ReturnValue) With {.DeclaredMessage = New MMessage($"{ToStringForLog()}:")}
+ Using j As EContainer = JsonDocument.Parse(r, ee).XmlIfNothing()("tray").XmlIfNothing
+ If j.Count > 0 Then Return j.Select(Function(jj) jj.Value("id").Replace("highlight:", String.Empty)).ListIfNothing
+ End Using
+ End If
+ Return Nothing
End Function
#End Region
#Region "Download content"
@@ -1341,11 +1384,26 @@ NextPageBlock:
MyMainLOG = $"Number of requests before error 429: {RequestsCount}"
Return 1
ElseIf Responser.StatusCode = 560 Or Responser.StatusCode = HttpStatusCode.InternalServerError Then '560, 500
- MySiteSettings.SkipUntilNextSession = True
- Err5xx = Responser.StatusCode
+ If Responser.StatusCode = 560 And s = Sections.Stories And MySiteSettings.IgnoreStoriesDownloadingErrors Then
+ MyMainLOG = $"{ToStringForLog()}: Stories downloading skipped (560)"
+ Return ErrHandlingValueStories
+ Else
+ MySiteSettings.SkipUntilNextSession = True
+ Err5xx = Responser.StatusCode
+ End If
ElseIf Responser.StatusCode = -1 And Responser.Status = -1 Then
MySiteSettings.SkipUntilNextSession = True
Err5xx = Responser.StatusCode
+ ElseIf MySiteSettings.ErrorSpecialHandling(Responser.StatusCode) Then
+ ErrHandlingLog = MySiteSettings.ErrorSpecialHandling_AddToLog(Responser.StatusCode)
+ ErrHandling = Responser.StatusCode
+ ErrHandlingSection = s
+ Return ErrHandlingValue
+ ElseIf MySiteSettings.ErrorSpecialHandling(Responser.Status) Then
+ ErrHandlingLog = MySiteSettings.ErrorSpecialHandling_AddToLog(Responser.Status)
+ ErrHandling = Responser.Status
+ ErrHandlingSection = s
+ Return ErrHandlingValue
Else
MyMainLOG = $"Something is wrong. Your credentials may have expired [{CInt(Responser.StatusCode)}/{CInt(Responser.Status)}]: {ToString()} [{s}]"
DisableSection(s)
diff --git a/SCrawler/API/OnlyFans/SiteSettings.vb b/SCrawler/API/OnlyFans/SiteSettings.vb
index a2ebed7..d26d37b 100644
--- a/SCrawler/API/OnlyFans/SiteSettings.vb
+++ b/SCrawler/API/OnlyFans/SiteSettings.vb
@@ -19,6 +19,7 @@ Namespace API.OnlyFans
#Region "Declarations"
#Region "Categories"
Private Const CAT_OFS As String = "OF-Scraper support"
+ Private Const CAT_ERRORS As String = "Errors"
#End Region
#Region "Options"
@@ -73,6 +74,19 @@ Namespace API.OnlyFans
Return String.Empty
End Function
#End Region
+#Region "Errors"
+ Private ReadOnly Property UpdateRules401_XML As PropertyValue
+
+ Friend ReadOnly Property UpdateRules401 As PropertyValue
+ Get
+ If Not DefaultInstance Is Nothing Then
+ Return DirectCast(DefaultInstance, SiteSettings).UpdateRules401_XML
+ Else
+ Return UpdateRules401_XML
+ End If
+ End Get
+ End Property
+#End Region
#Region "OFScraper"
Private ReadOnly Property OFScraperPath_XML As PropertyValue
@@ -178,6 +192,8 @@ Namespace API.OnlyFans
KeyModeDefault_XML = New PropertyValue(KeyModeDefault_Default)
Keydb_Api_XML = New PropertyValue(String.Empty, GetType(String))
+ UpdateRules401_XML = New PropertyValue(False)
+
UserRegex = RParams.DMS(String.Format(UserRegexDefaultPattern, "onlyfans.com/"), 1, EDP.ReturnValue)
UrlPatternUser = "https://onlyfans.com/{0}"
ImageVideoContains = "onlyfans.com"
diff --git a/SCrawler/API/OnlyFans/UserData.vb b/SCrawler/API/OnlyFans/UserData.vb
index 050641d..cbcd09b 100644
--- a/SCrawler/API/OnlyFans/UserData.vb
+++ b/SCrawler/API/OnlyFans/UserData.vb
@@ -760,14 +760,20 @@ Namespace API.OnlyFans
Private _DownloadingException_AuthFileUpdate As Boolean = False
Protected Overrides Function DownloadingException(ByVal ex As Exception, ByVal Message As String, Optional ByVal FromPE As Boolean = False,
Optional ByVal EObj As Object = Nothing) As Integer
- If Responser.StatusCode = Net.HttpStatusCode.BadRequest Then '400
+ If Responser.StatusCode = Net.HttpStatusCode.BadRequest Or
+ (Responser.StatusCode = Net.HttpStatusCode.Unauthorized And CBool(MySettings.UpdateRules401.Value)) Then '400, [401]
If Not _DownloadingException_AuthFileUpdate AndAlso Rules.Update(True) Then
_DownloadingException_AuthFileUpdate = True
Return 2
Else
MySettings.SessionAborted = True
MyMainLOG = $"{ToStringForLog()} [{CInt(Responser.StatusCode)}]: OnlyFans credentials expired"
- Return 1
+ If Responser.StatusCode = Net.HttpStatusCode.BadRequest Then
+ Return 1
+ Else
+ MyMainLOG = $"{ToStringForLog()}: Rules updated (401)"
+ Return 3
+ End If
End If
ElseIf Responser.StatusCode = Net.HttpStatusCode.NotFound Then '404
UserExists = False
diff --git a/SCrawler/API/UserDataBind.vb b/SCrawler/API/UserDataBind.vb
index d8f4ef4..ce6a1ac 100644
--- a/SCrawler/API/UserDataBind.vb
+++ b/SCrawler/API/UserDataBind.vb
@@ -299,6 +299,24 @@ Namespace API
End If
End Get
End Property
+ Friend ReadOnly Property ContextDownLimit As ToolStripMenuItem()
+ Get
+ If Count > 0 Then
+ Return Collections.Select(Function(c) DirectCast(c, UserDataBase).BTT_CONTEXT_DOWN_LIMIT).ToArray
+ Else
+ Return New ToolStripMenuItem() {}
+ End If
+ End Get
+ End Property
+ Friend ReadOnly Property ContextDownDate As ToolStripMenuItem()
+ Get
+ If Count > 0 Then
+ Return Collections.Select(Function(c) DirectCast(c, UserDataBase).BTT_CONTEXT_DOWN_DATE).ToArray
+ Else
+ Return New ToolStripMenuItem() {}
+ End If
+ End Get
+ End Property
Friend ReadOnly Property ContextEdit As ToolStripMenuItem()
Get
If Count > 0 Then
diff --git a/SCrawler/API/YouTube/UserData.vb b/SCrawler/API/YouTube/UserData.vb
index 39b1d68..70492db 100644
--- a/SCrawler/API/YouTube/UserData.vb
+++ b/SCrawler/API/YouTube/UserData.vb
@@ -345,6 +345,8 @@ Namespace API.YouTube
If resp.Status = Net.WebExceptionStatus.ConnectFailure And Round < 2 Then
Thread.Sleep(1000)
DownloadCommunity(Cursor, Token, Round + 1)
+ ElseIf resp.StatusCode = Net.HttpStatusCode.NotFound Then
+ MyMainLOG = $"{ToStringForLog()} {errMsg} (not found)"
Else
Throw resp.ErrorException
End If
diff --git a/SCrawler/Editors/GlobalSettingsForm.Designer.vb b/SCrawler/Editors/GlobalSettingsForm.Designer.vb
index 74803f3..3bc8e6f 100644
--- a/SCrawler/Editors/GlobalSettingsForm.Designer.vb
+++ b/SCrawler/Editors/GlobalSettingsForm.Designer.vb
@@ -24,16 +24,16 @@ Namespace Editors
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim TP_BASIS As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton39 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ 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 ActionButton40 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TP_IMAGES As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton41 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton42 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton43 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton44 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton45 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton46 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 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 ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim 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
@@ -46,58 +46,58 @@ Namespace Editors
Dim TP_CHANNELS As System.Windows.Forms.TableLayoutPanel
Dim TAB_BEHAVIOR As System.Windows.Forms.TabPage
Dim TP_BEHAVIOR As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton47 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton48 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton10 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TP_OPEN_INFO As System.Windows.Forms.TableLayoutPanel
Dim TP_OPEN_PROGRESS As System.Windows.Forms.TableLayoutPanel
Dim TP_BEHAVIOR_F6 As System.Windows.Forms.TableLayoutPanel
Dim TAB_DOWN As System.Windows.Forms.TabPage
Dim TP_DOWNLOADING As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton49 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton50 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton11 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton12 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TP_MISSING_DATA As System.Windows.Forms.TableLayoutPanel
Dim TAB_FEED As System.Windows.Forms.TabPage
Dim TP_FEED As System.Windows.Forms.TableLayoutPanel
Dim TP_FEED_IMG_COUNT As System.Windows.Forms.TableLayoutPanel
Dim TP_FEED_SES As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton51 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton52 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton13 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton14 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim TP_FEED_SPEC_SEARCH As System.Windows.Forms.TableLayoutPanel
Dim TAB_NOTIFY As System.Windows.Forms.TabPage
Dim TP_NOTIFY_MAIN As System.Windows.Forms.TableLayoutPanel
Dim TP_ENVIR As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton53 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton54 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton55 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton56 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton57 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton58 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton59 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton60 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton61 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton62 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton63 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton64 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton65 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton66 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton15 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton16 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton17 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton18 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton19 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton20 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton21 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton22 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton23 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton24 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton25 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton26 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton27 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton28 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TAB_STD As System.Windows.Forms.TabPage
Dim TP_STD As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton67 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ListColumn3 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
- Dim ListColumn4 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
+ Dim ActionButton29 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ListColumn1 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
+ Dim ListColumn2 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
Dim TAB_DESIGN As System.Windows.Forms.TabPage
Dim TP_DESIGN As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton68 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton69 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton70 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton71 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton30 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton31 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton32 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton33 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TP_HEADERS_DEF As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton72 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton73 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton74 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton75 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton76 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton34 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton35 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton36 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton37 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton38 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TAB_HEADERS As System.Windows.Forms.TabPage
- Dim TP_FEED_SPEC_SEARCH As System.Windows.Forms.TableLayoutPanel
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
@@ -151,6 +151,8 @@ Namespace Editors
Me.CH_FEED_UP_FILE_LOC_MOVE = New System.Windows.Forms.CheckBox()
Me.CH_DOWN_ALL_F6_NOTIFY = New System.Windows.Forms.CheckBox()
Me.CH_DOWN_ALL_NOTIFY = New System.Windows.Forms.CheckBox()
+ Me.CH_FEED_SPEC_SEARCH = New System.Windows.Forms.CheckBox()
+ Me.CH_FEED_SPEC_SEARCH_DEEP = New System.Windows.Forms.CheckBox()
Me.TXT_CHANNELS_ROWS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_CHANNELS_COLUMNS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CH_DOWN_IMAGES_NATIVE = New System.Windows.Forms.CheckBox()
@@ -210,8 +212,7 @@ Namespace Editors
Me.TAB_MAIN = New System.Windows.Forms.TabControl()
Me.TAB_ENVIR = New System.Windows.Forms.TabPage()
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
- Me.CH_FEED_SPEC_SEARCH = New System.Windows.Forms.CheckBox()
- Me.CH_FEED_SPEC_SEARCH_DEEP = New System.Windows.Forms.CheckBox()
+ Me.CH_FEED_OPEN_CTRLF = New System.Windows.Forms.CheckBox()
TP_BASIS = New System.Windows.Forms.TableLayoutPanel()
TP_IMAGES = New System.Windows.Forms.TableLayoutPanel()
TP_FILE_NAME = New System.Windows.Forms.TableLayoutPanel()
@@ -236,6 +237,7 @@ Namespace Editors
TP_FEED = New System.Windows.Forms.TableLayoutPanel()
TP_FEED_IMG_COUNT = New System.Windows.Forms.TableLayoutPanel()
TP_FEED_SES = New System.Windows.Forms.TableLayoutPanel()
+ TP_FEED_SPEC_SEARCH = New System.Windows.Forms.TableLayoutPanel()
TAB_NOTIFY = New System.Windows.Forms.TabPage()
TP_NOTIFY_MAIN = New System.Windows.Forms.TableLayoutPanel()
TP_ENVIR = New System.Windows.Forms.TableLayoutPanel()
@@ -245,7 +247,6 @@ Namespace Editors
TP_DESIGN = New System.Windows.Forms.TableLayoutPanel()
TP_HEADERS_DEF = New System.Windows.Forms.TableLayoutPanel()
TAB_HEADERS = New System.Windows.Forms.TabPage()
- TP_FEED_SPEC_SEARCH = New System.Windows.Forms.TableLayoutPanel()
TP_BASIS.SuspendLayout()
CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
TP_IMAGES.SuspendLayout()
@@ -290,6 +291,7 @@ Namespace Editors
TP_FEED_SES.SuspendLayout()
CType(Me.NUM_FEED_STORE_SESSION_DATA, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.NUM_FEED_SES_CURR_LOAD_LAST, System.ComponentModel.ISupportInitialize).BeginInit()
+ TP_FEED_SPEC_SEARCH.SuspendLayout()
TAB_NOTIFY.SuspendLayout()
TP_NOTIFY_MAIN.SuspendLayout()
TP_ENVIR.SuspendLayout()
@@ -318,7 +320,6 @@ Namespace Editors
Me.TAB_ENVIR.SuspendLayout()
Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
Me.CONTAINER_MAIN.SuspendLayout()
- TP_FEED_SPEC_SEARCH.SuspendLayout()
Me.SuspendLayout()
'
'TP_BASIS
@@ -349,17 +350,17 @@ Namespace Editors
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.Size = New System.Drawing.Size(615, 393)
+ TP_BASIS.Size = New System.Drawing.Size(615, 418)
TP_BASIS.TabIndex = 0
'
'TXT_GLOBAL_PATH
'
- ActionButton39.BackgroundImage = CType(resources.GetObject("ActionButton39.BackgroundImage"), System.Drawing.Image)
- ActionButton39.Name = "Open"
- ActionButton40.BackgroundImage = CType(resources.GetObject("ActionButton40.BackgroundImage"), System.Drawing.Image)
- ActionButton40.Name = "Clear"
- Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton39)
- Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton40)
+ ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
+ ActionButton1.Name = "Open"
+ ActionButton2.BackgroundImage = CType(resources.GetObject("ActionButton2.BackgroundImage"), System.Drawing.Image)
+ ActionButton2.Name = "Clear"
+ Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton1)
+ Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton2)
Me.TXT_GLOBAL_PATH.CaptionText = "Data Path"
Me.TXT_GLOBAL_PATH.CaptionToolTipEnabled = True
Me.TXT_GLOBAL_PATH.CaptionToolTipText = "Root path for storing users' data"
@@ -420,9 +421,9 @@ Namespace Editors
'
'TXT_COLLECTIONS_PATH
'
- ActionButton41.BackgroundImage = CType(resources.GetObject("ActionButton41.BackgroundImage"), System.Drawing.Image)
- ActionButton41.Name = "Clear"
- Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton41)
+ ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image)
+ ActionButton3.Name = "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)"
@@ -434,10 +435,10 @@ Namespace Editors
'
'TXT_MAX_JOBS_USERS
'
- ActionButton42.BackgroundImage = CType(resources.GetObject("ActionButton42.BackgroundImage"), System.Drawing.Image)
- ActionButton42.Name = "Refresh"
- ActionButton42.ToolTipText = "Set to default"
- Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton42)
+ ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image)
+ ActionButton4.Name = "Refresh"
+ ActionButton4.ToolTipText = "Set to default"
+ Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton4)
Me.TXT_MAX_JOBS_USERS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
Me.TXT_MAX_JOBS_USERS.CaptionText = "Maximum downloading tasks of users"
Me.TXT_MAX_JOBS_USERS.CaptionWidth = 50.0R
@@ -453,10 +454,10 @@ Namespace Editors
'
'TXT_MAX_JOBS_CHANNELS
'
- ActionButton43.BackgroundImage = CType(resources.GetObject("ActionButton43.BackgroundImage"), System.Drawing.Image)
- ActionButton43.Name = "Refresh"
- ActionButton43.ToolTipText = "Set to default"
- Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton43)
+ ActionButton5.BackgroundImage = CType(resources.GetObject("ActionButton5.BackgroundImage"), System.Drawing.Image)
+ ActionButton5.Name = "Refresh"
+ ActionButton5.ToolTipText = "Set to default"
+ Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton5)
Me.TXT_MAX_JOBS_CHANNELS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
Me.TXT_MAX_JOBS_CHANNELS.CaptionText = "Maximum downloading tasks of channels"
Me.TXT_MAX_JOBS_CHANNELS.CaptionWidth = 50.0R
@@ -483,9 +484,9 @@ Namespace Editors
'
'TXT_IMGUR_CLIENT_ID
'
- ActionButton44.BackgroundImage = CType(resources.GetObject("ActionButton44.BackgroundImage"), System.Drawing.Image)
- ActionButton44.Name = "Clear"
- Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton44)
+ ActionButton6.BackgroundImage = CType(resources.GetObject("ActionButton6.BackgroundImage"), System.Drawing.Image)
+ ActionButton6.Name = "Clear"
+ Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton6)
Me.TXT_IMGUR_CLIENT_ID.CaptionText = "Imgur Client ID"
Me.TXT_IMGUR_CLIENT_ID.Dock = System.Windows.Forms.DockStyle.Fill
Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 204)
@@ -495,14 +496,14 @@ Namespace Editors
'
'TXT_USER_AGENT
'
- ActionButton45.BackgroundImage = CType(resources.GetObject("ActionButton45.BackgroundImage"), System.Drawing.Image)
- ActionButton45.Name = "Refresh"
- ActionButton45.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton46.BackgroundImage = CType(resources.GetObject("ActionButton46.BackgroundImage"), System.Drawing.Image)
- ActionButton46.Name = "Clear"
- ActionButton46.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_USER_AGENT.Buttons.Add(ActionButton45)
- Me.TXT_USER_AGENT.Buttons.Add(ActionButton46)
+ ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image)
+ ActionButton7.Name = "Refresh"
+ ActionButton7.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image)
+ ActionButton8.Name = "Clear"
+ ActionButton8.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_USER_AGENT.Buttons.Add(ActionButton7)
+ Me.TXT_USER_AGENT.Buttons.Add(ActionButton8)
Me.TXT_USER_AGENT.CaptionText = "UserAgent"
Me.TXT_USER_AGENT.CaptionToolTipEnabled = True
Me.TXT_USER_AGENT.CaptionToolTipText = "Default user agent to use in requests"
@@ -1105,6 +1106,31 @@ Namespace Editors
TT_MAIN.SetToolTip(Me.CH_DOWN_ALL_NOTIFY, "Request confirmation to download all users anyway")
Me.CH_DOWN_ALL_NOTIFY.UseVisualStyleBackColor = True
'
+ 'CH_FEED_SPEC_SEARCH
+ '
+ Me.CH_FEED_SPEC_SEARCH.AutoSize = True
+ Me.CH_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(3, 3)
+ Me.CH_FEED_SPEC_SEARCH.Name = "CH_FEED_SPEC_SEARCH"
+ Me.CH_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(303, 19)
+ Me.CH_FEED_SPEC_SEARCH.TabIndex = 0
+ Me.CH_FEED_SPEC_SEARCH.Text = "Search missing files (special feeds)"
+ TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH, "Search for missing file in the entire user folder")
+ Me.CH_FEED_SPEC_SEARCH.UseVisualStyleBackColor = True
+ '
+ 'CH_FEED_SPEC_SEARCH_DEEP
+ '
+ Me.CH_FEED_SPEC_SEARCH_DEEP.AutoSize = True
+ Me.CH_FEED_SPEC_SEARCH_DEEP.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_FEED_SPEC_SEARCH_DEEP.Location = New System.Drawing.Point(312, 3)
+ Me.CH_FEED_SPEC_SEARCH_DEEP.Name = "CH_FEED_SPEC_SEARCH_DEEP"
+ Me.CH_FEED_SPEC_SEARCH_DEEP.Size = New System.Drawing.Size(304, 19)
+ Me.CH_FEED_SPEC_SEARCH_DEEP.TabIndex = 1
+ Me.CH_FEED_SPEC_SEARCH_DEEP.Text = "Search missing files (special feeds): deep search"
+ TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH_DEEP, "Deep search means that the missing file will be searched in other users' location" &
+ "s as well.")
+ Me.CH_FEED_SPEC_SEARCH_DEEP.UseVisualStyleBackColor = True
+ '
'TP_CHANNELS_IMGS
'
TP_CHANNELS_IMGS.ColumnCount = 2
@@ -1156,7 +1182,7 @@ Namespace Editors
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(621, 399)
+ TAB_BASIS.Size = New System.Drawing.Size(621, 424)
TAB_BASIS.TabIndex = 0
TAB_BASIS.Text = "Basis"
'
@@ -1166,7 +1192,7 @@ Namespace Editors
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(621, 399)
+ TAB_DEFAULTS.Size = New System.Drawing.Size(621, 424)
TAB_DEFAULTS.TabIndex = 1
TAB_DEFAULTS.Text = "Defaults"
'
@@ -1192,7 +1218,7 @@ Namespace Editors
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(615, 393)
+ TP_DEFS.Size = New System.Drawing.Size(615, 418)
TP_DEFS.TabIndex = 0
'
'CH_DOWN_IMAGES_NATIVE
@@ -1212,7 +1238,7 @@ Namespace Editors
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(621, 399)
+ TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(621, 424)
TAB_DEFS_CHANNELS.TabIndex = 4
TAB_DEFS_CHANNELS.Text = "Channels"
'
@@ -1238,7 +1264,7 @@ Namespace Editors
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_CHANNELS.Size = New System.Drawing.Size(615, 393)
+ TP_CHANNELS.Size = New System.Drawing.Size(615, 418)
TP_CHANNELS.TabIndex = 0
'
'TXT_CHANNEL_USER_POST_LIMIT
@@ -1277,7 +1303,7 @@ Namespace Editors
TAB_BEHAVIOR.Controls.Add(TP_BEHAVIOR)
TAB_BEHAVIOR.Location = New System.Drawing.Point(4, 22)
TAB_BEHAVIOR.Name = "TAB_BEHAVIOR"
- TAB_BEHAVIOR.Size = New System.Drawing.Size(621, 399)
+ TAB_BEHAVIOR.Size = New System.Drawing.Size(621, 424)
TAB_BEHAVIOR.TabIndex = 5
TAB_BEHAVIOR.Text = "Behavior"
'
@@ -1297,10 +1323,11 @@ Namespace Editors
TP_BEHAVIOR.Controls.Add(TP_BEHAVIOR_F6, 0, 8)
TP_BEHAVIOR.Controls.Add(Me.TXT_SCHEDULER_SCRIPT, 0, 9)
TP_BEHAVIOR.Controls.Add(Me.CH_SCHEDULER_SCRIPT_EX_MANUAL, 0, 10)
+ TP_BEHAVIOR.Controls.Add(Me.CH_FEED_OPEN_CTRLF, 0, 11)
TP_BEHAVIOR.Dock = System.Windows.Forms.DockStyle.Fill
TP_BEHAVIOR.Location = New System.Drawing.Point(0, 0)
TP_BEHAVIOR.Name = "TP_BEHAVIOR"
- TP_BEHAVIOR.RowCount = 12
+ TP_BEHAVIOR.RowCount = 13
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
@@ -1312,18 +1339,19 @@ Namespace Editors
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_BEHAVIOR.Size = New System.Drawing.Size(621, 399)
+ TP_BEHAVIOR.Size = New System.Drawing.Size(621, 424)
TP_BEHAVIOR.TabIndex = 0
'
'TXT_FOLDER_CMD
'
Me.TXT_FOLDER_CMD.AutoShowClearButton = True
- ActionButton47.BackgroundImage = CType(resources.GetObject("ActionButton47.BackgroundImage"), System.Drawing.Image)
- ActionButton47.Enabled = False
- ActionButton47.Name = "Clear"
- ActionButton47.Visible = False
- Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton47)
+ ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image)
+ ActionButton9.Enabled = False
+ ActionButton9.Name = "Clear"
+ ActionButton9.Visible = False
+ Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton9)
Me.TXT_FOLDER_CMD.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
Me.TXT_FOLDER_CMD.CaptionText = "Folder cmd"
Me.TXT_FOLDER_CMD.CaptionToolTipEnabled = True
@@ -1362,11 +1390,11 @@ Namespace Editors
'TXT_CLOSE_SCRIPT
'
Me.TXT_CLOSE_SCRIPT.AutoShowClearButton = True
- ActionButton48.BackgroundImage = CType(resources.GetObject("ActionButton48.BackgroundImage"), System.Drawing.Image)
- ActionButton48.Enabled = False
- ActionButton48.Name = "Clear"
- ActionButton48.Visible = False
- Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton48)
+ ActionButton10.BackgroundImage = CType(resources.GetObject("ActionButton10.BackgroundImage"), System.Drawing.Image)
+ ActionButton10.Enabled = False
+ ActionButton10.Name = "Clear"
+ ActionButton10.Visible = False
+ Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton10)
Me.TXT_CLOSE_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
Me.TXT_CLOSE_SCRIPT.CaptionText = "Close cmd"
Me.TXT_CLOSE_SCRIPT.CaptionToolTipEnabled = True
@@ -1509,7 +1537,7 @@ Namespace Editors
TAB_DOWN.Controls.Add(TP_DOWNLOADING)
TAB_DOWN.Location = New System.Drawing.Point(4, 22)
TAB_DOWN.Name = "TAB_DOWN"
- TAB_DOWN.Size = New System.Drawing.Size(621, 399)
+ TAB_DOWN.Size = New System.Drawing.Size(621, 424)
TAB_DOWN.TabIndex = 6
TAB_DOWN.Text = "Downloading"
'
@@ -1545,17 +1573,17 @@ Namespace Editors
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_DOWNLOADING.Size = New System.Drawing.Size(621, 399)
+ TP_DOWNLOADING.Size = New System.Drawing.Size(621, 424)
TP_DOWNLOADING.TabIndex = 1
'
'TXT_SCRIPT
'
- ActionButton49.BackgroundImage = CType(resources.GetObject("ActionButton49.BackgroundImage"), System.Drawing.Image)
- ActionButton49.Name = "Open"
- ActionButton50.BackgroundImage = CType(resources.GetObject("ActionButton50.BackgroundImage"), System.Drawing.Image)
- ActionButton50.Name = "Clear"
- Me.TXT_SCRIPT.Buttons.Add(ActionButton49)
- Me.TXT_SCRIPT.Buttons.Add(ActionButton50)
+ ActionButton11.BackgroundImage = CType(resources.GetObject("ActionButton11.BackgroundImage"), System.Drawing.Image)
+ ActionButton11.Name = "Open"
+ ActionButton12.BackgroundImage = CType(resources.GetObject("ActionButton12.BackgroundImage"), System.Drawing.Image)
+ ActionButton12.Name = "Clear"
+ Me.TXT_SCRIPT.Buttons.Add(ActionButton11)
+ Me.TXT_SCRIPT.Buttons.Add(ActionButton12)
Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
Me.TXT_SCRIPT.CaptionText = "Script"
Me.TXT_SCRIPT.CaptionToolTipEnabled = True
@@ -1649,7 +1677,7 @@ Namespace Editors
TAB_FEED.Controls.Add(TP_FEED)
TAB_FEED.Location = New System.Drawing.Point(4, 22)
TAB_FEED.Name = "TAB_FEED"
- TAB_FEED.Size = New System.Drawing.Size(621, 399)
+ TAB_FEED.Size = New System.Drawing.Size(621, 424)
TAB_FEED.TabIndex = 7
TAB_FEED.Text = "Feed"
'
@@ -1694,7 +1722,7 @@ Namespace Editors
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_FEED.Size = New System.Drawing.Size(621, 399)
+ TP_FEED.Size = New System.Drawing.Size(621, 424)
TP_FEED.TabIndex = 0
'
'TP_FEED_IMG_COUNT
@@ -1873,14 +1901,14 @@ Namespace Editors
'
'NUM_FEED_SES_CURR_LOAD_LAST
'
- ActionButton51.BackgroundImage = CType(resources.GetObject("ActionButton51.BackgroundImage"), System.Drawing.Image)
- ActionButton51.Name = "Refresh"
- ActionButton51.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton52.BackgroundImage = CType(resources.GetObject("ActionButton52.BackgroundImage"), System.Drawing.Image)
- ActionButton52.Name = "Clear"
- ActionButton52.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton51)
- Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton52)
+ ActionButton13.BackgroundImage = CType(resources.GetObject("ActionButton13.BackgroundImage"), System.Drawing.Image)
+ ActionButton13.Name = "Refresh"
+ ActionButton13.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton14.BackgroundImage = CType(resources.GetObject("ActionButton14.BackgroundImage"), System.Drawing.Image)
+ ActionButton14.Name = "Clear"
+ ActionButton14.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton13)
+ Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton14)
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionText = "Load last session"
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipEnabled = True
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText = resources.GetString("NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText")
@@ -1930,12 +1958,29 @@ Namespace Editors
Me.CH_FEED_ESC_TO_CLOSE.Text = "Use the 'Esc' key to close the form"
Me.CH_FEED_ESC_TO_CLOSE.UseVisualStyleBackColor = True
'
+ 'TP_FEED_SPEC_SEARCH
+ '
+ TP_FEED_SPEC_SEARCH.ColumnCount = 2
+ TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
+ TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
+ TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH, 0, 0)
+ TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH_DEEP, 1, 0)
+ TP_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
+ TP_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(1, 374)
+ TP_FEED_SPEC_SEARCH.Margin = New System.Windows.Forms.Padding(0)
+ TP_FEED_SPEC_SEARCH.Name = "TP_FEED_SPEC_SEARCH"
+ TP_FEED_SPEC_SEARCH.RowCount = 1
+ TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
+ TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(619, 25)
+ TP_FEED_SPEC_SEARCH.TabIndex = 14
+ '
'TAB_NOTIFY
'
TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN)
TAB_NOTIFY.Location = New System.Drawing.Point(4, 22)
TAB_NOTIFY.Name = "TAB_NOTIFY"
- TAB_NOTIFY.Size = New System.Drawing.Size(621, 399)
+ TAB_NOTIFY.Size = New System.Drawing.Size(621, 424)
TAB_NOTIFY.TabIndex = 8
TAB_NOTIFY.Text = "Notifications"
'
@@ -1967,7 +2012,7 @@ Namespace Editors
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_NOTIFY_MAIN.Size = New System.Drawing.Size(621, 399)
+ TP_NOTIFY_MAIN.Size = New System.Drawing.Size(621, 424)
TP_NOTIFY_MAIN.TabIndex = 0
'
'TP_ENVIR
@@ -1990,24 +2035,24 @@ Namespace Editors
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_ENVIR.Size = New System.Drawing.Size(621, 399)
+ TP_ENVIR.Size = New System.Drawing.Size(621, 424)
TP_ENVIR.TabIndex = 0
'
'TXT_YTDLP
'
- ActionButton53.BackgroundImage = CType(resources.GetObject("ActionButton53.BackgroundImage"), System.Drawing.Image)
- ActionButton53.Name = "Open"
- ActionButton53.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
- ActionButton54.BackgroundImage = CType(resources.GetObject("ActionButton54.BackgroundImage"), System.Drawing.Image)
- ActionButton54.Name = "Refresh"
- ActionButton54.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton54.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
- ActionButton55.BackgroundImage = CType(resources.GetObject("ActionButton55.BackgroundImage"), System.Drawing.Image)
- ActionButton55.Name = "Clear"
- ActionButton55.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_YTDLP.Buttons.Add(ActionButton53)
- Me.TXT_YTDLP.Buttons.Add(ActionButton54)
- Me.TXT_YTDLP.Buttons.Add(ActionButton55)
+ ActionButton15.BackgroundImage = CType(resources.GetObject("ActionButton15.BackgroundImage"), System.Drawing.Image)
+ ActionButton15.Name = "Open"
+ ActionButton15.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
+ ActionButton16.BackgroundImage = CType(resources.GetObject("ActionButton16.BackgroundImage"), System.Drawing.Image)
+ ActionButton16.Name = "Refresh"
+ ActionButton16.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton16.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
+ ActionButton17.BackgroundImage = CType(resources.GetObject("ActionButton17.BackgroundImage"), System.Drawing.Image)
+ ActionButton17.Name = "Clear"
+ ActionButton17.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_YTDLP.Buttons.Add(ActionButton15)
+ Me.TXT_YTDLP.Buttons.Add(ActionButton16)
+ Me.TXT_YTDLP.Buttons.Add(ActionButton17)
Me.TXT_YTDLP.CaptionText = "yt-dlp"
Me.TXT_YTDLP.CaptionToolTipEnabled = True
Me.TXT_YTDLP.CaptionToolTipText = "Path to yt-dlp.exe file"
@@ -2021,19 +2066,19 @@ Namespace Editors
'
'TXT_FFMPEG
'
- ActionButton56.BackgroundImage = CType(resources.GetObject("ActionButton56.BackgroundImage"), System.Drawing.Image)
- ActionButton56.Name = "Open"
- ActionButton56.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
- ActionButton57.BackgroundImage = CType(resources.GetObject("ActionButton57.BackgroundImage"), System.Drawing.Image)
- ActionButton57.Name = "Refresh"
- ActionButton57.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton57.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
- ActionButton58.BackgroundImage = CType(resources.GetObject("ActionButton58.BackgroundImage"), System.Drawing.Image)
- ActionButton58.Name = "Clear"
- ActionButton58.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_FFMPEG.Buttons.Add(ActionButton56)
- Me.TXT_FFMPEG.Buttons.Add(ActionButton57)
- Me.TXT_FFMPEG.Buttons.Add(ActionButton58)
+ ActionButton18.BackgroundImage = CType(resources.GetObject("ActionButton18.BackgroundImage"), System.Drawing.Image)
+ ActionButton18.Name = "Open"
+ ActionButton18.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
+ ActionButton19.BackgroundImage = CType(resources.GetObject("ActionButton19.BackgroundImage"), System.Drawing.Image)
+ ActionButton19.Name = "Refresh"
+ ActionButton19.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton19.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
+ ActionButton20.BackgroundImage = CType(resources.GetObject("ActionButton20.BackgroundImage"), System.Drawing.Image)
+ ActionButton20.Name = "Clear"
+ ActionButton20.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_FFMPEG.Buttons.Add(ActionButton18)
+ Me.TXT_FFMPEG.Buttons.Add(ActionButton19)
+ Me.TXT_FFMPEG.Buttons.Add(ActionButton20)
Me.TXT_FFMPEG.CaptionText = "ffmpeg"
Me.TXT_FFMPEG.CaptionToolTipEnabled = True
Me.TXT_FFMPEG.CaptionToolTipText = "Path to ffmpeg.exe file"
@@ -2047,19 +2092,19 @@ Namespace Editors
'
'TXT_CURL
'
- ActionButton59.BackgroundImage = CType(resources.GetObject("ActionButton59.BackgroundImage"), System.Drawing.Image)
- ActionButton59.Name = "Open"
- ActionButton59.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
- ActionButton60.BackgroundImage = CType(resources.GetObject("ActionButton60.BackgroundImage"), System.Drawing.Image)
- ActionButton60.Name = "Refresh"
- ActionButton60.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton60.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
- ActionButton61.BackgroundImage = CType(resources.GetObject("ActionButton61.BackgroundImage"), System.Drawing.Image)
- ActionButton61.Name = "Clear"
- ActionButton61.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_CURL.Buttons.Add(ActionButton59)
- Me.TXT_CURL.Buttons.Add(ActionButton60)
- Me.TXT_CURL.Buttons.Add(ActionButton61)
+ ActionButton21.BackgroundImage = CType(resources.GetObject("ActionButton21.BackgroundImage"), System.Drawing.Image)
+ ActionButton21.Name = "Open"
+ ActionButton21.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
+ ActionButton22.BackgroundImage = CType(resources.GetObject("ActionButton22.BackgroundImage"), System.Drawing.Image)
+ ActionButton22.Name = "Refresh"
+ ActionButton22.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton22.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
+ ActionButton23.BackgroundImage = CType(resources.GetObject("ActionButton23.BackgroundImage"), System.Drawing.Image)
+ ActionButton23.Name = "Clear"
+ ActionButton23.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_CURL.Buttons.Add(ActionButton21)
+ Me.TXT_CURL.Buttons.Add(ActionButton22)
+ Me.TXT_CURL.Buttons.Add(ActionButton23)
Me.TXT_CURL.CaptionText = "cURL"
Me.TXT_CURL.CaptionToolTipEnabled = True
Me.TXT_CURL.CaptionToolTipText = "Path to curl.exe file"
@@ -2073,19 +2118,19 @@ Namespace Editors
'
'TXT_GALLERYDL
'
- ActionButton62.BackgroundImage = CType(resources.GetObject("ActionButton62.BackgroundImage"), System.Drawing.Image)
- ActionButton62.Name = "Open"
- ActionButton62.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
- ActionButton63.BackgroundImage = CType(resources.GetObject("ActionButton63.BackgroundImage"), System.Drawing.Image)
- ActionButton63.Name = "Refresh"
- ActionButton63.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton63.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
- ActionButton64.BackgroundImage = CType(resources.GetObject("ActionButton64.BackgroundImage"), System.Drawing.Image)
- ActionButton64.Name = "Clear"
- ActionButton64.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_GALLERYDL.Buttons.Add(ActionButton62)
- Me.TXT_GALLERYDL.Buttons.Add(ActionButton63)
- Me.TXT_GALLERYDL.Buttons.Add(ActionButton64)
+ ActionButton24.BackgroundImage = CType(resources.GetObject("ActionButton24.BackgroundImage"), System.Drawing.Image)
+ ActionButton24.Name = "Open"
+ ActionButton24.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
+ ActionButton25.BackgroundImage = CType(resources.GetObject("ActionButton25.BackgroundImage"), System.Drawing.Image)
+ ActionButton25.Name = "Refresh"
+ ActionButton25.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton25.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
+ ActionButton26.BackgroundImage = CType(resources.GetObject("ActionButton26.BackgroundImage"), System.Drawing.Image)
+ ActionButton26.Name = "Clear"
+ ActionButton26.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_GALLERYDL.Buttons.Add(ActionButton24)
+ Me.TXT_GALLERYDL.Buttons.Add(ActionButton25)
+ Me.TXT_GALLERYDL.Buttons.Add(ActionButton26)
Me.TXT_GALLERYDL.CaptionText = "gallery-dl"
Me.TXT_GALLERYDL.CaptionToolTipText = "Path to gallery-dl.exe file"
Me.TXT_GALLERYDL.CaptionWidth = 80.0R
@@ -2098,14 +2143,14 @@ Namespace Editors
'
'TXT_CMD_ENCODING
'
- ActionButton65.BackgroundImage = CType(resources.GetObject("ActionButton65.BackgroundImage"), System.Drawing.Image)
- ActionButton65.Name = "Refresh"
- ActionButton65.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
- ActionButton66.BackgroundImage = CType(resources.GetObject("ActionButton66.BackgroundImage"), System.Drawing.Image)
- ActionButton66.Name = "Clear"
- ActionButton66.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton65)
- Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton66)
+ ActionButton27.BackgroundImage = CType(resources.GetObject("ActionButton27.BackgroundImage"), System.Drawing.Image)
+ ActionButton27.Name = "Refresh"
+ ActionButton27.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
+ ActionButton28.BackgroundImage = CType(resources.GetObject("ActionButton28.BackgroundImage"), System.Drawing.Image)
+ ActionButton28.Name = "Clear"
+ ActionButton28.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton27)
+ Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton28)
Me.TXT_CMD_ENCODING.CaptionText = "CMD Encoding"
Me.TXT_CMD_ENCODING.CaptionToolTipEnabled = True
Me.TXT_CMD_ENCODING.CaptionToolTipText = "Command line encoding"
@@ -2121,7 +2166,7 @@ Namespace Editors
TAB_STD.Controls.Add(TP_STD)
TAB_STD.Location = New System.Drawing.Point(4, 22)
TAB_STD.Name = "TAB_STD"
- TAB_STD.Size = New System.Drawing.Size(621, 399)
+ TAB_STD.Size = New System.Drawing.Size(621, 424)
TAB_STD.TabIndex = 10
TAB_STD.Text = "Downloader"
'
@@ -2163,7 +2208,7 @@ Namespace Editors
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_STD.Size = New System.Drawing.Size(621, 399)
+ TP_STD.Size = New System.Drawing.Size(621, 424)
TP_STD.TabIndex = 0
'
'TXT_STD_MAX_JOBS_COUNT
@@ -2208,24 +2253,24 @@ Namespace Editors
'
'CMB_STD_OPEN_DBL
'
- ActionButton67.BackgroundImage = CType(resources.GetObject("ActionButton67.BackgroundImage"), System.Drawing.Image)
- ActionButton67.Name = "ArrowDown"
- ActionButton67.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
- Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton67)
+ ActionButton29.BackgroundImage = CType(resources.GetObject("ActionButton29.BackgroundImage"), System.Drawing.Image)
+ ActionButton29.Name = "ArrowDown"
+ ActionButton29.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
+ Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton29)
Me.CMB_STD_OPEN_DBL.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.Label
Me.CMB_STD_OPEN_DBL.CaptionText = "DoubleClick opens"
Me.CMB_STD_OPEN_DBL.CaptionToolTipEnabled = True
Me.CMB_STD_OPEN_DBL.CaptionToolTipText = "What do you want to open when you double click on an item"
Me.CMB_STD_OPEN_DBL.CaptionVisible = True
- ListColumn3.DisplayMember = True
- ListColumn3.Name = "STD_CMB_COL_TEXT"
- ListColumn3.Text = "Text"
- ListColumn4.Name = "STD_CMB_COL_VALUE"
- ListColumn4.Text = "Value"
- ListColumn4.ValueMember = True
- ListColumn4.Visible = False
- Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn3)
- Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn4)
+ ListColumn1.DisplayMember = True
+ ListColumn1.Name = "STD_CMB_COL_TEXT"
+ ListColumn1.Text = "Text"
+ ListColumn2.Name = "STD_CMB_COL_VALUE"
+ ListColumn2.Text = "Value"
+ ListColumn2.ValueMember = True
+ ListColumn2.Visible = False
+ Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn1)
+ Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn2)
Me.CMB_STD_OPEN_DBL.Dock = System.Windows.Forms.DockStyle.Fill
Me.CMB_STD_OPEN_DBL.Location = New System.Drawing.Point(4, 85)
Me.CMB_STD_OPEN_DBL.Name = "CMB_STD_OPEN_DBL"
@@ -2262,7 +2307,7 @@ Namespace Editors
TAB_DESIGN.Controls.Add(TP_DESIGN)
TAB_DESIGN.Location = New System.Drawing.Point(4, 22)
TAB_DESIGN.Name = "TAB_DESIGN"
- TAB_DESIGN.Size = New System.Drawing.Size(621, 399)
+ TAB_DESIGN.Size = New System.Drawing.Size(621, 424)
TAB_DESIGN.TabIndex = 11
TAB_DESIGN.Text = "Design"
'
@@ -2288,15 +2333,15 @@ Namespace Editors
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_DESIGN.Size = New System.Drawing.Size(621, 399)
+ TP_DESIGN.Size = New System.Drawing.Size(621, 424)
TP_DESIGN.TabIndex = 0
'
'TXT_PRG_TITLE
'
- ActionButton68.BackgroundImage = CType(resources.GetObject("ActionButton68.BackgroundImage"), System.Drawing.Image)
- ActionButton68.Name = "Clear"
- ActionButton68.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_PRG_TITLE.Buttons.Add(ActionButton68)
+ ActionButton30.BackgroundImage = CType(resources.GetObject("ActionButton30.BackgroundImage"), System.Drawing.Image)
+ ActionButton30.Name = "Clear"
+ ActionButton30.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_PRG_TITLE.Buttons.Add(ActionButton30)
Me.TXT_PRG_TITLE.CaptionText = "Program title"
Me.TXT_PRG_TITLE.CaptionToolTipEnabled = True
Me.TXT_PRG_TITLE.CaptionToolTipText = "Change the title of the main window if you need to"
@@ -2308,10 +2353,10 @@ Namespace Editors
'
'TXT_PRG_DESCR
'
- ActionButton69.BackgroundImage = CType(resources.GetObject("ActionButton69.BackgroundImage"), System.Drawing.Image)
- ActionButton69.Name = "Clear"
- ActionButton69.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_PRG_DESCR.Buttons.Add(ActionButton69)
+ ActionButton31.BackgroundImage = CType(resources.GetObject("ActionButton31.BackgroundImage"), System.Drawing.Image)
+ ActionButton31.Name = "Clear"
+ ActionButton31.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_PRG_DESCR.Buttons.Add(ActionButton31)
Me.TXT_PRG_DESCR.CaptionText = "Program description"
Me.TXT_PRG_DESCR.CaptionToolTipEnabled = True
Me.TXT_PRG_DESCR.CaptionToolTipText = "Add some additional info to the program info if you need"
@@ -2323,14 +2368,14 @@ Namespace Editors
'
'TXT_USER_LIST_IMAGE
'
- ActionButton70.BackgroundImage = CType(resources.GetObject("ActionButton70.BackgroundImage"), System.Drawing.Image)
- ActionButton70.Name = "Open"
- ActionButton70.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
- ActionButton71.BackgroundImage = CType(resources.GetObject("ActionButton71.BackgroundImage"), System.Drawing.Image)
- ActionButton71.Name = "Clear"
- ActionButton71.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton70)
- Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton71)
+ ActionButton32.BackgroundImage = CType(resources.GetObject("ActionButton32.BackgroundImage"), System.Drawing.Image)
+ ActionButton32.Name = "Open"
+ ActionButton32.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
+ ActionButton33.BackgroundImage = CType(resources.GetObject("ActionButton33.BackgroundImage"), System.Drawing.Image)
+ ActionButton33.Name = "Clear"
+ ActionButton33.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton32)
+ Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton33)
Me.TXT_USER_LIST_IMAGE.CaptionText = "Userlist image"
Me.TXT_USER_LIST_IMAGE.CaptionToolTipEnabled = True
Me.TXT_USER_LIST_IMAGE.CaptionToolTipText = "Background image for user list"
@@ -2399,15 +2444,15 @@ Namespace Editors
TP_HEADERS_DEF.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_HEADERS_DEF.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_HEADERS_DEF.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_HEADERS_DEF.Size = New System.Drawing.Size(621, 399)
+ TP_HEADERS_DEF.Size = New System.Drawing.Size(621, 424)
TP_HEADERS_DEF.TabIndex = 0
'
'TXT_H_DEF_UserAgent
'
- ActionButton72.BackgroundImage = CType(resources.GetObject("ActionButton72.BackgroundImage"), System.Drawing.Image)
- ActionButton72.Name = "Clear"
- ActionButton72.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_H_DEF_UserAgent.Buttons.Add(ActionButton72)
+ ActionButton34.BackgroundImage = CType(resources.GetObject("ActionButton34.BackgroundImage"), System.Drawing.Image)
+ ActionButton34.Name = "Clear"
+ ActionButton34.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_H_DEF_UserAgent.Buttons.Add(ActionButton34)
Me.TXT_H_DEF_UserAgent.CaptionText = "UserAgent"
Me.TXT_H_DEF_UserAgent.CaptionWidth = 140.0R
Me.TXT_H_DEF_UserAgent.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2418,10 +2463,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua
'
- ActionButton73.BackgroundImage = CType(resources.GetObject("ActionButton73.BackgroundImage"), System.Drawing.Image)
- ActionButton73.Name = "Clear"
- ActionButton73.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_H_DEF_sec_ch_ua.Buttons.Add(ActionButton73)
+ ActionButton35.BackgroundImage = CType(resources.GetObject("ActionButton35.BackgroundImage"), System.Drawing.Image)
+ ActionButton35.Name = "Clear"
+ ActionButton35.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_H_DEF_sec_ch_ua.Buttons.Add(ActionButton35)
Me.TXT_H_DEF_sec_ch_ua.CaptionText = "sec-ch-ua"
Me.TXT_H_DEF_sec_ch_ua.CaptionWidth = 140.0R
Me.TXT_H_DEF_sec_ch_ua.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2432,10 +2477,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_full_version_list
'
- ActionButton74.BackgroundImage = CType(resources.GetObject("ActionButton74.BackgroundImage"), System.Drawing.Image)
- ActionButton74.Name = "Clear"
- ActionButton74.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_H_DEF_sec_ch_ua_full_version_list.Buttons.Add(ActionButton74)
+ ActionButton36.BackgroundImage = CType(resources.GetObject("ActionButton36.BackgroundImage"), System.Drawing.Image)
+ ActionButton36.Name = "Clear"
+ ActionButton36.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_H_DEF_sec_ch_ua_full_version_list.Buttons.Add(ActionButton36)
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionText = "sec-ch-ua-full-version-list"
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionWidth = 140.0R
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2446,10 +2491,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_platform
'
- ActionButton75.BackgroundImage = CType(resources.GetObject("ActionButton75.BackgroundImage"), System.Drawing.Image)
- ActionButton75.Name = "Clear"
- ActionButton75.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_H_DEF_sec_ch_ua_platform.Buttons.Add(ActionButton75)
+ ActionButton37.BackgroundImage = CType(resources.GetObject("ActionButton37.BackgroundImage"), System.Drawing.Image)
+ ActionButton37.Name = "Clear"
+ ActionButton37.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_H_DEF_sec_ch_ua_platform.Buttons.Add(ActionButton37)
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionText = "sec-ch-ua-platform"
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionWidth = 140.0R
Me.TXT_H_DEF_sec_ch_ua_platform.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2460,10 +2505,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_platform_version
'
- ActionButton76.BackgroundImage = CType(resources.GetObject("ActionButton76.BackgroundImage"), System.Drawing.Image)
- ActionButton76.Name = "Clear"
- ActionButton76.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
- Me.TXT_H_DEF_sec_ch_ua_platform_version.Buttons.Add(ActionButton76)
+ ActionButton38.BackgroundImage = CType(resources.GetObject("ActionButton38.BackgroundImage"), System.Drawing.Image)
+ ActionButton38.Name = "Clear"
+ ActionButton38.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
+ Me.TXT_H_DEF_sec_ch_ua_platform_version.Buttons.Add(ActionButton38)
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionText = "sec-ch-ua-platform-version"
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionWidth = 140.0R
Me.TXT_H_DEF_sec_ch_ua_platform_version.Dock = System.Windows.Forms.DockStyle.Fill
@@ -2477,7 +2522,7 @@ Namespace Editors
TAB_HEADERS.Controls.Add(TP_HEADERS_DEF)
TAB_HEADERS.Location = New System.Drawing.Point(4, 22)
TAB_HEADERS.Name = "TAB_HEADERS"
- TAB_HEADERS.Size = New System.Drawing.Size(621, 399)
+ TAB_HEADERS.Size = New System.Drawing.Size(621, 424)
TAB_HEADERS.TabIndex = 12
TAB_HEADERS.Text = "Headers"
'
@@ -2498,7 +2543,7 @@ Namespace Editors
Me.TAB_MAIN.Location = New System.Drawing.Point(0, 0)
Me.TAB_MAIN.Name = "TAB_MAIN"
Me.TAB_MAIN.SelectedIndex = 0
- Me.TAB_MAIN.Size = New System.Drawing.Size(629, 425)
+ Me.TAB_MAIN.Size = New System.Drawing.Size(629, 450)
Me.TAB_MAIN.TabIndex = 1
'
'TAB_ENVIR
@@ -2506,7 +2551,7 @@ Namespace Editors
Me.TAB_ENVIR.Controls.Add(TP_ENVIR)
Me.TAB_ENVIR.Location = New System.Drawing.Point(4, 22)
Me.TAB_ENVIR.Name = "TAB_ENVIR"
- Me.TAB_ENVIR.Size = New System.Drawing.Size(621, 399)
+ Me.TAB_ENVIR.Size = New System.Drawing.Size(621, 424)
Me.TAB_ENVIR.TabIndex = 9
Me.TAB_ENVIR.Text = "Environment"
'
@@ -2516,7 +2561,7 @@ Namespace Editors
'CONTAINER_MAIN.ContentPanel
'
Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TAB_MAIN)
- Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(629, 425)
+ Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(629, 450)
Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
@@ -2526,47 +2571,18 @@ Namespace Editors
Me.CONTAINER_MAIN.TabIndex = 0
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
'
- 'TP_FEED_SPEC_SEARCH
+ 'CH_FEED_OPEN_CTRLF
'
- TP_FEED_SPEC_SEARCH.ColumnCount = 2
- TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
- TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
- TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH, 0, 0)
- TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH_DEEP, 1, 0)
- TP_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
- TP_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(1, 374)
- TP_FEED_SPEC_SEARCH.Margin = New System.Windows.Forms.Padding(0)
- TP_FEED_SPEC_SEARCH.Name = "TP_FEED_SPEC_SEARCH"
- TP_FEED_SPEC_SEARCH.RowCount = 1
- TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(619, 25)
- TP_FEED_SPEC_SEARCH.TabIndex = 14
- '
- 'CH_FEED_SPEC_SEARCH
- '
- Me.CH_FEED_SPEC_SEARCH.AutoSize = True
- Me.CH_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
- Me.CH_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(3, 3)
- Me.CH_FEED_SPEC_SEARCH.Name = "CH_FEED_SPEC_SEARCH"
- Me.CH_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(303, 19)
- Me.CH_FEED_SPEC_SEARCH.TabIndex = 0
- Me.CH_FEED_SPEC_SEARCH.Text = "Search missing files (special feeds)"
- TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH, "Search for missing file in the entire user folder")
- Me.CH_FEED_SPEC_SEARCH.UseVisualStyleBackColor = True
- '
- 'CH_FEED_SPEC_SEARCH_DEEP
- '
- Me.CH_FEED_SPEC_SEARCH_DEEP.AutoSize = True
- Me.CH_FEED_SPEC_SEARCH_DEEP.Dock = System.Windows.Forms.DockStyle.Fill
- Me.CH_FEED_SPEC_SEARCH_DEEP.Location = New System.Drawing.Point(312, 3)
- Me.CH_FEED_SPEC_SEARCH_DEEP.Name = "CH_FEED_SPEC_SEARCH_DEEP"
- Me.CH_FEED_SPEC_SEARCH_DEEP.Size = New System.Drawing.Size(304, 19)
- Me.CH_FEED_SPEC_SEARCH_DEEP.TabIndex = 1
- Me.CH_FEED_SPEC_SEARCH_DEEP.Text = "Search missing files (special feeds): deep search"
- TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH_DEEP, "Deep search means that the missing file will be searched in other users' location" &
- "s as well.")
- Me.CH_FEED_SPEC_SEARCH_DEEP.UseVisualStyleBackColor = True
+ Me.CH_FEED_OPEN_CTRLF.AutoSize = True
+ Me.CH_FEED_OPEN_CTRLF.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_FEED_OPEN_CTRLF.Location = New System.Drawing.Point(4, 299)
+ Me.CH_FEED_OPEN_CTRLF.Name = "CH_FEED_OPEN_CTRLF"
+ Me.CH_FEED_OPEN_CTRLF.Size = New System.Drawing.Size(613, 19)
+ Me.CH_FEED_OPEN_CTRLF.TabIndex = 11
+ Me.CH_FEED_OPEN_CTRLF.Text = "Use 'Ctrl+F' to open the Feed"
+ TT_MAIN.SetToolTip(Me.CH_FEED_OPEN_CTRLF, "If checked, 'Ctrl+F' will be used to open the Feed. Otherwise, 'Alt+F' will be us" &
+ "ed.")
+ Me.CH_FEED_OPEN_CTRLF.UseVisualStyleBackColor = True
'
'GlobalSettingsForm
'
@@ -2641,6 +2657,8 @@ Namespace Editors
TP_FEED_SES.ResumeLayout(False)
CType(Me.NUM_FEED_STORE_SESSION_DATA, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.NUM_FEED_SES_CURR_LOAD_LAST, System.ComponentModel.ISupportInitialize).EndInit()
+ TP_FEED_SPEC_SEARCH.ResumeLayout(False)
+ TP_FEED_SPEC_SEARCH.PerformLayout()
TAB_NOTIFY.ResumeLayout(False)
TP_NOTIFY_MAIN.ResumeLayout(False)
TP_NOTIFY_MAIN.PerformLayout()
@@ -2672,8 +2690,6 @@ Namespace Editors
Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
Me.CONTAINER_MAIN.ResumeLayout(False)
Me.CONTAINER_MAIN.PerformLayout()
- TP_FEED_SPEC_SEARCH.ResumeLayout(False)
- TP_FEED_SPEC_SEARCH.PerformLayout()
Me.ResumeLayout(False)
End Sub
@@ -2791,5 +2807,6 @@ Namespace Editors
Private WithEvents CH_SCHEDULER_SCRIPT_EX_MANUAL As CheckBox
Private WithEvents CH_FEED_SPEC_SEARCH As CheckBox
Private WithEvents CH_FEED_SPEC_SEARCH_DEEP As CheckBox
+ Private WithEvents CH_FEED_OPEN_CTRLF 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 ac756f2..0df8f05 100644
--- a/SCrawler/Editors/GlobalSettingsForm.resx
+++ b/SCrawler/Editors/GlobalSettingsForm.resx
@@ -120,11 +120,8 @@
False
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -135,7 +132,7 @@
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -146,7 +143,7 @@
False
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -154,7 +151,7 @@
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -170,7 +167,7 @@
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -186,7 +183,7 @@
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -194,7 +191,7 @@
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -210,7 +207,7 @@
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -227,9 +224,6 @@
False
-
- False
-
False
@@ -263,37 +257,19 @@ You can find more detailed information about the missing posts in the form that
False
-
- False
-
False
False
-
- False
-
False
False
-
- False
-
-
- False
-
-
- False
-
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -301,7 +277,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -324,13 +300,7 @@ You can find more detailed information about the missing posts in the form that
False
-
- False
-
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -341,7 +311,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -364,10 +334,7 @@ You can find more detailed information about the missing posts in the form that
False
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -383,7 +350,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -397,10 +364,10 @@ You can find more detailed information about the missing posts in the form that
0 - only the session of the current day.
>0 - the value (in minutes) that must elapse since last file download in a session for that session to be considered current.
-
+
False
-
+
False
@@ -409,7 +376,7 @@ You can find more detailed information about the missing posts in the form that
False
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -420,7 +387,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -436,7 +403,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -444,7 +411,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -455,7 +422,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -471,7 +438,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -479,7 +446,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -490,7 +457,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -506,7 +473,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -514,7 +481,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -525,7 +492,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -541,7 +508,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -549,7 +516,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
@@ -565,7 +532,7 @@ You can find more detailed information about the missing posts in the form that
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -579,10 +546,7 @@ You can find more detailed information about the missing posts in the form that
False
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAE65JREFUeF7t
3X2sJWddB/DdLi2lQG2hdOHuvfM887J7Cxca4ELTQMDWKigIFpBAEAgi9g+CJpJo9Q8NJhgBiYZIYspL
@@ -678,10 +642,7 @@ You can find more detailed information about the missing posts in the form that
False
-
- False
-
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -689,7 +650,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -697,7 +658,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
@@ -708,7 +669,7 @@ You can find more detailed information about the missing posts in the form that
cMaRN0UdBBkAAAAASUVORK5CYII=
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -719,7 +680,7 @@ You can find more detailed information about the missing posts in the form that
False
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -727,7 +688,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -735,7 +696,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -743,7 +704,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
@@ -751,7 +712,7 @@ You can find more detailed information about the missing posts in the form that
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb
index 7ad0be1..86013ba 100644
--- a/SCrawler/Editors/GlobalSettingsForm.vb
+++ b/SCrawler/Editors/GlobalSettingsForm.vb
@@ -80,6 +80,7 @@ Namespace Editors
TXT_SCHEDULER_SCRIPT.Text = .AutomationScript
TXT_SCHEDULER_SCRIPT.Checked = .AutomationScript.Use
CH_SCHEDULER_SCRIPT_EX_MANUAL.Checked = .AutomationScript_ExcludeManual
+ CH_FEED_OPEN_CTRLF.Checked = .FeedOpenCtrlF
'Notifications
CH_NOTIFY_SILENT.Checked = .NotificationsSilentMode
CH_NOTIFY_SHOW_BASE.Checked = .ShowNotifications
@@ -300,6 +301,7 @@ Namespace Editors
.AutomationScript.Value = TXT_SCHEDULER_SCRIPT.Text
.AutomationScript.Use = TXT_SCHEDULER_SCRIPT.Checked
.AutomationScript_ExcludeManual.Value = CH_SCHEDULER_SCRIPT_EX_MANUAL.Checked
+ .FeedOpenCtrlF.Value = CH_FEED_OPEN_CTRLF.Checked
'Notifications
.NotificationsSilentMode = CH_NOTIFY_SILENT.Checked
.ShowNotifications.Value = CH_NOTIFY_SHOW_BASE.Checked
diff --git a/SCrawler/Editors/UserCreatorForm.vb b/SCrawler/Editors/UserCreatorForm.vb
index b3ded89..3e8be1f 100644
--- a/SCrawler/Editors/UserCreatorForm.vb
+++ b/SCrawler/Editors/UserCreatorForm.vb
@@ -103,7 +103,7 @@ Namespace Editors
#End Region
#Region "Exchange, Path, Labels"
Friend Property MyExchangeOptions As Object = Nothing
- Private ReadOnly _SpecPathPattern As RParams = RParams.DM("\w:\\.*", 0, EDP.ReturnValue)
+ Private ReadOnly _SpecPathPattern As RParams = RParams.DM("(\w:\\|\\\\).*", 0, EDP.ReturnValue)
Private ReadOnly Property SpecialPath(ByVal s As SettingsHost) As SFile
Get
If TXT_SPEC_FOLDER.IsEmptyString Then
diff --git a/SCrawler/MainFrame.Designer.vb b/SCrawler/MainFrame.Designer.vb
index fbe31e9..9da8d5e 100644
--- a/SCrawler/MainFrame.Designer.vb
+++ b/SCrawler/MainFrame.Designer.vb
@@ -679,7 +679,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Me.BTT_CONTEXT_DOWN.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
Me.BTT_CONTEXT_DOWN.Name = "BTT_CONTEXT_DOWN"
Me.BTT_CONTEXT_DOWN.Size = New System.Drawing.Size(221, 22)
- Me.BTT_CONTEXT_DOWN.Text = "Download data"
+ Me.BTT_CONTEXT_DOWN.Text = "Download"
Me.BTT_CONTEXT_DOWN.ToolTipText = ""
'
'BTT_CONTEXT_DOWN_LIMITED
@@ -688,7 +688,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Me.BTT_CONTEXT_DOWN_LIMITED.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
Me.BTT_CONTEXT_DOWN_LIMITED.Name = "BTT_CONTEXT_DOWN_LIMITED"
Me.BTT_CONTEXT_DOWN_LIMITED.Size = New System.Drawing.Size(221, 22)
- Me.BTT_CONTEXT_DOWN_LIMITED.Text = "Download data limited"
+ Me.BTT_CONTEXT_DOWN_LIMITED.Text = "Download (limited)"
Me.BTT_CONTEXT_DOWN_LIMITED.ToolTipText = "Download top ... posts"
'
'BTT_CONTEXT_DOWN_DATE_LIMIT
@@ -696,7 +696,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Me.BTT_CONTEXT_DOWN_DATE_LIMIT.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
Me.BTT_CONTEXT_DOWN_DATE_LIMIT.Name = "BTT_CONTEXT_DOWN_DATE_LIMIT"
Me.BTT_CONTEXT_DOWN_DATE_LIMIT.Size = New System.Drawing.Size(221, 22)
- Me.BTT_CONTEXT_DOWN_DATE_LIMIT.Text = "Download data to the date"
+ Me.BTT_CONTEXT_DOWN_DATE_LIMIT.Text = "Download (to the date)"
Me.BTT_CONTEXT_DOWN_DATE_LIMIT.ToolTipText = ""
'
'BTT_CONTEXT_EDIT
diff --git a/SCrawler/MainFrame.vb b/SCrawler/MainFrame.vb
index 9d4d29c..3cda4f1 100644
--- a/SCrawler/MainFrame.vb
+++ b/SCrawler/MainFrame.vb
@@ -241,13 +241,13 @@ CloseResume:
If Not b Then
b = True
- If e.Control And e.KeyCode = Keys.F Then
+ If Settings.ShortcutOpenFeed = e Then
BTT_FEED.PerformClick()
ElseIf e.Alt And e.KeyCode = Keys.A Then
BTT_DOWN_AUTOMATION.PerformClick()
ElseIf e.Alt And e.KeyCode = Keys.P Then
BTT_PR_INFO.PerformClick()
- ElseIf (e.Alt And (e.KeyCode = Keys.F Or e.KeyCode = Keys.U)) Or (e.Control And e.KeyCode = Keys.U) Then
+ ElseIf Settings.ShortcutOpenSearch = e Or (e.Alt And e.KeyCode = Keys.U) Or (e.Control And e.KeyCode = Keys.U) Then
MySearch.FormShow()
Else
b = False
@@ -1520,6 +1520,8 @@ CloseResume:
If Not user Is Nothing AndAlso user.IsCollection Then
With DirectCast(user, UserDataBind)
BTT_CONTEXT_DOWN.DropDownItems.AddRange(.ContextDown)
+ BTT_CONTEXT_DOWN_LIMITED.DropDownItems.AddRange(.ContextDownLimit)
+ BTT_CONTEXT_DOWN_DATE_LIMIT.DropDownItems.AddRange(.ContextDownDate)
BTT_CONTEXT_EDIT.DropDownItems.AddRange(.ContextEdit)
BTT_CONTEXT_DELETE.DropDownItems.AddRange(.ContextDelete)
BTT_CONTEXT_ERASE.DropDownItems.AddRange(.ContextErase)
@@ -1529,6 +1531,8 @@ CloseResume:
End If
Else
BTT_CONTEXT_DOWN.DropDownItems.Clear()
+ BTT_CONTEXT_DOWN_LIMITED.DropDownItems.Clear()
+ BTT_CONTEXT_DOWN_DATE_LIMIT.DropDownItems.Clear()
BTT_CONTEXT_EDIT.DropDownItems.Clear()
BTT_CONTEXT_DELETE.DropDownItems.Clear()
BTT_CONTEXT_ERASE.DropDownItems.Clear()
@@ -1634,10 +1638,11 @@ CloseResume:
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, "[MainFrame.GetSelectedUserArray]", New List(Of IUserData))
End Try
End Function
- Private Enum DownUserLimits : None : Number : [Date] : End Enum
- Private Sub DownloadSelectedUser(ByVal UseLimits As DownUserLimits, Optional ByVal IncludeInTheFeed As Boolean = True)
+ Friend Enum DownUserLimits : None : Number : [Date] : End Enum
+ Friend Sub DownloadSelectedUser(ByVal UseLimits As DownUserLimits, Optional ByVal IncludeInTheFeed As Boolean = True,
+ Optional ByVal SUser As IUserData = Nothing)
Const MsgTitle$ = "Download limit"
- Dim users As List(Of IUserData) = GetSelectedUserArray()
+ Dim users As List(Of IUserData) = If(SUser Is Nothing, GetSelectedUserArray(), New List(Of IUserData) From {SUser})
If users.ListExists Then
Dim limit%? = Nothing
Dim _from As Date? = Nothing
@@ -1704,7 +1709,7 @@ ResumeDownloadingOperation:
$"Do you want to download them all{fStr}?{vbNewLine.StringDup(2)}" &
$"Selected users:{vbNewLine}{uStr}", "Multiple users selected"},
MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
- users.ForEach(Sub(u)
+ users.ForEach(Sub(ByVal u As IUserData)
u.DownloadTopCount = limit
u.DownloadDateFrom = _from
u.DownloadDateTo = _to
diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb
index 138c96b..0a11c73 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 672f8e9..106dc44 100644
--- a/SCrawler/SettingsCLS.vb
+++ b/SCrawler/SettingsCLS.vb
@@ -10,6 +10,7 @@ Imports PersonalUtilities.Functions.Messaging
Imports PersonalUtilities.Functions.XML
Imports PersonalUtilities.Functions.XML.Base
Imports PersonalUtilities.Functions.XML.Objects
+Imports PersonalUtilities.Forms
Imports PersonalUtilities.Forms.Controls
Imports PersonalUtilities.Forms.Controls.Base
Imports PersonalUtilities.Tools
@@ -193,6 +194,17 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
Private ReadOnly UsersSettingsFile As SFile = $"{SettingsFolderName}\Users.xml"
Private ReadOnly Property SettingsVersion As XMLValue(Of Integer)
Private Const SettingsVersionCurrent As Integer = 1
+ Friend ShortcutOpenFeed As New ButtonKey(Keys.F, True)
+ Friend ShortcutOpenSearch As New ButtonKey(Keys.F,, True)
+ Private Sub ChangeFeedOpenMode()
+ If FeedOpenCtrlF Then
+ ShortcutOpenFeed = New ButtonKey(Keys.F, True)
+ ShortcutOpenSearch = New ButtonKey(Keys.F,, True)
+ Else
+ ShortcutOpenFeed = New ButtonKey(Keys.F,, True)
+ ShortcutOpenSearch = New ButtonKey(Keys.F, True)
+ End If
+ End Sub
#End Region
#Region "Initializer"
Friend Sub New()
@@ -299,6 +311,9 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
DownloadAll_UseF6 = New XMLValue(Of Boolean)("DownloadAll_UseF6", True, MyXML, n)
DownloadAll_UseF6_Confirm = New XMLValue(Of Boolean)("DownloadAll_UseF6_Confirm", False, MyXML, n)
DownloadAll_Confirm = New XMLValue(Of Boolean)("DownloadAll_Confirm", False, MyXML, n)
+ FeedOpenCtrlF = New XMLValue(Of Boolean)("FeedOpenCtrlF", True, MyXML, n)
+ AddHandler FeedOpenCtrlF.ValueChanged, AddressOf ChangeFeedOpenMode
+ ChangeFeedOpenMode()
'Notifications
n = {"Notifications"}
@@ -925,6 +940,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
Friend ReadOnly Property DownloadAll_UseF6 As XMLValue(Of Boolean)
Friend ReadOnly Property DownloadAll_UseF6_Confirm As XMLValue(Of Boolean)
Friend ReadOnly Property DownloadAll_Confirm As XMLValue(Of Boolean)
+ Friend ReadOnly Property FeedOpenCtrlF As XMLValue(Of Boolean)
#End Region
#Region "Notifications"
Friend Enum NotificationObjects