2024.3.22.0

TDownloader: exclude the last 3 days from deleting session files
UserDownloadQueueForm: fix bug
This commit is contained in:
Andy
2024-03-22 01:28:49 +03:00
parent 2a2c12c651
commit f5dd791941
6 changed files with 151 additions and 50 deletions

View File

@@ -196,10 +196,15 @@ Namespace DownloadObjects
files = SFile.GetFiles(SessionsPath.CSFileP, "*.xml",, EDP.ReturnValue)
If files.ListExists Then files.RemoveAll(Settings.Feeds.FeedSpecialRemover)
End If
If files.ListExists Then
Const ds$ = "yyyyMMdd"
Dim nd$ = Now.ToString(ds), d1$ = Now.AddDays(-1).ToString(ds), d2$ = Now.AddDays(-2).ToString(ds)
files.RemoveAll(Function(f) f.Name.StartsWith(nd) Or f.Name.StartsWith(d1) Or f.Name.StartsWith(d2))
End If
Dim filesCount% = Settings.FeedStoredSessionsNumber
If files.ListExists And filesCount > 0 Then
Dim fe As New ErrorsDescriber(EDP.None)
Do While files.Count > filesCount : files(0).Delete(,, fe) : files.RemoveAt(0) : Loop
Do While files.Count > filesCount And files.Count > 0 : files(0).Delete(,, fe) : files.RemoveAt(0) : Loop
End If
End If
Catch ex As Exception

View File

@@ -14,6 +14,8 @@ Namespace DownloadObjects
Friend Class UserDownloadQueueForm
Private MyVew As FormView
Private ReadOnly Tokens As List(Of CancellationTokenSource)
Private Loaded As Boolean = False
Private ReadOnly Pending As List(Of ListUser)
Private Structure ListUser
Friend IsDownloading As Boolean
Private ReadOnly _UserString As String
@@ -23,11 +25,16 @@ Namespace DownloadObjects
End Get
End Property
Friend ReadOnly Key As String
Friend ReadOnly User As IUserData
Friend Sub New(ByVal _User As IUserData)
Try
User = _User
Key = _User.Key
IsDownloading = True
_UserString = DirectCast(_User, UserDataBase).ToStringForLog()
If Not _User.FriendlyName.IsEmptyString Then _UserString &= $" ({_User.FriendlyName})"
Catch
End Try
End Sub
Public Shared Widening Operator CType(ByVal _User As UserDataBase) As ListUser
Return New ListUser(_User)
@@ -46,6 +53,7 @@ Namespace DownloadObjects
Public Sub New()
InitializeComponent()
Tokens = New List(Of CancellationTokenSource)
Pending = New List(Of ListUser)
End Sub
Private Sub UserDownloadQueueForm_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
@@ -55,6 +63,15 @@ Namespace DownloadObjects
MyVew.SetFormSize()
End If
Catch
Finally
Loaded = True
FillPending()
End Try
End Sub
Private Sub FillPending()
Try
If Pending.Count > 0 Then Pending.ForEach(Sub(u) Downloader_UserDownloadStateChanged(u.User, u.IsDownloading)) : Pending.Clear()
Catch
End Try
End Sub
Private Sub UserDownloadQueueForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
@@ -64,6 +81,7 @@ Namespace DownloadObjects
Private Sub UserDownloadQueueForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
MyVew.DisposeIfReady
Tokens.ListClearDispose
Pending.Clear()
End Sub
Private Sub UserDownloadQueueForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
Dim b As Boolean = True
@@ -78,15 +96,29 @@ Namespace DownloadObjects
End Sub
Friend Sub Downloader_Downloading(ByVal Value As Boolean)
Try
If Not Value Then ControlInvokeFast(LIST_QUEUE, Sub()
If Not Value Then
If Not Loaded Then
Pending.Clear()
Else
ControlInvokeFast(LIST_QUEUE, Sub()
LIST_QUEUE.Items.Clear()
Tokens.ListClearDispose
End Sub, EDP.None)
End If
End If
Catch
End Try
End Sub
Friend Sub Downloader_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean)
Try
If Not Loaded Then
Dim newUser As New ListUser(User)
If IsDownloading Then
If Pending.Count = 0 OrElse Not Pending.Contains(newUser) Then Pending.Add(newUser)
Else
If Pending.Count > 0 Then Pending.Remove(newUser)
End If
Else
ControlInvokeFast(LIST_QUEUE, Sub()
Dim u As New ListUser(User)
ApplyHandlers(User, IsDownloading)
@@ -97,13 +129,23 @@ Namespace DownloadObjects
End If
LIST_QUEUE.Refresh()
End Sub, EDP.None)
End If
Catch
End Try
End Sub
Private Sub User_UserDownloadStateChanged(ByVal User As IUserData, ByVal IsDownloading As Boolean)
Try
ControlInvokeFast(LIST_QUEUE,
Sub()
If Not Loaded Then
Dim __user As New ListUser(User)
If Pending.Count > 0 Then
Dim uIndx% = Pending.IndexOf(__user)
If uIndx >= 0 Then
__user.IsDownloading = IsDownloading
Pending(uIndx) = __user
End If
End If
Else
ControlInvokeFast(LIST_QUEUE, Sub()
Dim lu As New ListUser(User)
Dim i% = LIST_QUEUE.Items.IndexOf(lu)
If i >= 0 Then
@@ -115,6 +157,7 @@ Namespace DownloadObjects
End If
End If
End Sub, EDP.None)
End If
Catch
End Try
End Sub

View File

@@ -83,6 +83,11 @@ Namespace Editors
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 TP_HEADERS_DEF As System.Windows.Forms.TableLayoutPanel
Dim ActionButton28 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton29 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 TAB_HEADERS As System.Windows.Forms.TabPage
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
@@ -2179,6 +2184,10 @@ Namespace Editors
'
'TXT_H_DEF_UserAgent
'
ActionButton28.BackgroundImage = CType(resources.GetObject("ActionButton28.BackgroundImage"), System.Drawing.Image)
ActionButton28.Name = "Clear"
ActionButton28.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
Me.TXT_H_DEF_UserAgent.Buttons.Add(ActionButton28)
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
@@ -2189,6 +2198,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua
'
ActionButton29.BackgroundImage = CType(resources.GetObject("ActionButton29.BackgroundImage"), System.Drawing.Image)
ActionButton29.Name = "Clear"
ActionButton29.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
Me.TXT_H_DEF_sec_ch_ua.Buttons.Add(ActionButton29)
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
@@ -2199,6 +2212,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_full_version_list
'
ActionButton30.BackgroundImage = CType(resources.GetObject("ActionButton30.BackgroundImage"), System.Drawing.Image)
ActionButton30.Name = "Clear"
ActionButton30.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Buttons.Add(ActionButton30)
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
@@ -2209,6 +2226,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_platform
'
ActionButton31.BackgroundImage = CType(resources.GetObject("ActionButton31.BackgroundImage"), System.Drawing.Image)
ActionButton31.Name = "Clear"
ActionButton31.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
Me.TXT_H_DEF_sec_ch_ua_platform.Buttons.Add(ActionButton31)
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
@@ -2219,6 +2240,10 @@ Namespace Editors
'
'TXT_H_DEF_sec_ch_ua_platform_version
'
ActionButton32.BackgroundImage = CType(resources.GetObject("ActionButton32.BackgroundImage"), System.Drawing.Image)
ActionButton32.Name = "Clear"
ActionButton32.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
Me.TXT_H_DEF_sec_ch_ua_platform_version.Buttons.Add(ActionButton32)
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

View File

@@ -577,6 +577,46 @@ You can find more detailed information about the missing posts in the form that
<metadata name="TP_HEADERS_DEF.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<data name="ActionButton28.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
</value>
</data>
<data name="ActionButton29.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
</value>
</data>
<data name="ActionButton30.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
</value>
</data>
<data name="ActionButton31.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
</value>
</data>
<data name="ActionButton32.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="TAB_HEADERS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>

View File

@@ -9,6 +9,7 @@
Imports PersonalUtilities.Forms
Imports PersonalUtilities.Forms.Controls
Imports PersonalUtilities.Forms.Controls.Base
Imports PersonalUtilities.Functions.XML.Objects
Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons
Imports StdDblClck = SCrawler.DownloadObjects.STDownloader.DoubleClickBehavior
Namespace Editors
@@ -207,6 +208,7 @@ Namespace Editors
"If this case, the functionality of SCrawler will be limited, and some sites will not work at all.",
"Environment missing"}, vbExclamation,,, {"Process", "Cancel"}) = 1 Then Exit Sub
Dim detector As Func(Of IXMLValue, Boolean) = Function(hh) hh.ChangesDetected
.BeginUpdate()
'Basis
@@ -242,7 +244,7 @@ Namespace Editors
.HEADER_sec_ch_ua_platform.Value = TXT_H_DEF_sec_ch_ua_platform.Text
.HEADER_sec_ch_ua_platform_version.Value = TXT_H_DEF_sec_ch_ua_platform_version.Text
HeadersChanged = { .HEADER_UserAgent, .HEADER_sec_ch_ua, .HEADER_sec_ch_ua_full_version_list,
.HEADER_sec_ch_ua_platform, .HEADER_sec_ch_ua_platform_version}.Any(Function(hh) hh.ChangesDetected)
.HEADER_sec_ch_ua_platform, .HEADER_sec_ch_ua_platform_version}.Cast(Of IXMLValue).Any(detector)
'Behavior
.ExitConfirm.Value = CH_EXIT_CONFIRM.Checked
.CloseToTray.Value = CH_CLOSE_TO_TRAY.Checked
@@ -333,9 +335,8 @@ Namespace Editors
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
.FeedShowSpecialFeedsMediaItem.Value = CH_FEED_SHOW_SPEC_MEDIAITEM.Checked
.FeedMoveCopyUpdateFileLocationOnMove.Value = CH_FEED_UP_FILE_LOC_MOVE.Checked
FeedParametersChanged = .FeedDataRows.ChangesDetected Or .FeedDataColumns.ChangesDetected Or
.FeedEndless.ChangesDetected Or .FeedBackColor.ChangesDetected Or
.FeedForeColor.ChangesDetected Or .FeedCenterImage.ChangesDetected
FeedParametersChanged = { .FeedDataRows, .FeedDataColumns, .FeedEndless, .FeedBackColor,
.FeedForeColor, .FeedCenterImage}.Cast(Of IXMLValue).Any(detector)
.EndUpdate()
End With

View File

@@ -467,20 +467,7 @@ CloseResume:
InfoForm.FormShow(EDP.LogMessageValue)
End Sub
Private Sub MENU_INFO_SHOW_QUEUE_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_QUEUE.Click
ShowDownloadQueueForm()
End Sub
Private Sub ShowDownloadQueueForm(Optional ByVal Round As Integer = 0)
Try
DownloadQueue.FormShow(EDP.LogMessageValue)
Catch ex As Exception
If Round = 0 Then
ErrorsDescriber.Execute(EDP.SendToLog, ex, "ShowDownloadQueueForm_0")
If Not DownloadQueue Is Nothing Then DownloadQueue.Dispose() : DownloadQueue = Nothing
ShowDownloadQueueForm(Round + 1)
Else
ErrorsDescriber.Execute(EDP.SendToLog, ex, "ShowDownloadQueueForm")
End If
End Try
Try : DownloadQueue.FormShow(EDP.LogMessageValue) : Catch : End Try
End Sub
Private Sub MENU_INFO_SHOW_MISSING_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_MISSING.Click
MyMissingPosts.FormShow(EDP.LogMessageValue)