mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-15 08:12:17 +00:00
Compare commits
8 Commits
2022.6.3.0
...
2022.6.10.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab020d9b5f | ||
|
|
4ba1624edf | ||
|
|
f3d956f33f | ||
|
|
4a5e050201 | ||
|
|
dd272c6f6d | ||
|
|
fbcda1ae75 | ||
|
|
9e87369c9b | ||
|
|
cc3618a50e |
@@ -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
|
||||||
|
|||||||
15
Changelog.md
15
Changelog.md
@@ -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 |
@@ -1,3 +1,5 @@
|
|||||||
|
# :rainbow_flag: Happy LGBT Pride Month :tada:
|
||||||
|
|
||||||
# Social networks crawler
|
# Social networks crawler
|
||||||
|
|
||||||
[](https://github.com/AAndyProgram/SCrawler/releases/latest)
|
[](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**.
|
||||||
|
|
||||||
|
|||||||
@@ -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")>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
BIN
SCrawler/Content/Pictures/Pause_Blue_16.png
Normal file
BIN
SCrawler/Content/Pictures/Pause_Blue_16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 345 B |
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
11
SCrawler/MainFrame.Designer.vb
generated
11
SCrawler/MainFrame.Designer.vb
generated
@@ -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
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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")>
|
||||||
|
|||||||
10
SCrawler/My Project/Resources.Designer.vb
generated
10
SCrawler/My Project/Resources.Designer.vb
generated
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user