Compare commits

..

8 Commits

Author SHA1 Message Date
Andy
ab020d9b5f 2022.6.10.0
Instagram User ID
2022-06-10 21:13:35 +03:00
Andy
4ba1624edf Update MainWindowGroups.png 2022-06-09 07:55:58 +03:00
Andy
f3d956f33f 2022.6.7.0
Fixed some design issues
2022-06-07 20:00:36 +03:00
Andy
4a5e050201 Update README.md 2022-06-06 21:49:00 +03:00
Andy
dd272c6f6d 2022.6.6.0
Minor fixes
Fixed Twitter gifs
2022-06-06 21:32:43 +03:00
Andy
fbcda1ae75 2022.6.4.0
Added pause automation
Extended automation information
Updated automation checker
2022-06-04 02:43:46 +03:00
Andy
9e87369c9b Update ReadMe 2022-06-04 02:14:18 +03:00
Andy
cc3618a50e Update CONTRIBUTING.md 2022-06-04 02:10:44 +03:00
31 changed files with 179 additions and 72 deletions

View File

@@ -10,7 +10,8 @@ I welcome requests! Follow these steps to contribute:
# How to build from source # How to build from source
1. Delete the "PersonalUtilities" project from the solution. 1. Delete the "PersonalUtilities" project from the solution.
1. Add the latest version of the "PersonalUtilities.dll" library (from the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest)). 1. Delete the "PersonalUtilities.Notifications" project from the solution.
1. Add the latest versions of the ```PersonalUtilities.dll``` and ```PersonalUtilities.Notifications.dll``` libraries (from the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest)).
1. Import PersonalUtilities.Functions for the whole project. 1. Import PersonalUtilities.Functions for the whole project.
**Always use the correct "PersonalUtilities.dll" library. You must download this library from the release of the code you downloaded.** **Always use the correct "PersonalUtilities.dll" library. You must download this library from the release of the code you downloaded.**
@@ -22,7 +23,7 @@ I welcome requests! Follow these steps to contribute:
# Requirements for new site requests # Requirements for new site requests
**Attention! I'll add a new site only if I'm interested. I also have a life, and any development takes time. ** **Attention! I'll add a new site only if I'm interested. I also have a life, and any development takes time.**
- Post a link to the site's API - Post a link to the site's API
- Post request URLs **without OAuth** authentication - Post request URLs **without OAuth** authentication

View File

@@ -1,3 +1,18 @@
# 2022.6.10.0
**Attention! From now on, Instagram requires Cookies, Hash and authorization headers!**
- Fixed
- Can't get Instagram user ID
# 2022.6.6.0
- Added
- Ability to pause automation
- Fixed
- GIFs from Twitter not downloading
- Not quite correct algorithm for stopping automation
# 2022.6.3.0 # 2022.6.3.0
Changed version numbering method. From now on, new versions will be numbered by release date (YYYY.M.D) Changed version numbering method. From now on, new versions will be numbered by release date (YYYY.M.D)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -1,3 +1,5 @@
# :rainbow_flag: Happy LGBT Pride Month :tada:
# Social networks crawler # Social networks crawler
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/AAndyProgram/SCrawler)](https://github.com/AAndyProgram/SCrawler/releases/latest) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/AAndyProgram/SCrawler)](https://github.com/AAndyProgram/SCrawler/releases/latest)
@@ -101,7 +103,8 @@ Just download [latest](https://github.com/AAndyProgram/SCrawler/releases/latest)
# How to build from source # How to build from source
1. Delete the "PersonalUtilities" project from the solution. 1. Delete the "PersonalUtilities" project from the solution.
1. Add the latest version of the "PersonalUtilities.dll" library (from the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest)). 1. Delete the "PersonalUtilities.Notifications" project from the solution.
1. Add the latest versions of the ```PersonalUtilities.dll``` and ```PersonalUtilities.Notifications.dll``` libraries (from the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest)).
1. Import PersonalUtilities.Functions for the whole project. 1. Import PersonalUtilities.Functions for the whole project.
# How to make a plugin # How to make a plugin
@@ -118,7 +121,7 @@ The program has an intuitive interface.
You need to set up authorization for Twitter and Instagram: You need to set up authorization for Twitter and Instagram:
- Authorization [cookies](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-set-up-cookies) and [tokens](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-twitter-tokens) for **Twitter** (if you want to download data from Twitter) - Authorization [cookies](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-set-up-cookies) and [tokens](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-twitter-tokens) for **Twitter** (if you want to download data from Twitter)
- Authorization [cookies](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-set-up-cookies) and [Hash](https://github.com/AAndyProgram/SCrawler/wiki/Settings#instagram) for **Instagram** (if you want to download data from Instagram), [Hash 2](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-instagram-hash-2) for **saved Instagram posts**, Instagram [stories authorization headers](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-instagram-stories-authorization-headers) for **Stories** and **Tagged data** - Authorization [cookies](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-set-up-cookies), [Hash](https://github.com/AAndyProgram/SCrawler/wiki/Settings#instagram) and [authorization headers](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-instagram-authorization-headers) for **Instagram** (if you want to download data from Instagram), [Hash 2](https://github.com/AAndyProgram/SCrawler/wiki/Settings#how-to-find-instagram-hash-2) for **saved Instagram posts**
Just add a user profile and **click the ```Start downloading``` button**. Just add a user profile and **click the ```Start downloading``` button**.

View File

@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2022.6.3.0")> <Assembly: AssemblyVersion("2022.6.7.0")>
<Assembly: AssemblyFileVersion("2022.6.3.0")> <Assembly: AssemblyFileVersion("2022.6.7.0")>
<Assembly: NeutralResourcesLanguage("en")> <Assembly: NeutralResourcesLanguage("en")>

View File

@@ -21,7 +21,6 @@ Public Class SettingsForm : Implements IOkCancelToolbar
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
If Settings.Domains.Count > 0 Then Settings.Domains.ForEach(Sub(d) LIST_DOMAINS.Items.Add(d)) If Settings.Domains.Count > 0 Then Settings.Domains.ForEach(Sub(d) LIST_DOMAINS.Items.Add(d))
.EndLoaderOperations() .EndLoaderOperations()
End With End With
@@ -29,7 +28,7 @@ Public Class SettingsForm : Implements IOkCancelToolbar
MyDefs.InvokeLoaderError(ex) MyDefs.InvokeLoaderError(ex)
End Try End Try
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
Settings.Domains.Clear() Settings.Domains.Clear()
With LIST_DOMAINS With LIST_DOMAINS
If .Items.Count > 0 Then If .Items.Count > 0 Then
@@ -39,7 +38,7 @@ Public Class SettingsForm : Implements IOkCancelToolbar
Settings.UpdateDomains() Settings.UpdateDomains()
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(Windows.Forms.DialogResult.Cancel) MyDefs.CloseForm(Windows.Forms.DialogResult.Cancel)
End Sub End Sub
Private Sub BTT_ADD_Click(sender As Object, e As EventArgs) Handles BTT_ADD.Click Private Sub BTT_ADD_Click(sender As Object, e As EventArgs) Handles BTT_ADD.Click

View File

@@ -21,8 +21,6 @@ Namespace API.Instagram
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
.AppendDetectors()
With MyExchangeOptions With MyExchangeOptions
CH_GET_STORIES.Checked = .GetStories CH_GET_STORIES.Checked = .GetStories
CH_GET_TAGGED.Checked = .GetTagged CH_GET_TAGGED.Checked = .GetTagged
@@ -30,14 +28,14 @@ Namespace API.Instagram
.EndLoaderOperations() .EndLoaderOperations()
End With End With
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
With MyExchangeOptions With MyExchangeOptions
.GetStories = CH_GET_STORIES.Checked .GetStories = CH_GET_STORIES.Checked
.GetTagged = CH_GET_TAGGED.Checked .GetTagged = CH_GET_TAGGED.Checked
End With End With
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
End Class End Class

View File

@@ -536,7 +536,8 @@ Namespace API.Instagram
End Try End Try
End Sub End Sub
#End Region #End Region
Private Sub GetUserId() #Region "GetUserId"
<Obsolete> Private Sub GetUserId_Old()
Try Try
Dim r$ = Responser.GetResponse($"https://www.instagram.com/{Name}/?__a=1",, EDP.ThrowException) Dim r$ = Responser.GetResponse($"https://www.instagram.com/{Name}/?__a=1",, EDP.ThrowException)
If Not r.IsEmptyString Then If Not r.IsEmptyString Then
@@ -552,6 +553,23 @@ Namespace API.Instagram
End If End If
End Try End Try
End Sub End Sub
Private Sub GetUserId()
Try
Dim r$ = Responser.GetResponse($"https://i.instagram.com/api/v1/users/web_profile_info/?username={Name}",, EDP.ThrowException)
If Not r.IsEmptyString Then
Using j As EContainer = JsonDocument.Parse(r).XmlIfNothing
ID = j({"data", "user"}, "id").XmlIfNothingValue
End Using
End If
Catch ex As Exception
If Responser.StatusCode = HttpStatusCode.NotFound Or Responser.StatusCode = HttpStatusCode.BadRequest Then
Throw ex
Else
LogError(ex, "get Instagram user id")
End If
End Try
End Sub
#End Region
#Region "Pinned stories" #Region "Pinned stories"
Private Sub GetStoriesData(ByRef StoriesList As List(Of String), ByVal Token As CancellationToken) Private Sub GetStoriesData(ByRef StoriesList As List(Of String), ByVal Token As CancellationToken)
Const ReqUrl$ = "https://i.instagram.com/api/v1/feed/reels_media/?{0}" Const ReqUrl$ = "https://i.instagram.com/api/v1/feed/reels_media/?{0}"

View File

@@ -31,8 +31,6 @@ Namespace API.Reddit
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.AppendDetectors()
.DelegateClosingChecker()
Select Case MyOptions.ViewMode Select Case MyOptions.ViewMode
Case CView.Hot : OPT_VIEW_MODE_HOT.Checked = True Case CView.Hot : OPT_VIEW_MODE_HOT.Checked = True
Case CView.Top : OPT_VIEW_MODE_TOP.Checked = True Case CView.Top : OPT_VIEW_MODE_TOP.Checked = True
@@ -53,7 +51,7 @@ Namespace API.Reddit
MyDefs.InvokeLoaderError(ex) MyDefs.InvokeLoaderError(ex)
End Try End Try
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
With MyOptions With MyOptions
Select Case True Select Case True
Case OPT_VIEW_MODE_HOT.Checked : .ViewMode = CView.Hot Case OPT_VIEW_MODE_HOT.Checked : .ViewMode = CView.Hot
@@ -71,7 +69,7 @@ Namespace API.Reddit
End With End With
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub OPT_VIEW_MODE_NEW_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_VIEW_MODE_NEW.CheckedChanged Private Sub OPT_VIEW_MODE_NEW_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_VIEW_MODE_NEW.CheckedChanged

View File

@@ -730,7 +730,7 @@ Namespace API.Reddit
ElseIf Responser.StatusCode = HttpStatusCode.BadGateway Or ElseIf Responser.StatusCode = HttpStatusCode.BadGateway Or
Responser.StatusCode = HttpStatusCode.ServiceUnavailable Or Responser.StatusCode = HttpStatusCode.ServiceUnavailable Or
Responser.StatusCode = HttpStatusCode.GatewayTimeout Then Responser.StatusCode = HttpStatusCode.GatewayTimeout Then
MyMainLOG = $"Reddit is currently unavailable ({ToString()})" MyMainLOG = $"[{CInt(Responser.StatusCode)}] Reddit is currently unavailable ({ToString()})"
Else Else
If Not FromPE Then LogError(ex, Message) : HasError = True If Not FromPE Then LogError(ex, Message) : HasError = True
Return 0 Return 0

View File

@@ -197,6 +197,7 @@ Namespace API.Twitter
#Region "Video options" #Region "Video options"
Private Function CheckVideoNode(ByVal w As EContainer, ByVal PostID As String, ByVal PostDate As String) As Boolean Private Function CheckVideoNode(ByVal w As EContainer, ByVal PostID As String, ByVal PostDate As String) As Boolean
Try Try
If CheckForGif(w, PostID, PostDate) Then Return True
Dim URL$ = GetVideoNodeURL(w) Dim URL$ = GetVideoNodeURL(w)
If Not URL.IsEmptyString Then If Not URL.IsEmptyString Then
Dim f$ = UrlFile(URL) Dim f$ = UrlFile(URL)
@@ -212,6 +213,41 @@ Namespace API.Twitter
Return False Return False
End Try End Try
End Function End Function
Private Function CheckForGif(ByVal w As EContainer, ByVal PostID As String, ByVal PostDate As String) As Boolean
Try
Dim gifUrl As Predicate(Of EContainer) = Function(e) Not e.Value("content_type").IsEmptyString AndAlso
e.Value("content_type").Contains("mp4") AndAlso
Not e.Value("url").IsEmptyString
Dim url$, ff$
Dim f As SFile
Dim m As UserMedia
With w({"extended_entities", "media"}).XmlIfNothing
If .Count > 0 Then
For Each n As EContainer In .Self
If n.Value("type") = "animated_gif" Then
With n({"video_info", "variants"}).XmlIfNothing.ItemF({gifUrl}).XmlIfNothing
url = .Value("url")
ff = UrlFile(url)
If Not ff.IsEmptyString Then
If Not _DataNames.Contains(ff) Then
m = MediaFromData(url, PostID, PostDate)
f = m.File
If Not f.IsEmptyString Then f.Name = $"GIF_{f.Name}" : m.File = f
_TempMediaList.ListAddValue(m, LNC)
End If
Return True
End If
End With
End If
Next
End If
End With
Return False
Catch ex As Exception
LogError(ex, "[API.Twitter.UserData.CheckForGif]")
Return False
End Try
End Function
Private Shared Function GetVideoNodeURL(ByVal w As EContainer) As String Private Shared Function GetVideoNodeURL(ByVal w As EContainer) As String
Dim v As EContainer = w.GetNode(VideoNode) Dim v As EContainer = w.GetNode(VideoNode)
If Not v Is Nothing AndAlso v.Count > 0 Then If Not v Is Nothing AndAlso v.Count > 0 Then

View File

@@ -224,7 +224,8 @@ Friend Class ChannelViewForm : Implements IChannelLimits
.SmallImageList = New ImageList With {.ColorDepth = ColorDepth.Depth32Bit, .ImageSize = s} .SmallImageList = New ImageList With {.ColorDepth = ColorDepth.Depth32Bit, .ImageSize = s}
End With End With
CMB_CHANNELS.Enabled(False) = Not CMB_CHANNELS.Checked CMB_CHANNELS.Enabled(False) = Not CMB_CHANNELS.Checked
MyDefs.EndLoaderOperations() MyDefs.DelegateClosingChecker = False
MyDefs.EndLoaderOperations(False)
SetLimitsByChannel(, False) SetLimitsByChannel(, False)
End Sub End Sub
Private Sub ChannelViewForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing Private Sub ChannelViewForm_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing

View File

@@ -22,14 +22,12 @@ Friend Class ChannelsStatsForm : Implements IOkCancelDeleteToolbar
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design) .MyViewInitialize(Me, Settings.Design)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
.MyOkCancel.EnableDelete = False .MyOkCancel.EnableDelete = False
If Settings.Channels.Count > 0 Then If Settings.Channels.Count > 0 Then
RefillList() RefillList()
Else Else
MsgBoxE("Channels not found", vbExclamation) MsgBoxE("Channels not found", vbExclamation)
End If End If
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End With End With
Catch ex As Exception Catch ex As Exception
@@ -47,13 +45,13 @@ Friend Class ChannelsStatsForm : Implements IOkCancelDeleteToolbar
CMB_CHANNELS.EndUpdate() CMB_CHANNELS.EndUpdate()
End If End If
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub ToolbarBttDelete() Implements IOkCancelDeleteToolbar.ToolbarBttDelete Private Sub Delete() Implements IOkCancelDeleteToolbar.Delete
Try Try
Dim c As List(Of String) = CMB_CHANNELS.Items.CheckedItems.Select(Function(cc) CStr(cc.Value(1))).ListIfNothing Dim c As List(Of String) = CMB_CHANNELS.Items.CheckedItems.Select(Function(cc) CStr(cc.Value(1))).ListIfNothing
If c.ListExists Then If c.ListExists Then

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

View File

@@ -142,12 +142,27 @@ Namespace DownloadObjects
Private Const Name_ShowNotifications As String = "Notify" Private Const Name_ShowNotifications As String = "Notify"
#End Region #End Region
#Region "Declarations" #Region "Declarations"
Friend Property Mode As Modes = Modes.None Private _Mode As Modes = Modes.None
Friend Property Mode As Modes
Get
Return _Mode
End Get
Set(ByVal m As Modes)
_Mode = m
If _Mode = Modes.None Then [Stop]()
End Set
End Property
Friend ReadOnly Property Groups As List(Of String) Friend ReadOnly Property Groups As List(Of String)
Friend Property Timer As Integer = DefaultTimer Friend Property Timer As Integer = DefaultTimer
Friend Property ShowNotifications As Boolean = True Friend Property ShowNotifications As Boolean = True
Friend Property LastDownloadDate As Date = Now.AddYears(-1) Friend Property LastDownloadDate As Date = Now.AddYears(-1)
Private ReadOnly DateProvider As New ADateTime(ADateTime.Formats.BaseDateTime) Private ReadOnly DateProvider As New ADateTime(ADateTime.Formats.BaseDateTime)
Friend ReadOnly Property Information As String
Get
Return $"Last download date: {LastDownloadDate.ToStringDate(ADateTime.Formats.BaseDateTime)} " &
$"({IIf(Working, "working", "stopped")}{IIf(Working And Pause, ", paused", String.Empty)})"
End Get
End Property
Private File As SFile = $"Settings\AutoDownload.xml" Private File As SFile = $"Settings\AutoDownload.xml"
Private AThread As Thread Private AThread As Thread
#End Region #End Region
@@ -207,6 +222,11 @@ Namespace DownloadObjects
End Sub End Sub
#End Region #End Region
#Region "Execution" #Region "Execution"
Private ReadOnly Property Working As Boolean
Get
Return If(AThread?.IsAlive, False)
End Get
End Property
Friend Sub Start() Friend Sub Start()
If Not If(AThread?.IsAlive, False) And Not Mode = Modes.None Then If Not If(AThread?.IsAlive, False) And Not Mode = Modes.None Then
AThread = New Thread(New ThreadStart(AddressOf Checker)) AThread = New Thread(New ThreadStart(AddressOf Checker))
@@ -215,13 +235,14 @@ Namespace DownloadObjects
End If End If
End Sub End Sub
Private _StopRequested As Boolean = False Private _StopRequested As Boolean = False
Friend Property Pause As Boolean = False
Friend Sub [Stop]() Friend Sub [Stop]()
If If(AThread?.IsAlive, False) Then _StopRequested = True If Working Then _StopRequested = True
End Sub End Sub
Private Sub Checker() Private Sub Checker()
Try Try
While Not _StopRequested While Not _StopRequested Or Downloader.Working
If LastDownloadDate.AddMinutes(Timer) < Now And Not Downloader.Working Then Download() If LastDownloadDate.AddMinutes(Timer) < Now And Not Downloader.Working And Not Pause And Not _StopRequested Then Download()
Thread.Sleep(500) Thread.Sleep(500)
End While End While
Catch ex As Exception Catch ex As Exception

View File

@@ -57,7 +57,7 @@ Namespace DownloadObjects
'CONTAINER_MAIN.ContentPanel 'CONTAINER_MAIN.ContentPanel
' '
CONTAINER_MAIN.ContentPanel.Controls.Add(Me.DEF_GROUP) CONTAINER_MAIN.ContentPanel.Controls.Add(Me.DEF_GROUP)
CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(476, 217) CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(476, 242)
CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
CONTAINER_MAIN.LeftToolStripPanelVisible = False CONTAINER_MAIN.LeftToolStripPanelVisible = False
CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0) CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
@@ -90,7 +90,7 @@ Namespace DownloadObjects
Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!)) Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!)) Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) Me.DEF_GROUP.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.DEF_GROUP.Size = New System.Drawing.Size(476, 217) Me.DEF_GROUP.Size = New System.Drawing.Size(476, 242)
Me.DEF_GROUP.TabIndex = 0 Me.DEF_GROUP.TabIndex = 0
' '
'TXT_GROUPS 'TXT_GROUPS
@@ -244,6 +244,7 @@ Namespace DownloadObjects
Me.Controls.Add(CONTAINER_MAIN) Me.Controls.Add(CONTAINER_MAIN)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(492, 281) Me.MaximumSize = New System.Drawing.Size(492, 281)
Me.MinimizeBox = False Me.MinimizeBox = False

View File

@@ -61,7 +61,7 @@ Namespace DownloadObjects
If Settings.Groups.Count = 0 Then TXT_GROUPS.Clear() : TXT_GROUPS.Enabled = False If Settings.Groups.Count = 0 Then TXT_GROUPS.Clear() : TXT_GROUPS.Enabled = False
CH_NOTIFY.Checked = .ShowNotifications CH_NOTIFY.Checked = .ShowNotifications
TXT_TIMER.Text = .Timer TXT_TIMER.Text = .Timer
LBL_LAST_TIME_UP.Text &= .LastDownloadDate.ToStringDate(ADateTime.Formats.BaseDateTime) LBL_LAST_TIME_UP.Text = .Information
End With End With
If Not IsControlForm Then If Not IsControlForm Then
.MyFieldsChecker = New FieldsChecker .MyFieldsChecker = New FieldsChecker
@@ -69,8 +69,6 @@ Namespace DownloadObjects
.AddControl(Of Integer)(TXT_TIMER, TXT_TIMER.CaptionText,, New AutomationTimerChecker) .AddControl(Of Integer)(TXT_TIMER, TXT_TIMER.CaptionText,, New AutomationTimerChecker)
.EndLoaderOperations() .EndLoaderOperations()
End With End With
.DelegateClosingChecker()
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End If End If
End With End With
@@ -79,7 +77,7 @@ Namespace DownloadObjects
Private Sub AutoDownloaderEditorForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed Private Sub AutoDownloaderEditorForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
MyGroups.Clear() MyGroups.Clear()
End Sub End Sub
Friend Sub SaveSetiings() Implements IOkCancelToolbar.ToolbarBttOK Friend Sub SaveSettings() Implements IOkCancelToolbar.OK
If If(MyDefs.MyFieldsChecker?.AllParamsOK, True) Then If If(MyDefs.MyFieldsChecker?.AllParamsOK, True) Then
With Settings.Automation With Settings.Automation
Select Case True Select Case True
@@ -98,7 +96,7 @@ Namespace DownloadObjects
If Not IsControlForm Then MyDefs.CloseForm() If Not IsControlForm Then MyDefs.CloseForm()
End If End If
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub TXT_GROUPS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_GROUPS.ActionOnButtonClick Private Sub TXT_GROUPS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_GROUPS.ActionOnButtonClick

View File

@@ -46,7 +46,6 @@ Namespace DownloadObjects.Groups
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
If Not MyGroup Is Nothing Then If Not MyGroup Is Nothing Then
With MyGroup With MyGroup
TXT_NAME.Text = .Name TXT_NAME.Text = .Name
@@ -59,11 +58,10 @@ Namespace DownloadObjects.Groups
.MyFieldsChecker = New FieldsChecker .MyFieldsChecker = New FieldsChecker
DirectCast(.MyFieldsChecker, FieldsChecker).AddControl(Of String)(TXT_NAME, TXT_NAME.CaptionText,, New NameChecker(If(MyGroup?.Name, String.Empty))) DirectCast(.MyFieldsChecker, FieldsChecker).AddControl(Of String)(TXT_NAME, TXT_NAME.CaptionText,, New NameChecker(If(MyGroup?.Name, String.Empty)))
.MyFieldsChecker.EndLoaderOperations() .MyFieldsChecker.EndLoaderOperations()
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End With End With
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
If MyDefs.MyFieldsChecker.AllParamsOK Then If MyDefs.MyFieldsChecker.AllParamsOK Then
If MyGroup Is Nothing Then MyGroup = New DownloadGroup If MyGroup Is Nothing Then MyGroup = New DownloadGroup
With MyGroup With MyGroup
@@ -74,7 +72,7 @@ Namespace DownloadObjects.Groups
MyDefs.CloseForm() MyDefs.CloseForm()
End If End If
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
End Class End Class

View File

@@ -28,10 +28,11 @@ Namespace Editors
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design) .MyViewInitialize(Me, Settings.Design)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
Collections.ListAddList((From c In Settings.Users Where c.IsCollection Select c.CollectionName), LAP.NotContainsOnly, EDP.ThrowException) Collections.ListAddList((From c In Settings.Users Where c.IsCollection Select c.CollectionName), LAP.NotContainsOnly, EDP.ThrowException)
If Collections.ListExists Then Collections.Sort() : CMB_COLLECTIONS.Items.AddRange(From c In Collections Select New ListItem(c)) If Collections.ListExists Then Collections.Sort() : CMB_COLLECTIONS.Items.AddRange(From c In Collections Select New ListItem(c))
If Not Collection.IsEmptyString And Collections.Contains(Collection) Then CMB_COLLECTIONS.SelectedIndex = Collections.IndexOf(Collection) If Not Collection.IsEmptyString And Collections.Contains(Collection) Then CMB_COLLECTIONS.SelectedIndex = Collections.IndexOf(Collection)
.DelegateClosingChecker = False
.EndLoaderOperations(False)
End With End With
Catch ex As Exception Catch ex As Exception
MyDefs.InvokeLoaderError(ex) MyDefs.InvokeLoaderError(ex)
@@ -43,7 +44,7 @@ Namespace Editors
Private Sub CollectionEditorForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown Private Sub CollectionEditorForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Insert Then AddNewCollection() : e.Handled = True Else e.Handled = False If e.KeyCode = Keys.Insert Then AddNewCollection() : e.Handled = True Else e.Handled = False
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
If CMB_COLLECTIONS.SelectedIndex >= 0 Then If CMB_COLLECTIONS.SelectedIndex >= 0 Then
Collection = CMB_COLLECTIONS.Value.ToString Collection = CMB_COLLECTIONS.Value.ToString
MyDefs.CloseForm() MyDefs.CloseForm()
@@ -51,7 +52,7 @@ Namespace Editors
MsgBoxE("Collection not selected", MsgBoxStyle.Exclamation) MsgBoxE("Collection not selected", MsgBoxStyle.Exclamation)
End If End If
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub CMB_COLLECTIONS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles CMB_COLLECTIONS.ActionOnButtonClick Private Sub CMB_COLLECTIONS_ActionOnButtonClick(ByVal Sender As ActionButton) Handles CMB_COLLECTIONS.ActionOnButtonClick
@@ -59,7 +60,7 @@ Namespace Editors
End Sub End Sub
Private Sub CMB_COLLECTIONS_ActionOnListDoubleClick(ByVal _Item As ListViewItem) Handles CMB_COLLECTIONS.ActionOnListDoubleClick Private Sub CMB_COLLECTIONS_ActionOnListDoubleClick(ByVal _Item As ListViewItem) Handles CMB_COLLECTIONS.ActionOnListDoubleClick
_Item.Selected = True _Item.Selected = True
ToolbarBttOK() OK()
End Sub End Sub
Private Sub AddNewCollection() Private Sub AddNewCollection()
Dim c$ = InputBoxE("Enter new collection name:", "Collection name") Dim c$ = InputBoxE("Enter new collection name:", "Collection name")

View File

@@ -30,7 +30,6 @@ Namespace Editors
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
With Settings With Settings
'Basis 'Basis
TXT_GLOBAL_PATH.Text = .GlobalPath.Value TXT_GLOBAL_PATH.Text = .GlobalPath.Value
@@ -96,7 +95,6 @@ Namespace Editors
New DownloadObjects.AutoDownloaderEditorForm.AutomationTimerChecker) New DownloadObjects.AutoDownloaderEditorForm.AutomationTimerChecker)
.EndLoaderOperations() .EndLoaderOperations()
End With End With
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
ChangeFileNameChangersEnabling() ChangeFileNameChangersEnabling()
End With End With
@@ -107,7 +105,7 @@ Namespace Editors
Private Sub GlobalSettingsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed Private Sub GlobalSettingsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
Automation.Dispose() Automation.Dispose()
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
If MyDefs.MyFieldsChecker.AllParamsOK Then If MyDefs.MyFieldsChecker.AllParamsOK Then
With Settings With Settings
Dim a As Func(Of String, Object, Integer) = Dim a As Func(Of String, Object, Integer) =
@@ -195,14 +193,14 @@ Namespace Editors
.ChannelsAddUserImagesFromAllChannels.Value = CH_COPY_CHANNEL_USER_IMAGE_ALL.Checked .ChannelsAddUserImagesFromAllChannels.Value = CH_COPY_CHANNEL_USER_IMAGE_ALL.Checked
.ChannelsDefaultTemporary.Value = CH_CHANNELS_USERS_TEMP.Checked .ChannelsDefaultTemporary.Value = CH_CHANNELS_USERS_TEMP.Checked
Automation.SaveSetiings() Automation.SaveSettings()
.EndUpdate() .EndUpdate()
End With End With
MyDefs.CloseForm() MyDefs.CloseForm()
End If End If
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub TXT_GLOBAL_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_GLOBAL_PATH.ActionOnButtonClick Private Sub TXT_GLOBAL_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_GLOBAL_PATH.ActionOnButtonClick

View File

@@ -43,7 +43,6 @@ Friend Class LabelsForm : Implements IOkCancelDeleteToolbar
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design) .MyViewInitialize(Me, Settings.Design)
.AddOkCancelToolbar(, WithDeleteButton) .AddOkCancelToolbar(, WithDeleteButton)
.DelegateClosingChecker()
If Source.Count > 0 Then If Source.Count > 0 Then
Dim items As New List(Of Integer) Dim items As New List(Of Integer)
CMB_LABELS.BeginUpdate() CMB_LABELS.BeginUpdate()
@@ -55,7 +54,6 @@ Friend Class LabelsForm : Implements IOkCancelDeleteToolbar
CMB_LABELS.EndUpdate() CMB_LABELS.EndUpdate()
CMB_LABELS.ListCheckedIndexes = items CMB_LABELS.ListCheckedIndexes = items
End If End If
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End With End With
Catch ex As Exception Catch ex As Exception
@@ -68,7 +66,7 @@ Friend Class LabelsForm : Implements IOkCancelDeleteToolbar
Private Sub LabelsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed Private Sub LabelsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
LabelsList.Clear() LabelsList.Clear()
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
Try Try
If MultiUser Then If MultiUser Then
Dim m As New MMessage("You are changing labels for more one user" & vbNewLine & "What do you want to do?", Dim m As New MMessage("You are changing labels for more one user" & vbNewLine & "What do you want to do?",
@@ -90,10 +88,10 @@ Friend Class LabelsForm : Implements IOkCancelDeleteToolbar
ErrorsDescriber.Execute(EDP.LogMessageValue, ex, "Choosing labels") ErrorsDescriber.Execute(EDP.LogMessageValue, ex, "Choosing labels")
End Try End Try
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub ToolbarBttDelete() Implements IOkCancelDeleteToolbar.ToolbarBttDelete Private Sub Delete() Implements IOkCancelDeleteToolbar.Delete
LabelsList.Clear() LabelsList.Clear()
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub

View File

@@ -52,7 +52,6 @@ Namespace Editors
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
.MyFieldsChecker = New FieldsChecker .MyFieldsChecker = New FieldsChecker
With Host With Host
@@ -144,7 +143,6 @@ Namespace Editors
End With End With
.MyFieldsChecker.EndLoaderOperations() .MyFieldsChecker.EndLoaderOperations()
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End With End With
Catch ex As Exception Catch ex As Exception
@@ -157,7 +155,7 @@ Namespace Editors
LBL_AUTH.Dispose() LBL_AUTH.Dispose()
LBL_OTHER.Dispose() LBL_OTHER.Dispose()
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
If MyDefs.MyFieldsChecker.AllParamsOK Then If MyDefs.MyFieldsChecker.AllParamsOK Then
Dim i%, ii% Dim i%, ii%
With Host With Host
@@ -200,7 +198,7 @@ Namespace Editors
MyDefs.CloseForm() MyDefs.CloseForm()
End If End If
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub TXT_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_PATH.ActionOnButtonClick Private Sub TXT_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_PATH.ActionOnButtonClick

View File

@@ -22,7 +22,6 @@ Namespace Editors
Private Sub SiteSelectionForm_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub SiteSelectionForm_Load(sender As Object, e As EventArgs) Handles Me.Load
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.DelegateClosingChecker()
.AddOkCancelToolbar() .AddOkCancelToolbar()
CMB_SITES.BeginUpdate() CMB_SITES.BeginUpdate()
Dim sl As List(Of String) = ListAddList(Nothing, Settings.Plugins.Select(Function(p) p.Name)) Dim sl As List(Of String) = ListAddList(Nothing, Settings.Plugins.Select(Function(p) p.Name))
@@ -32,14 +31,15 @@ Namespace Editors
sl.Clear() sl.Clear()
CMB_SITES.EndUpdate() CMB_SITES.EndUpdate()
If l.Count > 0 Then CMB_SITES.ListCheckedIndexes = l : l.Clear() If l.Count > 0 Then CMB_SITES.ListCheckedIndexes = l : l.Clear()
.EndLoaderOperations() .DelegateClosingChecker = False
.EndLoaderOperations(False)
.MyOkCancel.EnableOK = True .MyOkCancel.EnableOK = True
End With End With
End Sub End Sub
Private Sub SiteSelectionForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed Private Sub SiteSelectionForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
SelectedSites.Clear() SelectedSites.Clear()
End Sub End Sub
Public Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Public Sub OK() Implements IOkCancelToolbar.OK
Try Try
SelectedSites.ListAddList(CMB_SITES.Items.CheckedItems.Select(Function(i) CStr(i.Value(0))), LAP.ClearBeforeAdd) SelectedSites.ListAddList(CMB_SITES.Items.CheckedItems.Select(Function(i) CStr(i.Value(0))), LAP.ClearBeforeAdd)
MyDefs.CloseForm() MyDefs.CloseForm()
@@ -47,7 +47,7 @@ Namespace Editors
ErrorsDescriber.Execute(EDP.LogMessageValue, ex) ErrorsDescriber.Execute(EDP.LogMessageValue, ex)
End Try End Try
End Sub End Sub
Public Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Public Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
End Class End Class

View File

@@ -165,7 +165,6 @@ Namespace Editors
.MyFieldsChecker = New FieldsChecker .MyFieldsChecker = New FieldsChecker
DirectCast(.MyFieldsChecker, FieldsChecker).AddControl(Of String)(TXT_USER, TXT_USER.CaptionText) DirectCast(.MyFieldsChecker, FieldsChecker).AddControl(Of String)(TXT_USER, TXT_USER.CaptionText)
.MyFieldsChecker.EndLoaderOperations() .MyFieldsChecker.EndLoaderOperations()
.AppendDetectors()
.EndLoaderOperations() .EndLoaderOperations()
End With End With
Catch ex As Exception Catch ex As Exception
@@ -194,7 +193,7 @@ Namespace Editors
Private Function GetSiteByCheckers() As SettingsHost Private Function GetSiteByCheckers() As SettingsHost
Return If(CMB_SITE.SelectedIndex >= 0, Settings(CStr(CMB_SITE.Items(CMB_SITE.SelectedIndex).Value(0))), Nothing) Return If(CMB_SITE.SelectedIndex >= 0, Settings(CStr(CMB_SITE.Items(CMB_SITE.SelectedIndex).Value(0))), Nothing)
End Function End Function
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
If Not CH_ADD_BY_LIST.Checked Then If Not CH_ADD_BY_LIST.Checked Then
If MyDef.MyFieldsChecker.AllParamsOK Then If MyDef.MyFieldsChecker.AllParamsOK Then
Dim s As SettingsHost = GetSiteByCheckers() Dim s As SettingsHost = GetSiteByCheckers()
@@ -254,7 +253,7 @@ Namespace Editors
CloseForm: CloseForm:
MyDef.CloseForm() MyDef.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDef.CloseForm(IIf(StartIndex >= 0, DialogResult.OK, DialogResult.Cancel)) MyDef.CloseForm(IIf(StartIndex >= 0, DialogResult.OK, DialogResult.Cancel))
End Sub End Sub
Private _TextChangeInvoked As Boolean = False Private _TextChangeInvoked As Boolean = False

View File

@@ -26,13 +26,13 @@ Friend Class FDatePickerForm : Implements IOkCancelDeleteToolbar
With MyDefs With MyDefs
.MyViewInitialize(Me, Settings.Design, True) .MyViewInitialize(Me, Settings.Design, True)
.AddOkCancelToolbar() .AddOkCancelToolbar()
.DelegateClosingChecker()
If _InitialValue.HasValue Then If _InitialValue.HasValue Then
DT.Checked = True DT.Checked = True
DT.Value = _InitialValue.Value.Date DT.Value = _InitialValue.Value.Date
Else Else
DT.Checked = False DT.Checked = False
End If End If
.DelegateClosingChecker = False
.EndLoaderOperations() .EndLoaderOperations()
MyDefs.MyOkCancel.EnableOK = True MyDefs.MyOkCancel.EnableOK = True
End With End With
@@ -40,13 +40,13 @@ Friend Class FDatePickerForm : Implements IOkCancelDeleteToolbar
MyDefs.InvokeLoaderError(ex) MyDefs.InvokeLoaderError(ex)
End Try End Try
End Sub End Sub
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK Private Sub OK() Implements IOkCancelToolbar.OK
MyDefs.CloseForm() MyDefs.CloseForm()
End Sub End Sub
Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel Private Sub Cancel() Implements IOkCancelToolbar.Cancel
MyDefs.CloseForm(DialogResult.Cancel) MyDefs.CloseForm(DialogResult.Cancel)
End Sub End Sub
Private Sub ToolbarBttDelete() Implements IOkCancelDeleteToolbar.ToolbarBttDelete Private Sub Delete() Implements IOkCancelDeleteToolbar.Delete
MyDefs.CloseForm(DialogResult.Abort) MyDefs.CloseForm(DialogResult.Abort)
End Sub End Sub
End Class End Class

View File

@@ -104,6 +104,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Me.BTT_TRAY_SHOW_HIDE = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_TRAY_SHOW_HIDE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_TRAY_CLOSE = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_TRAY_CLOSE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_TRAY_CLOSE_NO_SCRIPT = New System.Windows.Forms.ToolStripMenuItem() Me.BTT_TRAY_CLOSE_NO_SCRIPT = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_DOWN_AUTOMATION_PAUSE = New System.Windows.Forms.ToolStripMenuItem()
SEP_1 = New System.Windows.Forms.ToolStripSeparator() SEP_1 = New System.Windows.Forms.ToolStripSeparator()
SEP_2 = New System.Windows.Forms.ToolStripSeparator() SEP_2 = New System.Windows.Forms.ToolStripSeparator()
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator() CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
@@ -312,7 +313,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
'MENU_DOWN_ALL 'MENU_DOWN_ALL
' '
Me.MENU_DOWN_ALL.AutoToolTip = False Me.MENU_DOWN_ALL.AutoToolTip = False
Me.MENU_DOWN_ALL.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_DOWN_ALL, Me.BTT_DOWN_SITE, MENU_DOWN_ALL_SEP_1, Me.BTT_DOWN_ALL_FULL, Me.BTT_DOWN_SITE_FULL, MENU_DOWN_ALL_SEP_2, Me.BTT_ADD_NEW_GROUP, MENU_DOWN_ALL_SEP_3, Me.BTT_DOWN_AUTOMATION}) Me.MENU_DOWN_ALL.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_DOWN_ALL, Me.BTT_DOWN_SITE, MENU_DOWN_ALL_SEP_1, Me.BTT_DOWN_ALL_FULL, Me.BTT_DOWN_SITE_FULL, MENU_DOWN_ALL_SEP_2, Me.BTT_ADD_NEW_GROUP, MENU_DOWN_ALL_SEP_3, Me.BTT_DOWN_AUTOMATION, Me.BTT_DOWN_AUTOMATION_PAUSE})
Me.MENU_DOWN_ALL.Image = Global.SCrawler.My.Resources.Resources.StartPic_01_Green_16 Me.MENU_DOWN_ALL.Image = Global.SCrawler.My.Resources.Resources.StartPic_01_Green_16
Me.MENU_DOWN_ALL.ImageTransparentColor = System.Drawing.Color.Magenta Me.MENU_DOWN_ALL.ImageTransparentColor = System.Drawing.Color.Magenta
Me.MENU_DOWN_ALL.Name = "MENU_DOWN_ALL" Me.MENU_DOWN_ALL.Name = "MENU_DOWN_ALL"
@@ -765,6 +766,13 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Me.BTT_TRAY_CLOSE_NO_SCRIPT.ToolTipText = "Close the program without executing the script" Me.BTT_TRAY_CLOSE_NO_SCRIPT.ToolTipText = "Close the program without executing the script"
Me.BTT_TRAY_CLOSE_NO_SCRIPT.Visible = False Me.BTT_TRAY_CLOSE_NO_SCRIPT.Visible = False
' '
'BTT_DOWN_AUTOMATION_PAUSE
'
Me.BTT_DOWN_AUTOMATION_PAUSE.Image = Global.SCrawler.My.Resources.Resources.Pause_Blue_16
Me.BTT_DOWN_AUTOMATION_PAUSE.Name = "BTT_DOWN_AUTOMATION_PAUSE"
Me.BTT_DOWN_AUTOMATION_PAUSE.Size = New System.Drawing.Size(231, 22)
Me.BTT_DOWN_AUTOMATION_PAUSE.Text = "Pause automation"
'
'MainFrame 'MainFrame
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -860,4 +868,5 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
Friend WithEvents BTT_TRAY_CLOSE_NO_SCRIPT As ToolStripMenuItem Friend WithEvents BTT_TRAY_CLOSE_NO_SCRIPT As ToolStripMenuItem
Friend WithEvents TRAY_CONTEXT As ContextMenuStrip Friend WithEvents TRAY_CONTEXT As ContextMenuStrip
Private WithEvents BTT_DOWN_AUTOMATION As ToolStripMenuItem Private WithEvents BTT_DOWN_AUTOMATION As ToolStripMenuItem
Private WithEvents BTT_DOWN_AUTOMATION_PAUSE As ToolStripMenuItem
End Class End Class

View File

@@ -44,6 +44,7 @@ Public Class MainFrame
End Sub End Sub
Private Sub MainFrame_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub MainFrame_Load(sender As Object, e As EventArgs) Handles Me.Load
If _VideoDownloadingMode Then GoTo FormClosingInvoker If _VideoDownloadingMode Then GoTo FormClosingInvoker
If Now.Month = 6 Then Text = "SCrawler: Happy LGBT Pride Month! :-)"
Settings.DeleteCachePath() Settings.DeleteCachePath()
MainFrameObj = New MainFrameObjects(Me) MainFrameObj = New MainFrameObjects(Me)
MainFrameObj.ChangeCloseVisible() MainFrameObj.ChangeCloseVisible()
@@ -430,6 +431,10 @@ CloseResume:
If f.DialogResult = DialogResult.OK AndAlso Not Settings.Automation.Mode = AutoDownloader.Modes.None Then Settings.Automation.Start() If f.DialogResult = DialogResult.OK AndAlso Not Settings.Automation.Mode = AutoDownloader.Modes.None Then Settings.Automation.Start()
End Using End Using
End Sub End Sub
Private Sub BTT_DOWN_AUTOMATION_PAUSE_Click(sender As Object, e As EventArgs) Handles BTT_DOWN_AUTOMATION_PAUSE.Click
Settings.Automation.Pause = Not Settings.Automation.Pause
BTT_DOWN_AUTOMATION_PAUSE.Checked = Settings.Automation.Pause
End Sub
Private Sub BTT_DOWN_VIDEO_Click(sender As Object, e As EventArgs) Handles BTT_DOWN_VIDEO.Click Private Sub BTT_DOWN_VIDEO_Click(sender As Object, e As EventArgs) Handles BTT_DOWN_VIDEO.Click
DownloadVideoByURL() DownloadVideoByURL()
End Sub End Sub

View File

@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2022.6.3.0")> <Assembly: AssemblyVersion("2022.6.10.0")>
<Assembly: AssemblyFileVersion("2022.6.3.0")> <Assembly: AssemblyFileVersion("2022.6.10.0")>
<Assembly: NeutralResourcesLanguage("en")> <Assembly: NeutralResourcesLanguage("en")>

View File

@@ -170,6 +170,16 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property Pause_Blue_16() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("Pause_Blue_16", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized resource of type System.Drawing.Bitmap. ''' Looks up a localized resource of type System.Drawing.Bitmap.
'''</summary> '''</summary>

View File

@@ -196,4 +196,7 @@
<data name="GroupBy_284" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="GroupBy_284" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Content\Icons\GroupBy_284.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Content\Icons\GroupBy_284.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="Pause_Blue_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Content\Pictures\Pause_Blue_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@@ -410,6 +410,7 @@
<None Include="Content\Pictures\HeartPic_32.png" /> <None Include="Content\Pictures\HeartPic_32.png" />
<None Include="Content\Pictures\ScriptPic32.png" /> <None Include="Content\Pictures\ScriptPic32.png" />
<None Include="Content\Icons\GroupBy_284.ico" /> <None Include="Content\Icons\GroupBy_284.ico" />
<None Include="Content\Pictures\Pause_Blue_16.png" />
<Content Include="ffmpeg.exe"> <Content Include="ffmpeg.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>