mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-15 16:22:17 +00:00
Compare commits
12 Commits
2023.9.20.
...
2023.10.10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
831d9a5a09 | ||
|
|
326e61a968 | ||
|
|
61903afe3f | ||
|
|
fa3f39b905 | ||
|
|
c76fd7f918 | ||
|
|
66085e0d95 | ||
|
|
0a1602b453 | ||
|
|
adf788781d | ||
|
|
77711965c0 | ||
|
|
7f1ac6f512 | ||
|
|
f4eb33d8da | ||
|
|
77443cedc4 |
48
Changelog.md
48
Changelog.md
@@ -1,3 +1,51 @@
|
|||||||
|
# 2023.10.10.0
|
||||||
|
|
||||||
|
*2023-10-10*
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- Notification if the user has disabled downloading from the site
|
||||||
|
- Standalone downloader: new setting `Create URL files`
|
||||||
|
- Changed the sessions naming method to be more intuitive
|
||||||
|
- Settings that allow the user to change the number of saved session (`Settings` - `Feed` - `Store session data`)
|
||||||
|
- **YouTube: new settings `Create URL files` and `Create description files`**
|
||||||
|
- YouTube: added the `Clear selected` button
|
||||||
|
- YouTube: group the `Clear and remove` buttons in the menu
|
||||||
|
- Fixed
|
||||||
|
- Reddit: unable to save settings without OAuth data
|
||||||
|
- JustForFans: rewritten m3u8 downloader
|
||||||
|
- JustForFans: downloading of missing posts
|
||||||
|
- JustForFans: download to the date
|
||||||
|
- JustForFans: corrupted files
|
||||||
|
- Threads: new token is not saved if it was received during download
|
||||||
|
- ThisVid: parsing stops when new videos are added
|
||||||
|
- YouTube: file name is missing when destination is changed by selecting one of the saved locations
|
||||||
|
- YouTube: missing files still appear in the list
|
||||||
|
- Collections: labels are removed when creating a new collection
|
||||||
|
- Standalone downloader: cached thumbnail is not removed when item is removed from the list
|
||||||
|
- Minor bugs
|
||||||
|
|
||||||
|
# 2023.10.1.0
|
||||||
|
|
||||||
|
*2023-10-01*
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- **Threads.net**
|
||||||
|
- YouTube: add URL standardization
|
||||||
|
- Fixed
|
||||||
|
- UserEditor: disable updating labels if they haven't changed
|
||||||
|
- Collections: incorrect updating of colors and labels when adding a new user
|
||||||
|
- RedGifs: incorrect handling of error 410
|
||||||
|
- Mastodon: hide error 503
|
||||||
|
- JustForFans: some profiles won't download
|
||||||
|
- Minor bugs
|
||||||
|
|
||||||
|
# 2023.9.21.0
|
||||||
|
|
||||||
|
*2023-09-21*
|
||||||
|
|
||||||
|
- Fixed
|
||||||
|
- PornHub: videos are not downloading
|
||||||
|
|
||||||
# 2023.9.20.0
|
# 2023.9.20.0
|
||||||
|
|
||||||
*2023-09-20*
|
*2023-09-20*
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
BIN
ProgramScreenshots/SettingsSiteThreads.png
Normal file
BIN
ProgramScreenshots/SettingsSiteThreads.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
[](https://github.com/AAndyProgram/SCrawler/releases/latest)
|
[](https://github.com/AAndyProgram/SCrawler/releases/latest)
|
||||||
[](https://github.com/AAndyProgram/SCrawler/blob/main/LICENSE)
|
[](https://github.com/AAndyProgram/SCrawler/blob/main/LICENSE)
|
||||||
|
[](https://discord.gg/uFNUXvFFmg)
|
||||||
[](https://github.com/AAndyProgram/SCrawler/releases)
|
[](https://github.com/AAndyProgram/SCrawler/releases)
|
||||||
[](FAQ.md)
|
[](FAQ.md)
|
||||||
[](https://github.com/AAndyProgram/SCrawler/wiki)
|
[](https://github.com/AAndyProgram/SCrawler/wiki)
|
||||||
@@ -11,7 +12,7 @@
|
|||||||
:eu:
|
:eu:
|
||||||
:greece:
|
:greece:
|
||||||
|
|
||||||
A program to download photo and video from [any site](#supported-sites) (e.g. YouTube, YouTube Music, OnlyFans, Reddit, Twitter, Mastodon, Instagram, TikTok, RedGifs, JustForFans, PornHub, XHamster, XVIDEOS, ThisVid, LPSG, Pinterest).
|
A program to download photo and video from [any site](#supported-sites) (e.g. YouTube, YouTube Music, OnlyFans, Reddit, Twitter, Mastodon, Instagram, Threads, TikTok, RedGifs, JustForFans, PornHub, XHamster, XVIDEOS, ThisVid, LPSG, Pinterest).
|
||||||
|
|
||||||
**If you like SCrawler, please like the program on [this site](https://alternativeto.net/software/scrawler/about/) and/or [this](https://www.softpedia.com/get/Internet/Download-Managers/Social-networks-crawler.shtml)**
|
**If you like SCrawler, please like the program on [this site](https://alternativeto.net/software/scrawler/about/) and/or [this](https://www.softpedia.com/get/Internet/Download-Managers/Social-networks-crawler.shtml)**
|
||||||
<!---Do you like this program? Consider adding to my coffee fund by making a donation to show your support. :blush:
|
<!---Do you like this program? Consider adding to my coffee fund by making a donation to show your support. :blush:
|
||||||
@@ -37,6 +38,7 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo
|
|||||||
- JustForFans images and videos, saved (bookmarked) posts;
|
- JustForFans images and videos, saved (bookmarked) posts;
|
||||||
- Mastodon images and videos, saved (bookmarked) posts;
|
- Mastodon images and videos, saved (bookmarked) posts;
|
||||||
- Instagram images and videos, tagged posts, stories, saved posts;
|
- Instagram images and videos, tagged posts, stories, saved posts;
|
||||||
|
- Threads images and videos;
|
||||||
- TikTok videos;
|
- TikTok videos;
|
||||||
- Pinterest boards, users, saved posts;
|
- Pinterest boards, users, saved posts;
|
||||||
- Imgur images, galleries and videos;
|
- Imgur images, galleries and videos;
|
||||||
@@ -73,6 +75,7 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo
|
|||||||
- **OnlyFans**
|
- **OnlyFans**
|
||||||
- **Mastodon**
|
- **Mastodon**
|
||||||
- **Instagram**
|
- **Instagram**
|
||||||
|
- **Threads**
|
||||||
- JustForFans
|
- JustForFans
|
||||||
- TikTok
|
- TikTok
|
||||||
- RedGifs
|
- RedGifs
|
||||||
@@ -124,6 +127,7 @@ First, the program downloads the full profile. After the program downloads only
|
|||||||
- [OnlyFans](https://github.com/AAndyProgram/SCrawler/wiki/Settings#onlyfans)
|
- [OnlyFans](https://github.com/AAndyProgram/SCrawler/wiki/Settings#onlyfans)
|
||||||
- [Mastodon](https://github.com/AAndyProgram/SCrawler/wiki/Settings#mastodon)
|
- [Mastodon](https://github.com/AAndyProgram/SCrawler/wiki/Settings#mastodon)
|
||||||
- [Instagram](https://github.com/AAndyProgram/SCrawler/wiki/Settings#instagram)
|
- [Instagram](https://github.com/AAndyProgram/SCrawler/wiki/Settings#instagram)
|
||||||
|
- [Threads](https://github.com/AAndyProgram/SCrawler/wiki/Settings#threads)
|
||||||
- [JustForFans](https://github.com/AAndyProgram/SCrawler/wiki/Settings#justforfans)
|
- [JustForFans](https://github.com/AAndyProgram/SCrawler/wiki/Settings#justforfans)
|
||||||
- [TikTok](https://github.com/AAndyProgram/SCrawler/wiki/Settings#tiktok)
|
- [TikTok](https://github.com/AAndyProgram/SCrawler/wiki/Settings#tiktok)
|
||||||
- [RedGifs](https://github.com/AAndyProgram/SCrawler/wiki/Settings#redgifs)
|
- [RedGifs](https://github.com/AAndyProgram/SCrawler/wiki/Settings#redgifs)
|
||||||
|
|||||||
@@ -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("2023.8.6.0")>
|
<Assembly: AssemblyVersion("2023.10.1.0")>
|
||||||
<Assembly: AssemblyFileVersion("2023.8.6.0")>
|
<Assembly: AssemblyFileVersion("2023.10.1.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ Namespace Plugin
|
|||||||
Overloads Sub Add(ByVal Message As String)
|
Overloads Sub Add(ByVal Message As String)
|
||||||
Overloads Sub Add(ByVal ex As Exception, ByVal Message As String,
|
Overloads Sub Add(ByVal ex As Exception, ByVal Message As String,
|
||||||
Optional ByVal ShowMainMsg As Boolean = False, Optional ByVal ShowErrorMsg As Boolean = False,
|
Optional ByVal ShowMainMsg As Boolean = False, Optional ByVal ShowErrorMsg As Boolean = False,
|
||||||
Optional ByVal SendInLog As Boolean = True)
|
Optional ByVal SendToLog As Boolean = True)
|
||||||
End Interface
|
End Interface
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -20,6 +20,29 @@ Namespace API.YouTube.Base
|
|||||||
Public Const UrlTypePattern As String = "(?<=https?://[^/]*?youtube.com/)((@|[^\?/&]+))([/\?]{0,1}(list=|v=|)([^\?/&]*))(?=(\S+|\Z|))"
|
Public Const UrlTypePattern As String = "(?<=https?://[^/]*?youtube.com/)((@|[^\?/&]+))([/\?]{0,1}(list=|v=|)([^\?/&]*))(?=(\S+|\Z|))"
|
||||||
Private Sub New()
|
Private Sub New()
|
||||||
End Sub
|
End Sub
|
||||||
|
Public Shared Function StandardizeURL(ByVal URL As String) As String
|
||||||
|
Try
|
||||||
|
Dim isMusic As Boolean = False, isShorts As Boolean = False
|
||||||
|
If Info_GetUrlType(URL, isMusic, isShorts) = YouTubeMediaType.Single Then
|
||||||
|
If Not isMusic And Not isShorts Then
|
||||||
|
Dim videoOptionRegex As RParams = RParams.DMS("[\?&]v=([^\?&]+)", 1, EDP.ReturnValue)
|
||||||
|
Dim data As List(Of String) = RegexReplace(URL, RParams.DMS(UrlTypePattern, 0, RegexReturn.ListByMatch, EDP.ReturnValue))
|
||||||
|
Dim val$ = String.Empty
|
||||||
|
If data.ListExists Then
|
||||||
|
For Each d$ In data
|
||||||
|
val = RegexReplace(d, videoOptionRegex)
|
||||||
|
If Not val.IsEmptyString Then Exit For
|
||||||
|
Next
|
||||||
|
data.Clear()
|
||||||
|
End If
|
||||||
|
If Not val.IsEmptyString Then Return $"https://www.youtube.com/watch?v={val}"
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return URL
|
||||||
|
Catch ex As Exception
|
||||||
|
Return URL
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
Public Shared Function IsMyUrl(ByVal URL As String) As Boolean
|
Public Shared Function IsMyUrl(ByVal URL As String) As Boolean
|
||||||
Return Not Info_GetUrlType(URL) = YouTubeMediaType.Undefined
|
Return Not Info_GetUrlType(URL) = YouTubeMediaType.Undefined
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@@ -132,7 +132,23 @@ Namespace API.YouTube.Base
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
#End Region
|
#End Region
|
||||||
|
#Region "Info"
|
||||||
|
<Browsable(True), GridVisible, XMLVN({"Info"}), Category("Info"), DisplayName("Create URL files"),
|
||||||
|
Description("Create local URL files to link to the original page. Default: false.")>
|
||||||
|
Public ReadOnly Property CreateUrlFiles As XMLValue(Of Boolean)
|
||||||
|
Private ReadOnly Property IDownloaderSettings_CreateUrlFiles As Boolean Implements IDownloaderSettings.CreateUrlFiles
|
||||||
|
Get
|
||||||
|
Return CreateUrlFiles
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
<Browsable(True), GridVisible, XMLVN({"Info"}), Category("Info"), DisplayName("Create description files"),
|
||||||
|
Description("Create video description files. Default: false.")>
|
||||||
|
Public ReadOnly Property CreateDescriptionFiles As XMLValue(Of Boolean)
|
||||||
|
#End Region
|
||||||
#Region "Defaults"
|
#Region "Defaults"
|
||||||
|
<Browsable(True), GridVisible, XMLVN({"Defaults"}, True), Category("Defaults"), DisplayName("Standardize URLs"),
|
||||||
|
Description("Standardize URLs by eliminating unwanted strings. Default: true.")>
|
||||||
|
Public ReadOnly Property StandardizeURLs As XMLValue(Of Boolean)
|
||||||
<Browsable(True), GridVisible, XMLVN({"Defaults"}), Category("Defaults"), DisplayName("Replace modification date"),
|
<Browsable(True), GridVisible, XMLVN({"Defaults"}), Category("Defaults"), DisplayName("Replace modification date"),
|
||||||
Description("Set the file date to the date the video was added (website) (if available). Default: false.")>
|
Description("Set the file date to the date the video was added (website) (if available). Default: false.")>
|
||||||
Public ReadOnly Property ReplaceModificationDate As XMLValue(Of Boolean)
|
Public ReadOnly Property ReplaceModificationDate As XMLValue(Of Boolean)
|
||||||
|
|||||||
@@ -433,7 +433,28 @@ Namespace API.YouTube.Controls
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Footer"
|
#Region "Footer"
|
||||||
Private Sub BTT_BROWSE_MouseClick(sender As Object, e As MouseEventArgs) Handles BTT_BROWSE.MouseClick
|
Private _FilePathBeforeItemChange As SFile = Nothing
|
||||||
|
Private Sub TXT_FILE_ActionSelectedItemBeforeChanged(ByVal Sender As Object, ByVal e As EventArgs, ByVal Item As ListViewItem) Handles TXT_FILE.ActionSelectedItemBeforeChanged
|
||||||
|
If Not TXT_FILE.Text.IsEmptyString Then _FilePathBeforeItemChange = TXT_FILE.Text Else _FilePathBeforeItemChange = Nothing
|
||||||
|
End Sub
|
||||||
|
Private Sub TXT_FILE_ActionSelectedItemChanged(ByVal Sender As Object, ByVal e As EventArgs, ByVal Item As ListViewItem) Handles TXT_FILE.ActionSelectedItemChanged
|
||||||
|
Try
|
||||||
|
If Not MyContainer.HasElements Then
|
||||||
|
Dim currentPath As SFile = _FilePathBeforeItemChange
|
||||||
|
Dim newPath As SFile = TXT_FILE.Text.CSFileP
|
||||||
|
If Not currentPath.File.IsEmptyString Then
|
||||||
|
newPath.Name = currentPath.Name
|
||||||
|
newPath.Extension = currentPath.Extension
|
||||||
|
TXT_FILE.Text = newPath
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.YouTube.Controls.VideoOptionsForm.ChangeDestinationPath]")
|
||||||
|
Finally
|
||||||
|
_FilePathBeforeItemChange = Nothing
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub BTT_BROWSE_MouseDown(sender As Object, e As MouseEventArgs) Handles BTT_BROWSE.MouseDown
|
||||||
Dim f As SFile
|
Dim f As SFile
|
||||||
#Disable Warning BC40000
|
#Disable Warning BC40000
|
||||||
If MyContainer.HasElements Then
|
If MyContainer.HasElements Then
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
ReadOnly Property OpenFolderInOtherProgram_Command As String
|
ReadOnly Property OpenFolderInOtherProgram_Command As String
|
||||||
ReadOnly Property OutputPathAskForName As Boolean
|
ReadOnly Property OutputPathAskForName As Boolean
|
||||||
ReadOnly Property OutputPathAutoAddPaths As Boolean
|
ReadOnly Property OutputPathAutoAddPaths As Boolean
|
||||||
|
ReadOnly Property CreateUrlFiles As Boolean
|
||||||
ReadOnly Property ENVIR_FFMPEG As SFile
|
ReadOnly Property ENVIR_FFMPEG As SFile
|
||||||
ReadOnly Property ENVIR_YTDLP As SFile
|
ReadOnly Property ENVIR_YTDLP As SFile
|
||||||
ReadOnly Property ENVIR_GDL As SFile
|
ReadOnly Property ENVIR_GDL As SFile
|
||||||
|
|||||||
100
SCrawler.YouTube/Downloader/VideoListForm.Designer.vb
generated
100
SCrawler.YouTube/Downloader/VideoListForm.Designer.vb
generated
@@ -25,7 +25,13 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Dim SEP_2 As System.Windows.Forms.ToolStripSeparator
|
Dim SEP_2 As System.Windows.Forms.ToolStripSeparator
|
||||||
Dim SEP_3 As System.Windows.Forms.ToolStripSeparator
|
Dim SEP_3 As System.Windows.Forms.ToolStripSeparator
|
||||||
Dim MENU_ADD_SEP_1 As System.Windows.Forms.ToolStripSeparator
|
Dim MENU_ADD_SEP_1 As System.Windows.Forms.ToolStripSeparator
|
||||||
|
Dim MENU_DEL_CLEAR As System.Windows.Forms.ToolStripDropDownButton
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(VideoListForm))
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(VideoListForm))
|
||||||
|
Dim MENU_DEL_SEP_1 As System.Windows.Forms.ToolStripSeparator
|
||||||
|
Me.BTT_DELETE = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_CLEAR_SELECTED = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_CLEAR_DONE = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_CLEAR_ALL = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.TOOLBAR_BOTTOM = New System.Windows.Forms.StatusStrip()
|
Me.TOOLBAR_BOTTOM = New System.Windows.Forms.StatusStrip()
|
||||||
Me.PR_MAIN = New System.Windows.Forms.ToolStripProgressBar()
|
Me.PR_MAIN = New System.Windows.Forms.ToolStripProgressBar()
|
||||||
Me.LBL_INFO = New System.Windows.Forms.ToolStripStatusLabel()
|
Me.LBL_INFO = New System.Windows.Forms.ToolStripStatusLabel()
|
||||||
@@ -40,9 +46,6 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Me.BTT_ADD_SHORTS_ONLY = New PersonalUtilities.Forms.Controls.KeyClick.ToolStripMenuItemKeyClick()
|
Me.BTT_ADD_SHORTS_ONLY = New PersonalUtilities.Forms.Controls.KeyClick.ToolStripMenuItemKeyClick()
|
||||||
Me.BTT_DOWN = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_DOWN = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.BTT_STOP = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_STOP = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.BTT_DELETE = New System.Windows.Forms.ToolStripButton()
|
|
||||||
Me.BTT_CLEAR_DONE = New System.Windows.Forms.ToolStripButton()
|
|
||||||
Me.BTT_CLEAR_ALL = New System.Windows.Forms.ToolStripButton()
|
|
||||||
Me.SEP_LOG = New System.Windows.Forms.ToolStripSeparator()
|
Me.SEP_LOG = New System.Windows.Forms.ToolStripSeparator()
|
||||||
Me.BTT_LOG = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_LOG = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.BTT_INFO = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_INFO = New System.Windows.Forms.ToolStripButton()
|
||||||
@@ -51,6 +54,8 @@ Namespace DownloadObjects.STDownloader
|
|||||||
SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
MENU_ADD_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
MENU_ADD_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
|
MENU_DEL_CLEAR = New System.Windows.Forms.ToolStripDropDownButton()
|
||||||
|
MENU_DEL_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
Me.TOOLBAR_BOTTOM.SuspendLayout()
|
Me.TOOLBAR_BOTTOM.SuspendLayout()
|
||||||
Me.TOOLBAR_TOP.SuspendLayout()
|
Me.TOOLBAR_TOP.SuspendLayout()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
@@ -70,6 +75,59 @@ Namespace DownloadObjects.STDownloader
|
|||||||
MENU_ADD_SEP_1.Name = "MENU_ADD_SEP_1"
|
MENU_ADD_SEP_1.Name = "MENU_ADD_SEP_1"
|
||||||
MENU_ADD_SEP_1.Size = New System.Drawing.Size(181, 6)
|
MENU_ADD_SEP_1.Size = New System.Drawing.Size(181, 6)
|
||||||
'
|
'
|
||||||
|
'MENU_DEL_CLEAR
|
||||||
|
'
|
||||||
|
MENU_DEL_CLEAR.AutoToolTip = False
|
||||||
|
MENU_DEL_CLEAR.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_DELETE, MENU_DEL_SEP_1, Me.BTT_CLEAR_SELECTED, Me.BTT_CLEAR_DONE, Me.BTT_CLEAR_ALL})
|
||||||
|
MENU_DEL_CLEAR.Image = CType(resources.GetObject("MENU_DEL_CLEAR.Image"), System.Drawing.Image)
|
||||||
|
MENU_DEL_CLEAR.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
MENU_DEL_CLEAR.Name = "MENU_DEL_CLEAR"
|
||||||
|
MENU_DEL_CLEAR.Size = New System.Drawing.Size(107, 22)
|
||||||
|
MENU_DEL_CLEAR.Text = "Delete / Clear"
|
||||||
|
'
|
||||||
|
'BTT_DELETE
|
||||||
|
'
|
||||||
|
Me.BTT_DELETE.Image = CType(resources.GetObject("BTT_DELETE.Image"), System.Drawing.Image)
|
||||||
|
Me.BTT_DELETE.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
Me.BTT_DELETE.Name = "BTT_DELETE"
|
||||||
|
Me.BTT_DELETE.Size = New System.Drawing.Size(185, 22)
|
||||||
|
Me.BTT_DELETE.Text = "Delete selected items"
|
||||||
|
Me.BTT_DELETE.ToolTipText = "Delete selected items"
|
||||||
|
'
|
||||||
|
'MENU_DEL_SEP_1
|
||||||
|
'
|
||||||
|
MENU_DEL_SEP_1.Name = "MENU_DEL_SEP_1"
|
||||||
|
MENU_DEL_SEP_1.Size = New System.Drawing.Size(182, 6)
|
||||||
|
'
|
||||||
|
'BTT_CLEAR_SELECTED
|
||||||
|
'
|
||||||
|
Me.BTT_CLEAR_SELECTED.AutoToolTip = True
|
||||||
|
Me.BTT_CLEAR_SELECTED.Image = CType(resources.GetObject("BTT_CLEAR_SELECTED.Image"), System.Drawing.Image)
|
||||||
|
Me.BTT_CLEAR_SELECTED.Name = "BTT_CLEAR_SELECTED"
|
||||||
|
Me.BTT_CLEAR_SELECTED.Size = New System.Drawing.Size(185, 22)
|
||||||
|
Me.BTT_CLEAR_SELECTED.Text = "Clear selected"
|
||||||
|
Me.BTT_CLEAR_SELECTED.ToolTipText = "Remove all checked items from the list"
|
||||||
|
'
|
||||||
|
'BTT_CLEAR_DONE
|
||||||
|
'
|
||||||
|
Me.BTT_CLEAR_DONE.AutoToolTip = True
|
||||||
|
Me.BTT_CLEAR_DONE.Image = CType(resources.GetObject("BTT_CLEAR_DONE.Image"), System.Drawing.Image)
|
||||||
|
Me.BTT_CLEAR_DONE.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
Me.BTT_CLEAR_DONE.Name = "BTT_CLEAR_DONE"
|
||||||
|
Me.BTT_CLEAR_DONE.Size = New System.Drawing.Size(185, 22)
|
||||||
|
Me.BTT_CLEAR_DONE.Text = "Clear downloaded"
|
||||||
|
Me.BTT_CLEAR_DONE.ToolTipText = "Remove all downloaded items from the list"
|
||||||
|
'
|
||||||
|
'BTT_CLEAR_ALL
|
||||||
|
'
|
||||||
|
Me.BTT_CLEAR_ALL.AutoToolTip = True
|
||||||
|
Me.BTT_CLEAR_ALL.Image = CType(resources.GetObject("BTT_CLEAR_ALL.Image"), System.Drawing.Image)
|
||||||
|
Me.BTT_CLEAR_ALL.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
|
Me.BTT_CLEAR_ALL.Name = "BTT_CLEAR_ALL"
|
||||||
|
Me.BTT_CLEAR_ALL.Size = New System.Drawing.Size(185, 22)
|
||||||
|
Me.BTT_CLEAR_ALL.Text = "Clear all"
|
||||||
|
Me.BTT_CLEAR_ALL.ToolTipText = "Remove all items from the list"
|
||||||
|
'
|
||||||
'TOOLBAR_BOTTOM
|
'TOOLBAR_BOTTOM
|
||||||
'
|
'
|
||||||
Me.TOOLBAR_BOTTOM.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PR_MAIN, Me.LBL_INFO})
|
Me.TOOLBAR_BOTTOM.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PR_MAIN, Me.LBL_INFO})
|
||||||
@@ -105,7 +163,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
'TOOLBAR_TOP
|
'TOOLBAR_TOP
|
||||||
'
|
'
|
||||||
Me.TOOLBAR_TOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
|
Me.TOOLBAR_TOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
|
||||||
Me.TOOLBAR_TOP.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_SETTINGS, Me.SEP_1, Me.MENU_ADD, SEP_2, Me.BTT_DOWN, Me.BTT_STOP, SEP_3, Me.BTT_DELETE, Me.BTT_CLEAR_DONE, Me.BTT_CLEAR_ALL, Me.SEP_LOG, Me.BTT_LOG, Me.BTT_INFO, Me.BTT_DONATE, Me.BTT_BUG_REPORT})
|
Me.TOOLBAR_TOP.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_SETTINGS, Me.SEP_1, Me.MENU_ADD, SEP_2, Me.BTT_DOWN, Me.BTT_STOP, SEP_3, MENU_DEL_CLEAR, Me.SEP_LOG, Me.BTT_LOG, Me.BTT_INFO, Me.BTT_DONATE, Me.BTT_BUG_REPORT})
|
||||||
Me.TOOLBAR_TOP.Location = New System.Drawing.Point(0, 0)
|
Me.TOOLBAR_TOP.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.TOOLBAR_TOP.Name = "TOOLBAR_TOP"
|
Me.TOOLBAR_TOP.Name = "TOOLBAR_TOP"
|
||||||
Me.TOOLBAR_TOP.Size = New System.Drawing.Size(584, 25)
|
Me.TOOLBAR_TOP.Size = New System.Drawing.Size(584, 25)
|
||||||
@@ -202,33 +260,6 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Me.BTT_STOP.Size = New System.Drawing.Size(51, 22)
|
Me.BTT_STOP.Size = New System.Drawing.Size(51, 22)
|
||||||
Me.BTT_STOP.Text = "Stop"
|
Me.BTT_STOP.Text = "Stop"
|
||||||
'
|
'
|
||||||
'BTT_DELETE
|
|
||||||
'
|
|
||||||
Me.BTT_DELETE.Image = CType(resources.GetObject("BTT_DELETE.Image"), System.Drawing.Image)
|
|
||||||
Me.BTT_DELETE.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
||||||
Me.BTT_DELETE.Name = "BTT_DELETE"
|
|
||||||
Me.BTT_DELETE.Size = New System.Drawing.Size(60, 22)
|
|
||||||
Me.BTT_DELETE.Text = "Delete"
|
|
||||||
Me.BTT_DELETE.ToolTipText = "Delete selected items"
|
|
||||||
'
|
|
||||||
'BTT_CLEAR_DONE
|
|
||||||
'
|
|
||||||
Me.BTT_CLEAR_DONE.Image = CType(resources.GetObject("BTT_CLEAR_DONE.Image"), System.Drawing.Image)
|
|
||||||
Me.BTT_CLEAR_DONE.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
||||||
Me.BTT_CLEAR_DONE.Name = "BTT_CLEAR_DONE"
|
|
||||||
Me.BTT_CLEAR_DONE.Size = New System.Drawing.Size(54, 22)
|
|
||||||
Me.BTT_CLEAR_DONE.Text = "Clear"
|
|
||||||
Me.BTT_CLEAR_DONE.ToolTipText = "Remove all downloaded items"
|
|
||||||
'
|
|
||||||
'BTT_CLEAR_ALL
|
|
||||||
'
|
|
||||||
Me.BTT_CLEAR_ALL.Image = CType(resources.GetObject("BTT_CLEAR_ALL.Image"), System.Drawing.Image)
|
|
||||||
Me.BTT_CLEAR_ALL.ImageTransparentColor = System.Drawing.Color.Magenta
|
|
||||||
Me.BTT_CLEAR_ALL.Name = "BTT_CLEAR_ALL"
|
|
||||||
Me.BTT_CLEAR_ALL.Size = New System.Drawing.Size(69, 22)
|
|
||||||
Me.BTT_CLEAR_ALL.Text = "Clear all"
|
|
||||||
Me.BTT_CLEAR_ALL.ToolTipText = "Remove all items (pending and downloaded)"
|
|
||||||
'
|
|
||||||
'SEP_LOG
|
'SEP_LOG
|
||||||
'
|
'
|
||||||
Me.SEP_LOG.Name = "SEP_LOG"
|
Me.SEP_LOG.Name = "SEP_LOG"
|
||||||
@@ -300,9 +331,9 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Private WithEvents LBL_INFO As ToolStripStatusLabel
|
Private WithEvents LBL_INFO As ToolStripStatusLabel
|
||||||
Protected WithEvents TP_CONTROLS As TableLayoutPanel
|
Protected WithEvents TP_CONTROLS As TableLayoutPanel
|
||||||
Private WithEvents TOOLBAR_TOP As ToolStrip
|
Private WithEvents TOOLBAR_TOP As ToolStrip
|
||||||
Private WithEvents BTT_DELETE As ToolStripButton
|
Private WithEvents BTT_DELETE As ToolStripMenuItem
|
||||||
Private WithEvents BTT_CLEAR_DONE As ToolStripButton
|
Private WithEvents BTT_CLEAR_DONE As ToolStripMenuItem
|
||||||
Private WithEvents BTT_CLEAR_ALL As ToolStripButton
|
Private WithEvents BTT_CLEAR_ALL As ToolStripMenuItem
|
||||||
Private WithEvents BTT_SETTINGS As ToolStripButton
|
Private WithEvents BTT_SETTINGS As ToolStripButton
|
||||||
Private WithEvents SEP_1 As ToolStripSeparator
|
Private WithEvents SEP_1 As ToolStripSeparator
|
||||||
Private WithEvents SEP_LOG As ToolStripSeparator
|
Private WithEvents SEP_LOG As ToolStripSeparator
|
||||||
@@ -317,5 +348,6 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Protected WithEvents MENU_ADD As ToolStripDropDownButton
|
Protected WithEvents MENU_ADD As ToolStripDropDownButton
|
||||||
Protected WithEvents BTT_DOWN As ToolStripButton
|
Protected WithEvents BTT_DOWN As ToolStripButton
|
||||||
Private WithEvents BTT_BUG_REPORT As ToolStripButton
|
Private WithEvents BTT_BUG_REPORT As ToolStripButton
|
||||||
|
Private WithEvents BTT_CLEAR_SELECTED As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -126,232 +126,296 @@
|
|||||||
<metadata name="MENU_ADD_SEP_1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="MENU_ADD_SEP_1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="MENU_DEL_CLEAR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="BTT_DELETE.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
9iQAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="MENU_DEL_SEP_1.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="BTT_CLEAR_SELECTED.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BTT_CLEAR_DONE.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
9iQAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="BTT_CLEAR_ALL.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
9iQAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="MENU_DEL_CLEAR.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
22tl8CvUAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
<metadata name="TOOLBAR_BOTTOM.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TOOLBAR_BOTTOM.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TOOLBAR_TOP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TOOLBAR_TOP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>177, 17</value>
|
<value>177, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
|
||||||
<data name="BTT_ADD.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_ADD.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
jZbUijkXhD9w0a0SO8Tg+AAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BTT_ADD_PLS_ARR.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_ADD_PLS_ARR.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BTT_ADD_NO_SHORTS.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_ADD_NO_SHORTS.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BTT_ADD_SHORTS_ONLY.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_ADD_SHORTS_ONLY.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MENU_ADD.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="MENU_ADD.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BTT_STOP.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_STOP.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
vfrkAAAAAElFTkSuQmCC
|
ugAAAABJRU5ErkJggg==
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="BTT_DELETE.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
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
|
|
||||||
+QAAAABJRU5ErkJggg==
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="BTT_CLEAR_DONE.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
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
|
|
||||||
+QAAAABJRU5ErkJggg==
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="BTT_CLEAR_ALL.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>
|
|
||||||
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
|
|
||||||
+QAAAABJRU5ErkJggg==
|
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BTT_LOG.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BTT_LOG.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
|||||||
@@ -247,6 +247,8 @@ Namespace DownloadObjects.STDownloader
|
|||||||
If e.Control Then useCookies = True
|
If e.Control Then useCookies = True
|
||||||
Dim useCookiesParse As Boolean? = Nothing
|
Dim useCookiesParse As Boolean? = Nothing
|
||||||
If useCookies Then useCookiesParse = True
|
If useCookies Then useCookiesParse = True
|
||||||
|
Dim standardizeUrls As Boolean = MyYouTubeSettings.StandardizeURLs
|
||||||
|
Dim standardize As Func(Of String, String) = Function(input) If(standardizeUrls, YouTubeFunctions.StandardizeURL(input), input)
|
||||||
|
|
||||||
Dim c As IYouTubeMediaContainer = Nothing
|
Dim c As IYouTubeMediaContainer = Nothing
|
||||||
Dim url$ = String.Empty
|
Dim url$ = String.Empty
|
||||||
@@ -264,7 +266,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
pForm.SetInitialValues(.Count, "Parsing playlists...")
|
pForm.SetInitialValues(.Count, "Parsing playlists...")
|
||||||
Dim containers As New List(Of IYouTubeMediaContainer)
|
Dim containers As New List(Of IYouTubeMediaContainer)
|
||||||
For Each u$ In .Self
|
For Each u$ In .Self
|
||||||
containers.Add(YouTubeFunctions.Parse(u, useCookiesParse, pForm.Token, pForm.MyProgress, True, False))
|
containers.Add(YouTubeFunctions.Parse(standardize(u), useCookiesParse, pForm.Token, pForm.MyProgress, True, False))
|
||||||
pForm.NextPlaylist()
|
pForm.NextPlaylist()
|
||||||
pForm.MyProgress.Perform()
|
pForm.MyProgress.Perform()
|
||||||
Next
|
Next
|
||||||
@@ -295,7 +297,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
pForm = New ParsingProgressForm
|
pForm = New ParsingProgressForm
|
||||||
pForm.Show(Me)
|
pForm.Show(Me)
|
||||||
pForm.SetInitialValues(1, "Parsing data...")
|
pForm.SetInitialValues(1, "Parsing data...")
|
||||||
c = YouTubeFunctions.Parse(url, useCookiesParse, pForm.Token, pForm.MyProgress, GetDefault, GetShorts)
|
c = YouTubeFunctions.Parse(standardize(url), useCookiesParse, pForm.Token, pForm.MyProgress, GetDefault, GetShorts)
|
||||||
pForm.Dispose()
|
pForm.Dispose()
|
||||||
End If
|
End If
|
||||||
If Not c Is Nothing Then
|
If Not c Is Nothing Then
|
||||||
@@ -341,15 +343,20 @@ Namespace DownloadObjects.STDownloader
|
|||||||
ControlInvoke(TOOLBAR_TOP, BTT_STOP, Sub() BTT_STOP.Enabled = False, EDP.SendToLog)
|
ControlInvoke(TOOLBAR_TOP, BTT_STOP, Sub() BTT_STOP.Enabled = False, EDP.SendToLog)
|
||||||
MyJob.Cancel()
|
MyJob.Cancel()
|
||||||
End Sub
|
End Sub
|
||||||
|
#Region "Delete / Clear"
|
||||||
Private Sub BTT_DELETE_Click(sender As Object, e As EventArgs) Handles BTT_DELETE.Click
|
Private Sub BTT_DELETE_Click(sender As Object, e As EventArgs) Handles BTT_DELETE.Click
|
||||||
RemoveControls(ControlsChecked, True)
|
RemoveControls(ControlsChecked, True)
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub BTT_CLEAR_SELECTED_Click(sender As Object, e As EventArgs) Handles BTT_CLEAR_SELECTED.Click
|
||||||
|
RemoveControls(ControlsChecked, False)
|
||||||
|
End Sub
|
||||||
Protected Overridable Sub BTT_CLEAR_DONE_Click(sender As Object, e As EventArgs) Handles BTT_CLEAR_DONE.Click
|
Protected Overridable Sub BTT_CLEAR_DONE_Click(sender As Object, e As EventArgs) Handles BTT_CLEAR_DONE.Click
|
||||||
RemoveControls(ControlsDownloaded, False)
|
RemoveControls(ControlsDownloaded, False)
|
||||||
End Sub
|
End Sub
|
||||||
Protected Overridable Sub BTT_CLEAR_ALL_Click(sender As Object, e As EventArgs) Handles BTT_CLEAR_ALL.Click
|
Protected Overridable Sub BTT_CLEAR_ALL_Click(sender As Object, e As EventArgs) Handles BTT_CLEAR_ALL.Click
|
||||||
RemoveControls(, False)
|
RemoveControls(, False)
|
||||||
End Sub
|
End Sub
|
||||||
|
#End Region
|
||||||
Private Sub BTT_LOG_Click(sender As Object, e As EventArgs) Handles BTT_LOG.Click
|
Private Sub BTT_LOG_Click(sender As Object, e As EventArgs) Handles BTT_LOG.Click
|
||||||
MyMainLOG_ShowForm(DesignXML,,,, AddressOf UpdateLogButton)
|
MyMainLOG_ShowForm(DesignXML,,,, AddressOf UpdateLogButton)
|
||||||
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("2023.9.20.0")>
|
<Assembly: AssemblyVersion("2023.10.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2023.9.20.0")>
|
<Assembly: AssemblyFileVersion("2023.10.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -709,6 +709,19 @@ Namespace API.YouTube.Objects
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Download"
|
#Region "Download"
|
||||||
|
Protected Shared Sub CreateUrlFile(ByVal URL As String, ByVal File As SFile)
|
||||||
|
Try
|
||||||
|
File.Extension = "url"
|
||||||
|
Using t As New TextSaver(File)
|
||||||
|
t.AppendLine("[InternetShortcut]")
|
||||||
|
t.AppendLine("IDList=")
|
||||||
|
t.AppendLine($"URL={URL}")
|
||||||
|
t.AppendLine()
|
||||||
|
t.Save(EDP.None)
|
||||||
|
End Using
|
||||||
|
Catch ex As Exception
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
Private ReadOnly DownloadProgressPattern As RParams = RParams.DMS("\[download\]\s*([\d\.,]+)", 1, EDP.ReturnValue)
|
Private ReadOnly DownloadProgressPattern As RParams = RParams.DMS("\[download\]\s*([\d\.,]+)", 1, EDP.ReturnValue)
|
||||||
Public Property Progress As MyProgress Implements IYouTubeMediaContainer.Progress
|
Public Property Progress As MyProgress Implements IYouTubeMediaContainer.Progress
|
||||||
Private Property IDownloadableMedia_Progress As Object Implements IDownloadableMedia.Progress
|
Private Property IDownloadableMedia_Progress As Object Implements IDownloadableMedia.Progress
|
||||||
@@ -807,6 +820,13 @@ Namespace API.YouTube.Objects
|
|||||||
Try
|
Try
|
||||||
Dim url$ = $"https://{IIf(IsMusic, "music", "www")}.youtube.com/playlist?list={PlsId}"
|
Dim url$ = $"https://{IIf(IsMusic, "music", "www")}.youtube.com/playlist?list={PlsId}"
|
||||||
Dim r$
|
Dim r$
|
||||||
|
If DownloadObjects.STDownloader.MyDownloaderSettings.CreateUrlFiles Then
|
||||||
|
Dim ff As SFile = f
|
||||||
|
ff.Name = "album"
|
||||||
|
ff.Extension = "url"
|
||||||
|
CreateUrlFile(url, ff)
|
||||||
|
If ff.Exists Then Files.Add(ff)
|
||||||
|
End If
|
||||||
Using resp As New Responser
|
Using resp As New Responser
|
||||||
If UseCookies And MyYouTubeSettings.Cookies.Count > 0 Then resp.Cookies.AddRange(MyYouTubeSettings.Cookies,, EDP.SendToLog)
|
If UseCookies And MyYouTubeSettings.Cookies.Count > 0 Then resp.Cookies.AddRange(MyYouTubeSettings.Cookies,, EDP.SendToLog)
|
||||||
r = resp.GetResponse(url,, EDP.ReturnValue)
|
r = resp.GetResponse(url,, EDP.ReturnValue)
|
||||||
@@ -882,6 +902,21 @@ Namespace API.YouTube.Objects
|
|||||||
End If
|
End If
|
||||||
If Not File.Exists Then _File.Name = File.File
|
If Not File.Exists Then _File.Name = File.File
|
||||||
If File.Exists Then
|
If File.Exists Then
|
||||||
|
|
||||||
|
If DownloadObjects.STDownloader.MyDownloaderSettings.CreateUrlFiles Then
|
||||||
|
Dim fileUrl As SFile = File
|
||||||
|
fileUrl.Extension = "url"
|
||||||
|
CreateUrlFile(URL, fileUrl)
|
||||||
|
If fileUrl.Exists Then Files.Add(fileUrl)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If MyYouTubeSettings.CreateDescriptionFiles And Not Description.IsEmptyString Then
|
||||||
|
Dim fileDesr As SFile = File
|
||||||
|
fileDesr.Extension = "txt"
|
||||||
|
TextSaver.SaveTextToFile(Description, fileDesr,,, EDP.None)
|
||||||
|
If fileDesr.Exists Then Files.Add(fileDesr)
|
||||||
|
End If
|
||||||
|
|
||||||
If PlaylistCount > 0 And Not CoverDownloaded And Not PlaylistID.IsEmptyString Then DownloadPlaylistCover(PlaylistID, File, UseCookies)
|
If PlaylistCount > 0 And Not CoverDownloaded And Not PlaylistID.IsEmptyString Then DownloadPlaylistCover(PlaylistID, File, UseCookies)
|
||||||
If prExists Then Progress.InformationTemporary = $"Download {MediaType}: post processing"
|
If prExists Then Progress.InformationTemporary = $"Download {MediaType}: post processing"
|
||||||
_ThumbnailFile = File
|
_ThumbnailFile = File
|
||||||
@@ -1025,7 +1060,11 @@ Namespace API.YouTube.Objects
|
|||||||
If fc.Exists(SFO.Path, False) AndAlso SFile.GetFiles(fc, "*.json",, EDP.ReturnValue).Count > 0 Then Parse(Nothing, fc, IsMusic)
|
If fc.Exists(SFO.Path, False) AndAlso SFile.GetFiles(fc, "*.json",, EDP.ReturnValue).Count > 0 Then Parse(Nothing, fc, IsMusic)
|
||||||
XMLPopulateData(Me, x)
|
XMLPopulateData(Me, x)
|
||||||
_MediaStateOnLoad = _MediaState
|
_MediaStateOnLoad = _MediaState
|
||||||
_Exists = True
|
If Me.MediaState = UMStates.Downloaded Then
|
||||||
|
_Exists = File.Exists(IIf(ObjectType = YouTubeMediaType.Single, SFO.File, SFO.Path), False)
|
||||||
|
Else
|
||||||
|
_Exists = True
|
||||||
|
End If
|
||||||
If If(x(Name_CheckedElements)?.Count, 0) > 0 Then ApplyElementCheckedValue(x(Name_CheckedElements))
|
If If(x(Name_CheckedElements)?.Count, 0) > 0 Then ApplyElementCheckedValue(x(Name_CheckedElements))
|
||||||
If ArrayMaxResolution <> -10 Then SetMaxResolution(ArrayMaxResolution)
|
If ArrayMaxResolution <> -10 Then SetMaxResolution(ArrayMaxResolution)
|
||||||
End Using
|
End Using
|
||||||
|
|||||||
@@ -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("2023.9.20.0")>
|
<Assembly: AssemblyVersion("2023.10.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2023.9.20.0")>
|
<Assembly: AssemblyFileVersion("2023.10.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Namespace API.Base
|
|||||||
Friend Class TokenBatch : Inherits BatchExecutor
|
Friend Class TokenBatch : Inherits BatchExecutor
|
||||||
Friend Property TempPostsList As List(Of String)
|
Friend Property TempPostsList As List(Of String)
|
||||||
Protected ReadOnly Token As CancellationToken
|
Protected ReadOnly Token As CancellationToken
|
||||||
|
Friend Property DebugMode As Boolean = False
|
||||||
Friend Sub New(ByVal _Token As CancellationToken)
|
Friend Sub New(ByVal _Token As CancellationToken)
|
||||||
MyBase.New(True)
|
MyBase.New(True)
|
||||||
Token = _Token
|
Token = _Token
|
||||||
@@ -22,11 +23,21 @@ Namespace API.Base
|
|||||||
End Sub
|
End Sub
|
||||||
Protected Overrides Async Sub OutputDataReceiver(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
Protected Overrides Async Sub OutputDataReceiver(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
||||||
MyBase.OutputDataReceiver(Sender, e)
|
MyBase.OutputDataReceiver(Sender, e)
|
||||||
Await Task.Run(Sub() If Token.IsCancellationRequested Then Kill())
|
Await Task.Run(Sub()
|
||||||
|
#If DEBUG Then
|
||||||
|
If DebugMode Then Debug.WriteLineIf(Not e.Data.IsEmptyString, $"Out: {e.Data}")
|
||||||
|
#End If
|
||||||
|
If Token.IsCancellationRequested Then Kill()
|
||||||
|
End Sub)
|
||||||
End Sub
|
End Sub
|
||||||
Protected Overrides Async Sub ErrorDataReceiver(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
Protected Overrides Async Sub ErrorDataReceiver(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
||||||
MyBase.ErrorDataReceiver(Sender, e)
|
MyBase.ErrorDataReceiver(Sender, e)
|
||||||
Await Task.Run(Sub() If Token.IsCancellationRequested Then Kill())
|
Await Task.Run(Sub()
|
||||||
|
#If DEBUG Then
|
||||||
|
If DebugMode Then Debug.WriteLineIf(Not e.Data.IsEmptyString, $"Err: {e.Data}")
|
||||||
|
#End If
|
||||||
|
If Token.IsCancellationRequested Then Kill()
|
||||||
|
End Sub)
|
||||||
End Sub
|
End Sub
|
||||||
Protected Overridable Async Function Validate(ByVal Value As String) As Task
|
Protected Overridable Async Function Validate(ByVal Value As String) As Task
|
||||||
If Not ProcessKilled AndAlso Await Task.Run(Of Boolean)(Function() Token.IsCancellationRequested OrElse
|
If Not ProcessKilled AndAlso Await Task.Run(Of Boolean)(Function() Token.IsCancellationRequested OrElse
|
||||||
|
|||||||
@@ -1226,7 +1226,7 @@ BlockNullPicture:
|
|||||||
End If
|
End If
|
||||||
ThrowIfDisposed()
|
ThrowIfDisposed()
|
||||||
If Not _PictureExists Or _EnvirInvokeUserUpdated Then OnUserUpdated()
|
If Not _PictureExists Or _EnvirInvokeUserUpdated Then OnUserUpdated()
|
||||||
Catch oex As OperationCanceledException When Token.IsCancellationRequested Or TokenPersonal.IsCancellationRequested
|
Catch oex As OperationCanceledException When Token.IsCancellationRequested Or TokenPersonal.IsCancellationRequested Or TokenQueue.IsCancellationRequested
|
||||||
MyMainLOG = $"{ToStringForLog()}: downloading canceled"
|
MyMainLOG = $"{ToStringForLog()}: downloading canceled"
|
||||||
Canceled = True
|
Canceled = True
|
||||||
Catch exit_ex As ExitException
|
Catch exit_ex As ExitException
|
||||||
@@ -1305,6 +1305,10 @@ BlockNullPicture:
|
|||||||
DownloadSingleObject_CreateMedia(Data, Token)
|
DownloadSingleObject_CreateMedia(Data, Token)
|
||||||
DownloadSingleObject_Download(Data, Token)
|
DownloadSingleObject_Download(Data, Token)
|
||||||
DownloadSingleObject_PostProcessing(Data)
|
DownloadSingleObject_PostProcessing(Data)
|
||||||
|
Catch oex As OperationCanceledException When Token.IsCancellationRequested
|
||||||
|
Data.DownloadState = UserMediaStates.Missing
|
||||||
|
ErrorsDescriber.Execute(EDP.SendToLog, oex, $"{Site} download canceled: {Data.URL}")
|
||||||
|
Catch dex As ObjectDisposedException When Disposed
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Data.DownloadState = UserMediaStates.Missing
|
Data.DownloadState = UserMediaStates.Missing
|
||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, $"{Site} single data downloader error: {Data.URL}")
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, $"{Site} single data downloader error: {Data.URL}")
|
||||||
@@ -1829,6 +1833,7 @@ BlockNullPicture:
|
|||||||
If m.Contains(IUserData.EraseMode.History) Then
|
If m.Contains(IUserData.EraseMode.History) Then
|
||||||
If MyFilePosts.Delete(SFO.File, SFODelete.DeleteToRecycleBin, e) Then result = True
|
If MyFilePosts.Delete(SFO.File, SFODelete.DeleteToRecycleBin, e) Then result = True
|
||||||
If MyFileData.Delete(SFO.File, SFODelete.DeleteToRecycleBin, e) Then result = True
|
If MyFileData.Delete(SFO.File, SFODelete.DeleteToRecycleBin, e) Then result = True
|
||||||
|
EraseData_AdditionalDataFiles()
|
||||||
End If
|
End If
|
||||||
If m.Contains(IUserData.EraseMode.Data) Then
|
If m.Contains(IUserData.EraseMode.Data) Then
|
||||||
Dim files As List(Of SFile) = SFile.GetFiles(DownloadContentDefault_GetRootDir.CSFileP,, SearchOption.AllDirectories, e)
|
Dim files As List(Of SFile) = SFile.GetFiles(DownloadContentDefault_GetRootDir.CSFileP,, SearchOption.AllDirectories, e)
|
||||||
@@ -1850,6 +1855,8 @@ BlockNullPicture:
|
|||||||
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, $"EraseData({CInt(Mode)}): {ToStringForLog()}", False)
|
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, $"EraseData({CInt(Mode)}): {ToStringForLog()}", False)
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
Protected Overridable Sub EraseData_AdditionalDataFiles()
|
||||||
|
End Sub
|
||||||
Friend Overridable Function Delete(Optional ByVal Multiple As Boolean = False, Optional ByVal CollectionValue As Integer = -1) As Integer Implements IUserData.Delete
|
Friend Overridable Function Delete(Optional ByVal Multiple As Boolean = False, Optional ByVal CollectionValue As Integer = -1) As Integer Implements IUserData.Delete
|
||||||
Dim f As SFile = SFile.GetPath(MyFile.CutPath.Path)
|
Dim f As SFile = SFile.GetPath(MyFile.CutPath.Path)
|
||||||
If f.Exists(SFO.Path, False) AndAlso (User.Merged OrElse f.Delete(SFO.Path, Settings.DeleteMode)) Then
|
If f.Exists(SFO.Path, False) AndAlso (User.Merged OrElse f.Delete(SFO.Path, Settings.DeleteMode)) Then
|
||||||
@@ -2026,8 +2033,8 @@ BlockNullPicture:
|
|||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Errors functions"
|
#Region "Errors functions"
|
||||||
Protected Sub LogError(ByVal ex As Exception, ByVal Message As String)
|
Protected Sub LogError(ByVal ex As Exception, ByVal Message As String, Optional ByVal e As ErrorsDescriber = Nothing)
|
||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, $"{ToStringForLog()}: {Message}")
|
ErrorsDescriber.Execute(If(e.Exists, e, New ErrorsDescriber(EDP.SendToLog)), ex, $"{ToStringForLog()}: {Message}")
|
||||||
End Sub
|
End Sub
|
||||||
Protected Sub ErrorDownloading(ByVal f As SFile, ByVal URL As String)
|
Protected Sub ErrorDownloading(ByVal f As SFile, ByVal URL As String)
|
||||||
If Not f.Exists Then MyMainLOG = $"Error downloading from [{URL}] to [{f}]"
|
If Not f.Exists Then MyMainLOG = $"Error downloading from [{URL}] to [{f}]"
|
||||||
@@ -2040,9 +2047,13 @@ BlockNullPicture:
|
|||||||
Private Overloads Sub ThrowAny() Implements IThrower.ThrowAny
|
Private Overloads Sub ThrowAny() Implements IThrower.ThrowAny
|
||||||
ThrowAny(TokenQueue)
|
ThrowAny(TokenQueue)
|
||||||
End Sub
|
End Sub
|
||||||
|
''' <summary><c>ThrowAnyImpl(Token)</c></summary>
|
||||||
''' <exception cref="OperationCanceledException"></exception>
|
''' <exception cref="OperationCanceledException"></exception>
|
||||||
''' <exception cref="ObjectDisposedException"></exception>
|
''' <exception cref="ObjectDisposedException"></exception>
|
||||||
Friend Overridable Overloads Sub ThrowAny(ByVal Token As CancellationToken)
|
Friend Overridable Overloads Sub ThrowAny(ByVal Token As CancellationToken)
|
||||||
|
ThrowAnyImpl(Token)
|
||||||
|
End Sub
|
||||||
|
Protected Sub ThrowAnyImpl(ByVal Token As CancellationToken)
|
||||||
Token.ThrowIfCancellationRequested()
|
Token.ThrowIfCancellationRequested()
|
||||||
TokenQueue.ThrowIfCancellationRequested()
|
TokenQueue.ThrowIfCancellationRequested()
|
||||||
TokenPersonal.ThrowIfCancellationRequested()
|
TokenPersonal.ThrowIfCancellationRequested()
|
||||||
@@ -2105,7 +2116,11 @@ BlockNullPicture:
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "IComparable Support"
|
#Region "IComparable Support"
|
||||||
Friend Overridable Function CompareTo(ByVal Other As UserDataBase) As Integer Implements IComparable(Of UserDataBase).CompareTo
|
Friend Overridable Function CompareTo(ByVal Other As UserDataBase) As Integer Implements IComparable(Of UserDataBase).CompareTo
|
||||||
Return Name.CompareTo(Other.Name)
|
If IsCollection Then
|
||||||
|
Return Name.CompareTo(Other.Name)
|
||||||
|
Else
|
||||||
|
Return FriendlyName.IfNullOrEmpty(Name).StringTrim.CompareTo(Other.FriendlyName.IfNullOrEmpty(Other.Name).StringTrim)
|
||||||
|
End If
|
||||||
End Function
|
End Function
|
||||||
Friend Overridable Function CompareTo(ByVal Obj As Object) As Integer Implements IComparable.CompareTo
|
Friend Overridable Function CompareTo(ByVal Obj As Object) As Integer Implements IComparable.CompareTo
|
||||||
If Not Obj Is Nothing AndAlso TypeOf Obj Is UserDataBase Then
|
If Not Obj Is Nothing AndAlso TypeOf Obj Is UserDataBase Then
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Namespace API.Instagram
|
|||||||
Friend ReadOnly FilesPattern As RParams = RParams.DMS(".+?([^/\?]+?\.[\w\d]{3,4})(?=(\?|\Z))", 1, EDP.ReturnValue)
|
Friend ReadOnly FilesPattern As RParams = RParams.DMS(".+?([^/\?]+?\.[\w\d]{3,4})(?=(\?|\Z))", 1, EDP.ReturnValue)
|
||||||
Friend Sub UpdateResponser(ByVal Source As IResponse, ByRef Destination As Responser)
|
Friend Sub UpdateResponser(ByVal Source As IResponse, ByRef Destination As Responser)
|
||||||
Const r_wwwClaimName$ = "x-ig-set-www-claim"
|
Const r_wwwClaimName$ = "x-ig-set-www-claim"
|
||||||
Const r_tokenName$ = "csrftoken"
|
Const r_tokenName$ = SiteSettings.Header_CSRF_TOKEN_COOKIE
|
||||||
If Not Source Is Nothing Then
|
If Not Source Is Nothing Then
|
||||||
Dim isInternal As Boolean = TypeOf Source Is WebDataResponse
|
Dim isInternal As Boolean = TypeOf Source Is WebDataResponse
|
||||||
Dim wwwClaimName$, tokenName$
|
Dim wwwClaimName$, tokenName$
|
||||||
|
|||||||
@@ -70,13 +70,14 @@ Namespace API.Instagram
|
|||||||
End Class
|
End Class
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Authorization properties"
|
#Region "Authorization properties"
|
||||||
Private Const Header_IG_APP_ID As String = "x-ig-app-id"
|
Friend Const Header_IG_APP_ID As String = "x-ig-app-id"
|
||||||
Friend Const Header_IG_WWW_CLAIM As String = "x-ig-www-claim"
|
Friend Const Header_IG_WWW_CLAIM As String = "x-ig-www-claim"
|
||||||
Friend Const Header_CSRF_TOKEN As String = "x-csrftoken"
|
Friend Const Header_CSRF_TOKEN As String = "x-csrftoken"
|
||||||
Private Const Header_ASBD_ID As String = "X-Asbd-Id"
|
Friend Const Header_CSRF_TOKEN_COOKIE As String = "csrftoken"
|
||||||
Private Const Header_Browser As String = "Sec-Ch-Ua"
|
Friend Const Header_ASBD_ID As String = "X-Asbd-Id"
|
||||||
Private Const Header_BrowserExt As String = "Sec-Ch-Ua-Full-Version-List"
|
Friend Const Header_Browser As String = "Sec-Ch-Ua"
|
||||||
Private Const Header_Platform As String = "Sec-Ch-Ua-Platform-Version"
|
Friend Const Header_BrowserExt As String = "Sec-Ch-Ua-Full-Version-List"
|
||||||
|
Friend Const Header_Platform As String = "Sec-Ch-Ua-Platform-Version"
|
||||||
<PropertyOption(ControlText:="Hash", ControlToolTip:="Instagram session hash for tagged posts", IsAuth:=True), PXML("InstaHash"), ControlNumber(0)>
|
<PropertyOption(ControlText:="Hash", ControlToolTip:="Instagram session hash for tagged posts", IsAuth:=True), PXML("InstaHash"), ControlNumber(0)>
|
||||||
Friend ReadOnly Property HashTagged As PropertyValue
|
Friend ReadOnly Property HashTagged As PropertyValue
|
||||||
<PropertyOption(ControlText:="x-csrftoken", IsAuth:=True, AllowNull:=False), ControlNumber(2)>
|
<PropertyOption(ControlText:="x-csrftoken", IsAuth:=True, AllowNull:=False), ControlNumber(2)>
|
||||||
@@ -365,13 +366,16 @@ Namespace API.Instagram
|
|||||||
SkipUntilNextSession = False
|
SkipUntilNextSession = False
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "UserOptions, GetUserPostUrl"
|
#Region "UserOptions, GetUserUrl, GetUserPostUrl"
|
||||||
Friend Overrides Sub UserOptions(ByRef Options As Object, ByVal OpenForm As Boolean)
|
Friend Overrides Sub UserOptions(ByRef Options As Object, ByVal OpenForm As Boolean)
|
||||||
If Options Is Nothing OrElse Not TypeOf Options Is EditorExchangeOptions Then Options = New EditorExchangeOptions(Me)
|
If Options Is Nothing OrElse Not TypeOf Options Is EditorExchangeOptions Then Options = New EditorExchangeOptions(Me)
|
||||||
If OpenForm Then
|
If OpenForm Then
|
||||||
Using f As New InternalSettingsForm(Options, Me, False) : f.ShowDialog() : End Using
|
Using f As New InternalSettingsForm(Options, Me, False) : f.ShowDialog() : End Using
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
Friend Overrides Function GetUserUrl(ByVal User As IPluginContentProvider) As String
|
||||||
|
Return String.Format(UrlPatternUser, DirectCast(User, UserData).NameTrue)
|
||||||
|
End Function
|
||||||
Friend Overrides Function GetUserPostUrl(ByVal User As UserDataBase, ByVal Media As UserMedia) As String
|
Friend Overrides Function GetUserPostUrl(ByVal User As UserDataBase, ByVal Media As UserMedia) As String
|
||||||
Try
|
Try
|
||||||
Dim code$ = DirectCast(User, UserData).GetPostCodeById(Media.Post.ID)
|
Dim code$ = DirectCast(User, UserData).GetPostCodeById(Media.Post.ID)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ Imports PersonalUtilities.Functions.RegularExpressions
|
|||||||
Imports PersonalUtilities.Tools.Web.Clients
|
Imports PersonalUtilities.Tools.Web.Clients
|
||||||
Imports PersonalUtilities.Tools.Web.Documents.JSON
|
Imports PersonalUtilities.Tools.Web.Documents.JSON
|
||||||
Imports UTypes = SCrawler.API.Base.UserMedia.Types
|
Imports UTypes = SCrawler.API.Base.UserMedia.Types
|
||||||
|
Imports UStates = SCrawler.API.Base.UserMedia.States
|
||||||
Namespace API.Instagram
|
Namespace API.Instagram
|
||||||
Friend Class UserData : Inherits UserDataBase
|
Friend Class UserData : Inherits UserDataBase
|
||||||
#Region "XML Names"
|
#Region "XML Names"
|
||||||
@@ -30,7 +31,7 @@ Namespace API.Instagram
|
|||||||
Private Const Name_NameTrue As String = "NameTrue"
|
Private Const Name_NameTrue As String = "NameTrue"
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Declarations"
|
#Region "Declarations"
|
||||||
Private Structure PostKV : Implements IEContainerProvider
|
Protected Structure PostKV : Implements IEContainerProvider
|
||||||
Private Const Name_Code As String = "Code"
|
Private Const Name_Code As String = "Code"
|
||||||
Private Const Name_Section As String = "Section"
|
Private Const Name_Section As String = "Section"
|
||||||
Friend Code As String
|
Friend Code As String
|
||||||
@@ -78,8 +79,8 @@ Namespace API.Instagram
|
|||||||
Friend Property GetStories As Boolean
|
Friend Property GetStories As Boolean
|
||||||
Friend Property GetStoriesUser As Boolean
|
Friend Property GetStoriesUser As Boolean
|
||||||
Friend Property GetTaggedData As Boolean
|
Friend Property GetTaggedData As Boolean
|
||||||
Private _NameTrue As String = String.Empty
|
Protected _NameTrue As String = String.Empty
|
||||||
Private ReadOnly Property NameTrue As String
|
Friend ReadOnly Property NameTrue As String
|
||||||
Get
|
Get
|
||||||
Return _NameTrue.IfNullOrEmpty(Name)
|
Return _NameTrue.IfNullOrEmpty(Name)
|
||||||
End Get
|
End Get
|
||||||
@@ -143,12 +144,22 @@ Namespace API.Instagram
|
|||||||
Throw New ExitException
|
Throw New ExitException
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
Private Sub LoadSavePostsKV(ByVal Load As Boolean)
|
Private ReadOnly Property MyFilePostsKV As SFile
|
||||||
|
Get
|
||||||
|
Dim f As SFile = MyFilePosts
|
||||||
|
If Not f.IsEmptyString Then
|
||||||
|
f.Name &= "_KV"
|
||||||
|
f.Extension = "xml"
|
||||||
|
Return f
|
||||||
|
Else
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Protected Sub LoadSavePostsKV(ByVal Load As Boolean)
|
||||||
Dim x As XmlFile
|
Dim x As XmlFile
|
||||||
Dim f As SFile = MyFilePosts
|
Dim f As SFile = MyFilePostsKV
|
||||||
If Not f.IsEmptyString Then
|
If Not f.IsEmptyString Then
|
||||||
f.Name &= "_KV"
|
|
||||||
f.Extension = "xml"
|
|
||||||
If Load Then
|
If Load Then
|
||||||
PostsKVIDs.Clear()
|
PostsKVIDs.Clear()
|
||||||
x = New XmlFile(f, Protector.Modes.All, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
x = New XmlFile(f, Protector.Modes.All, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
||||||
@@ -182,10 +193,8 @@ Namespace API.Instagram
|
|||||||
Friend Function GetPostCodeById(ByVal PostID As String) As String
|
Friend Function GetPostCodeById(ByVal PostID As String) As String
|
||||||
Try
|
Try
|
||||||
If Not PostID.IsEmptyString Then
|
If Not PostID.IsEmptyString Then
|
||||||
Dim f As SFile = MyFilePosts
|
Dim f As SFile = MyFilePostsKV
|
||||||
If Not f.IsEmptyString Then
|
If Not f.IsEmptyString Then
|
||||||
f.Name &= "_KV"
|
|
||||||
f.Extension = "xml"
|
|
||||||
Dim l As List(Of PostKV) = Nothing
|
Dim l As List(Of PostKV) = Nothing
|
||||||
Using x As New XmlFile(f, Protector.Modes.All, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
Using x As New XmlFile(f, Protector.Modes.All, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
||||||
x.LoadData()
|
x.LoadData()
|
||||||
@@ -213,11 +222,15 @@ Namespace API.Instagram
|
|||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
Private _DownloadingInProgress As Boolean = False
|
Private _DownloadingInProgress As Boolean = False
|
||||||
|
Private _Limit As Integer = -1
|
||||||
|
Private _TotalPostsParsed As Integer = 0
|
||||||
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
||||||
UserNameRequested = False
|
UserNameRequested = False
|
||||||
Dim s As Sections = Sections.Timeline
|
Dim s As Sections = Sections.Timeline
|
||||||
Dim errorFound As Boolean = False
|
Dim errorFound As Boolean = False
|
||||||
Try
|
Try
|
||||||
|
_Limit = If(DownloadTopCount, -1)
|
||||||
|
_TotalPostsParsed = 0
|
||||||
LoadSavePostsKV(True)
|
LoadSavePostsKV(True)
|
||||||
_DownloadingInProgress = True
|
_DownloadingInProgress = True
|
||||||
AddHandler Responser.ResponseReceived, AddressOf Responser_ResponseReceived
|
AddHandler Responser.ResponseReceived, AddressOf Responser_ResponseReceived
|
||||||
@@ -270,7 +283,7 @@ Namespace API.Instagram
|
|||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub UpdateResponser()
|
Protected Overridable Sub UpdateResponser()
|
||||||
Try
|
Try
|
||||||
If _DownloadingInProgress AndAlso Not Responser Is Nothing AndAlso Not Responser.Disposed Then
|
If _DownloadingInProgress AndAlso Not Responser Is Nothing AndAlso Not Responser.Disposed Then
|
||||||
_DownloadingInProgress = False
|
_DownloadingInProgress = False
|
||||||
@@ -280,10 +293,10 @@ Namespace API.Instagram
|
|||||||
Catch
|
Catch
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub Responser_ResponseReceived(ByVal Sender As Object, ByVal e As EventArguments.WebDataResponse)
|
Protected Overridable Sub Responser_ResponseReceived(ByVal Sender As Object, ByVal e As EventArguments.WebDataResponse)
|
||||||
Declarations.UpdateResponser(e, Responser)
|
Declarations.UpdateResponser(e, Responser)
|
||||||
End Sub
|
End Sub
|
||||||
Private Enum Sections : Timeline : Tagged : Stories : UserStories : SavedPosts : End Enum
|
Protected Enum Sections : Timeline : Tagged : Stories : UserStories : SavedPosts : End Enum
|
||||||
Private Const StoriesFolder As String = "Stories"
|
Private Const StoriesFolder As String = "Stories"
|
||||||
Private Const TaggedFolder As String = "Tagged"
|
Private Const TaggedFolder As String = "Tagged"
|
||||||
#Region "429 bypass"
|
#Region "429 bypass"
|
||||||
@@ -572,6 +585,7 @@ Namespace API.Instagram
|
|||||||
Dim URL$ = String.Empty
|
Dim URL$ = String.Empty
|
||||||
Dim dValue% = 1
|
Dim dValue% = 1
|
||||||
Dim _Index% = 0
|
Dim _Index% = 0
|
||||||
|
Dim before%
|
||||||
If PostsToReparse.Count > 0 Then ProgressPre.ChangeMax(PostsToReparse.Count)
|
If PostsToReparse.Count > 0 Then ProgressPre.ChangeMax(PostsToReparse.Count)
|
||||||
Try
|
Try
|
||||||
Do While dValue = 1
|
Do While dValue = 1
|
||||||
@@ -600,7 +614,12 @@ Namespace API.Instagram
|
|||||||
If Not j Is Nothing Then
|
If Not j Is Nothing Then
|
||||||
If If(j("items")?.Count, 0) > 0 Then
|
If If(j("items")?.Count, 0) > 0 Then
|
||||||
With j("items")
|
With j("items")
|
||||||
For Each jj In .Self : ObtainMedia(jj, PostsToReparse(i).ID) : Next
|
For Each jj In .Self
|
||||||
|
before = _TempMediaList.Count
|
||||||
|
ObtainMedia(jj, PostsToReparse(i).ID)
|
||||||
|
If Not before = _TempMediaList.Count Then _TotalPostsParsed += 1
|
||||||
|
If _Limit > 0 And _TotalPostsParsed >= _Limit Then Throw New ExitException
|
||||||
|
Next
|
||||||
End With
|
End With
|
||||||
End If
|
End If
|
||||||
j.Dispose()
|
j.Dispose()
|
||||||
@@ -643,13 +662,18 @@ Namespace API.Instagram
|
|||||||
End Using
|
End Using
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Private Function DefaultParser(ByVal Items As IEnumerable(Of EContainer), ByVal Section As Sections, ByVal Token As CancellationToken,
|
Protected DefaultParser_ElemNode() As Object = Nothing
|
||||||
Optional ByVal SpecFolder As String = Nothing) As Boolean
|
Protected DefaultParser_IgnorePass As Boolean = False
|
||||||
|
Protected DefaultParser_PostUrlCreator As Func(Of PostKV, String) = Function(post) $"https://www.instagram.com/p/{post.Code}/"
|
||||||
|
Protected Function DefaultParser(ByVal Items As IEnumerable(Of EContainer), ByVal Section As Sections, ByVal Token As CancellationToken,
|
||||||
|
Optional ByVal SpecFolder As String = Nothing, Optional ByVal State As UStates = UStates.Unknown,
|
||||||
|
Optional ByVal Attempts As Integer = 0) As Boolean
|
||||||
ThrowAny(Token)
|
ThrowAny(Token)
|
||||||
If Items.Count > 0 Then
|
If Items.Count > 0 Then
|
||||||
Dim PostIDKV As PostKV
|
Dim PostIDKV As PostKV
|
||||||
Dim Pinned As Boolean
|
Dim Pinned As Boolean
|
||||||
Dim PostDate$
|
Dim PostDate$, PostOriginUrl$
|
||||||
|
Dim before%
|
||||||
If SpecFolder.IsEmptyString Then
|
If SpecFolder.IsEmptyString Then
|
||||||
Select Case Section
|
Select Case Section
|
||||||
Case Sections.Tagged : SpecFolder = TaggedFolder
|
Case Sections.Tagged : SpecFolder = TaggedFolder
|
||||||
@@ -660,22 +684,26 @@ Namespace API.Instagram
|
|||||||
ProgressPre.ChangeMax(Items.Count)
|
ProgressPre.ChangeMax(Items.Count)
|
||||||
For Each nn In Items
|
For Each nn In Items
|
||||||
ProgressPre.Perform()
|
ProgressPre.Perform()
|
||||||
With nn
|
With If(Not DefaultParser_ElemNode Is Nothing, nn.ItemF(DefaultParser_ElemNode), nn)
|
||||||
PostIDKV = New PostKV(.Value("code"), .Value("id"), Section)
|
PostIDKV = New PostKV(.Value("code"), .Value("id"), Section)
|
||||||
|
PostOriginUrl = DefaultParser_PostUrlCreator(PostIDKV)
|
||||||
Pinned = .Contains("timeline_pinned_user_ids")
|
Pinned = .Contains("timeline_pinned_user_ids")
|
||||||
If PostKvExists(PostIDKV) Then
|
If Not DefaultParser_IgnorePass AndAlso PostKvExists(PostIDKV) Then
|
||||||
If Not Pinned Then Return False
|
If Not Pinned Then Return False
|
||||||
Else
|
Else
|
||||||
_TempPostsList.Add(PostIDKV.ID)
|
_TempPostsList.Add(PostIDKV.ID)
|
||||||
PostsKVIDs.ListAddValue(PostIDKV, LNC)
|
PostsKVIDs.ListAddValue(PostIDKV, LNC)
|
||||||
PostDate = .Value("taken_at")
|
PostDate = .Value("taken_at")
|
||||||
If Not IsSavedPosts Then
|
If Not DefaultParser_IgnorePass And Not IsSavedPosts Then
|
||||||
Select Case CheckDatesLimit(PostDate, UnixDate32Provider)
|
Select Case CheckDatesLimit(PostDate, UnixDate32Provider)
|
||||||
Case DateResult.Skip : Continue For
|
Case DateResult.Skip : Continue For
|
||||||
Case DateResult.Exit : If Not Pinned Then Return False
|
Case DateResult.Exit : If Not Pinned Then Return False
|
||||||
End Select
|
End Select
|
||||||
End If
|
End If
|
||||||
ObtainMedia(.Self, PostIDKV.ID, SpecFolder, PostDate)
|
before = _TempMediaList.Count
|
||||||
|
ObtainMedia(.Self, PostIDKV.ID, SpecFolder, PostDate,, PostOriginUrl, State, Attempts)
|
||||||
|
If Not before = _TempMediaList.Count Then _TotalPostsParsed += 1
|
||||||
|
If _Limit > 0 And _TotalPostsParsed >= _Limit Then Return False
|
||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
Next
|
Next
|
||||||
@@ -686,7 +714,7 @@ Namespace API.Instagram
|
|||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Code ID converters"
|
#Region "Code ID converters"
|
||||||
Private Function CodeToID(ByVal Code As String) As String
|
Protected Function CodeToID(ByVal Code As String) As String
|
||||||
Const CodeSymbols$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
|
Const CodeSymbols$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
|
||||||
Try
|
Try
|
||||||
If Not Code.IsEmptyString Then
|
If Not Code.IsEmptyString Then
|
||||||
@@ -706,12 +734,20 @@ Namespace API.Instagram
|
|||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Obtain Media"
|
#Region "Obtain Media"
|
||||||
Private Sub ObtainMedia(ByVal n As EContainer, ByVal PostID As String, Optional ByVal SpecialFolder As String = Nothing,
|
Protected ObtainMedia_SizeFuncVid As Func(Of EContainer, Sizes) = Nothing
|
||||||
Optional ByVal DateObj As String = Nothing)
|
Protected ObtainMedia_SizeFuncPic As Func(Of EContainer, Sizes) = Nothing
|
||||||
|
Protected ObtainMedia_AllowAbstract As Boolean = False
|
||||||
|
Protected Sub ObtainMedia(ByVal n As EContainer, ByVal PostID As String, Optional ByVal SpecialFolder As String = Nothing,
|
||||||
|
Optional ByVal DateObj As String = Nothing, Optional ByVal InitialType As Integer = -1,
|
||||||
|
Optional ByVal PostOriginUrl As String = Nothing,
|
||||||
|
Optional ByVal State As UStates = UStates.Unknown, Optional ByVal Attempts As Integer = 0)
|
||||||
Try
|
Try
|
||||||
|
Dim wrongData As Predicate(Of Sizes) = Function(_ss) _ss.HasError Or _ss.Data.IsEmptyString
|
||||||
Dim img As Predicate(Of EContainer) = Function(_img) Not _img.Name.IsEmptyString AndAlso _img.Name.StartsWith("image_versions") AndAlso _img.Count > 0
|
Dim img As Predicate(Of EContainer) = Function(_img) Not _img.Name.IsEmptyString AndAlso _img.Name.StartsWith("image_versions") AndAlso _img.Count > 0
|
||||||
Dim vid As Predicate(Of EContainer) = Function(_vid) Not _vid.Name.IsEmptyString AndAlso _vid.Name.StartsWith("video_versions") AndAlso _vid.Count > 0
|
Dim vid As Predicate(Of EContainer) = Function(_vid) Not _vid.Name.IsEmptyString AndAlso _vid.Name.StartsWith("video_versions") AndAlso _vid.Count > 0
|
||||||
Dim ss As Func(Of EContainer, Sizes) = Function(_ss) New Sizes(_ss.Value("width"), _ss.Value("url"))
|
Dim ss As Func(Of EContainer, Sizes) = Function(_ss) New Sizes(_ss.Value("width"), _ss.Value("url"))
|
||||||
|
Dim ssVid As Func(Of EContainer, Sizes) = ss
|
||||||
|
Dim ssPic As Func(Of EContainer, Sizes) = ss
|
||||||
Dim mDate As Func(Of EContainer, String) = Function(ByVal elem As EContainer) As String
|
Dim mDate As Func(Of EContainer, String) = Function(ByVal elem As EContainer) As String
|
||||||
If Not DateObj.IsEmptyString Then Return DateObj
|
If Not DateObj.IsEmptyString Then Return DateObj
|
||||||
If elem.Contains("taken_at") Then
|
If elem.Contains("taken_at") Then
|
||||||
@@ -731,28 +767,41 @@ Namespace API.Instagram
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
If Not ObtainMedia_SizeFuncVid Is Nothing Then ssVid = ObtainMedia_SizeFuncVid
|
||||||
|
If Not ObtainMedia_SizeFuncPic Is Nothing Then ssPic = ObtainMedia_SizeFuncPic
|
||||||
If n.Count > 0 Then
|
If n.Count > 0 Then
|
||||||
Dim l As New List(Of Sizes)
|
Dim l As New List(Of Sizes)
|
||||||
Dim d As EContainer
|
Dim d As EContainer
|
||||||
Dim t%
|
Dim t%
|
||||||
|
Dim abstractDecision As Boolean = False
|
||||||
'8 - gallery
|
'8 - gallery
|
||||||
'2 - one video
|
'2 - one video
|
||||||
'1 - one picture
|
'1 - one picture
|
||||||
t = n.Value("media_type").FromXML(Of Integer)(-1)
|
t = n.Value("media_type").FromXML(Of Integer)(-1)
|
||||||
|
If t = -1 And InitialType = 8 And ObtainMedia_AllowAbstract Then
|
||||||
|
If n.Contains(vid) Then
|
||||||
|
t = 2
|
||||||
|
abstractDecision = True
|
||||||
|
ElseIf n.Contains(img) Then
|
||||||
|
t = 1
|
||||||
|
abstractDecision = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
If t >= 0 Then
|
If t >= 0 Then
|
||||||
Select Case t
|
Select Case t
|
||||||
Case 1
|
Case 1
|
||||||
If n.Contains(img) Then
|
If n.Contains(img) Then
|
||||||
t = n.Value("media_type").FromXML(Of Integer)(-1)
|
If Not abstractDecision Then t = n.Value("media_type").FromXML(Of Integer)(-1)
|
||||||
DateObj = mDate(n)
|
DateObj = mDate(n)
|
||||||
If t >= 0 Then
|
If t >= 0 Then
|
||||||
With n.ItemF({img, "candidates"}).XmlIfNothing
|
With n.ItemF({img, "candidates"}).XmlIfNothing
|
||||||
If .Count > 0 Then
|
If .Count > 0 Then
|
||||||
l.Clear()
|
l.Clear()
|
||||||
l.ListAddList(.Select(ss), LNC)
|
l.ListAddList(.Select(ssPic), LNC)
|
||||||
|
If l.Count > 0 Then l.RemoveAll(wrongData)
|
||||||
If l.Count > 0 Then
|
If l.Count > 0 Then
|
||||||
l.Sort()
|
l.Sort()
|
||||||
_TempMediaList.ListAddValue(MediaFromData(UTypes.Picture, l.First.Data, PostID, DateObj, SpecialFolder), LNC)
|
_TempMediaList.ListAddValue(MediaFromData(UTypes.Picture, l.First.Data, PostID, DateObj, SpecialFolder, PostOriginUrl, State, Attempts), LNC)
|
||||||
l.Clear()
|
l.Clear()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -765,10 +814,11 @@ Namespace API.Instagram
|
|||||||
With n.ItemF({vid}).XmlIfNothing
|
With n.ItemF({vid}).XmlIfNothing
|
||||||
If .Count > 0 Then
|
If .Count > 0 Then
|
||||||
l.Clear()
|
l.Clear()
|
||||||
l.ListAddList(.Select(ss), LNC)
|
l.ListAddList(.Select(ssVid), LNC)
|
||||||
|
If l.Count > 0 Then l.RemoveAll(wrongData)
|
||||||
If l.Count > 0 Then
|
If l.Count > 0 Then
|
||||||
l.Sort()
|
l.Sort()
|
||||||
_TempMediaList.ListAddValue(MediaFromData(UTypes.Video, l.First.Data, PostID, DateObj, SpecialFolder), LNC)
|
_TempMediaList.ListAddValue(MediaFromData(UTypes.Video, l.First.Data, PostID, DateObj, SpecialFolder, PostOriginUrl, State, Attempts), LNC)
|
||||||
l.Clear()
|
l.Clear()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -778,7 +828,7 @@ Namespace API.Instagram
|
|||||||
DateObj = mDate(n)
|
DateObj = mDate(n)
|
||||||
With n("carousel_media").XmlIfNothing
|
With n("carousel_media").XmlIfNothing
|
||||||
If .Count > 0 Then
|
If .Count > 0 Then
|
||||||
For Each d In .Self : ObtainMedia(d, PostID, SpecialFolder, DateObj) : Next
|
For Each d In .Self : ObtainMedia(d, PostID, SpecialFolder, DateObj, 8, PostOriginUrl) : Next
|
||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
End Select
|
End Select
|
||||||
@@ -939,6 +989,12 @@ Namespace API.Instagram
|
|||||||
DownloadContentDefault(Token)
|
DownloadContentDefault(Token)
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
|
#Region "Erase"
|
||||||
|
Protected Overrides Sub EraseData_AdditionalDataFiles()
|
||||||
|
Dim f As SFile = MyFilePostsKV
|
||||||
|
If f.Exists Then f.Delete(SFO.File, SFODelete.DeleteToRecycleBin, EDP.ReturnValue)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
#Region "Exceptions"
|
#Region "Exceptions"
|
||||||
''' <exception cref="ExitException"></exception>
|
''' <exception cref="ExitException"></exception>
|
||||||
''' <inheritdoc cref="UserDataBase.ThrowAny(CancellationToken)"/>
|
''' <inheritdoc cref="UserDataBase.ThrowAny(CancellationToken)"/>
|
||||||
@@ -996,12 +1052,14 @@ Namespace API.Instagram
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "Create media"
|
#Region "Create media"
|
||||||
Private Function MediaFromData(ByVal t As UTypes, ByVal _URL As String, ByVal PostID As String, ByVal PostDate As String,
|
Private Function MediaFromData(ByVal t As UTypes, ByVal _URL As String, ByVal PostID As String, ByVal PostDate As String,
|
||||||
Optional ByVal SpecialFolder As String = Nothing) As UserMedia
|
Optional ByVal SpecialFolder As String = Nothing, Optional ByVal PostOriginUrl As String = Nothing,
|
||||||
|
Optional ByVal State As UStates = UStates.Unknown, Optional ByVal Attempts As Integer = 0) As UserMedia
|
||||||
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
||||||
Dim m As New UserMedia(_URL, t) With {.Post = New UserPost With {.ID = PostID}}
|
Dim m As New UserMedia(_URL, t) With {.URL_BASE = PostOriginUrl.IfNullOrEmpty(_URL), .Post = New UserPost With {.ID = PostID}}
|
||||||
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
||||||
If Not PostDate.IsEmptyString Then m.Post.Date = AConvert(Of Date)(PostDate, UnixDate32Provider, Nothing) Else m.Post.Date = Nothing
|
If Not PostDate.IsEmptyString Then m.Post.Date = AConvert(Of Date)(PostDate, UnixDate32Provider, Nothing) Else m.Post.Date = Nothing
|
||||||
m.SpecialFolder = SpecialFolder
|
m.SpecialFolder = SpecialFolder
|
||||||
|
If State = UStates.Missing Then m.State = UStates.Missing : m.Attempts = Attempts
|
||||||
Return m
|
Return m
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ Namespace API.JustForFans
|
|||||||
Private DestinationFile As SFile
|
Private DestinationFile As SFile
|
||||||
Private ReadOnly Thrower As Plugin.IThrower
|
Private ReadOnly Thrower As Plugin.IThrower
|
||||||
Private ReadOnly Responser As Responser
|
Private ReadOnly Responser As Responser
|
||||||
|
Private ReadOnly ResponserInternal As Boolean
|
||||||
Private Const R_VIDEO_REGEX_PATTERN As String = "(#EXT-X-STREAM-INF)(.+)(RESOLUTION=\d+x)(\d+)(.+""\s*)(\S+)(\s*)"
|
Private Const R_VIDEO_REGEX_PATTERN As String = "(#EXT-X-STREAM-INF)(.+)(RESOLUTION=\d+x)(\d+)(.+""\s*)(\S+)(\s*)"
|
||||||
Private ReadOnly REGEX_AUDIO_URL As RParams = RParams.DMS("EXT-X-MEDIA.*?URI=.([^""]+)"".*?TYPE=""AUDIO""", 1, EDP.ReturnValue)
|
Private ReadOnly REGEX_AUDIO_URL As RParams = RParams.DMS("EXT-X-MEDIA.*?URI=.([^""]+)"".*?TYPE=""AUDIO""", 1, EDP.ReturnValue)
|
||||||
Private ReadOnly REGEX_PLS_FILES As RParams = RParams.DM("EXT-X-MAP:URI=""([^""]+)""|EXTINF.+?[\r\n]{1,2}(.+)", 0, RegexReturn.List, EDP.ReturnValue)
|
Private ReadOnly REGEX_PLS_FILES As RParams = RParams.DM("EXT-X-MAP:URI=""([^""]+)""|EXTINF.+?[\r\n]{1,2}(.+)", 0, RegexReturn.List, EDP.ReturnValue)
|
||||||
@@ -37,20 +38,24 @@ Namespace API.JustForFans
|
|||||||
Private ReadOnly ProgressPre As PreProgress
|
Private ReadOnly ProgressPre As PreProgress
|
||||||
Private ReadOnly ProgressExists As Boolean
|
Private ReadOnly ProgressExists As Boolean
|
||||||
Private ReadOnly UsePreProgress As Boolean
|
Private ReadOnly UsePreProgress As Boolean
|
||||||
|
Private Property Token As CancellationToken
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Initializer"
|
#Region "Initializer"
|
||||||
Private Sub New(ByVal m As UserMedia, ByVal Destination As SFile, ByVal Resp As Responser, ByVal _Thrower As Plugin.IThrower,
|
Private Sub New(ByVal m As UserMedia, ByVal Destination As SFile, ByVal Resp As Responser, ByVal _Thrower As Plugin.IThrower,
|
||||||
ByVal _Progress As MyProgress, ByVal _UsePreProgress As Boolean)
|
ByVal _Progress As MyProgress, ByVal _UsePreProgress As Boolean, ByVal _Token As CancellationToken)
|
||||||
Media = m
|
Media = m
|
||||||
DataVideo = New List(Of String)
|
DataVideo = New List(Of String)
|
||||||
DataAudio = New List(Of String)
|
DataAudio = New List(Of String)
|
||||||
DestinationFile = Destination
|
DestinationFile = Destination
|
||||||
Thrower = _Thrower
|
Thrower = _Thrower
|
||||||
Responser = Resp
|
'Responser = Resp
|
||||||
|
Responser = New Responser
|
||||||
|
ResponserInternal = True
|
||||||
Progress = _Progress
|
Progress = _Progress
|
||||||
ProgressExists = Not Progress Is Nothing
|
ProgressExists = Not Progress Is Nothing
|
||||||
If ProgressExists Then ProgressPre = New PreProgress(Progress)
|
If ProgressExists Then ProgressPre = New PreProgress(Progress)
|
||||||
UsePreProgress = _UsePreProgress
|
UsePreProgress = _UsePreProgress
|
||||||
|
Token = _Token
|
||||||
Cache = New CacheKeeper($"{DestinationFile.PathWithSeparator}_{M3U8Base.TempCacheFolderName}\")
|
Cache = New CacheKeeper($"{DestinationFile.PathWithSeparator}_{M3U8Base.TempCacheFolderName}\")
|
||||||
With Cache
|
With Cache
|
||||||
.CacheDeleteError = CacheDeletionError(Cache)
|
.CacheDeleteError = CacheDeletionError(Cache)
|
||||||
@@ -101,49 +106,15 @@ Namespace API.JustForFans
|
|||||||
If Not r.IsEmptyString Then
|
If Not r.IsEmptyString Then
|
||||||
Dim data As List(Of RegexMatchStruct) = RegexFields(Of RegexMatchStruct)(r, {REGEX_PLS_FILES}, {1, 2}, EDP.ReturnValue)
|
Dim data As List(Of RegexMatchStruct) = RegexFields(Of RegexMatchStruct)(r, {REGEX_PLS_FILES}, {1, 2}, EDP.ReturnValue)
|
||||||
If data.ListExists Then
|
If data.ListExists Then
|
||||||
Dim appender$ = URL.Replace(URL.Split("/").LastOrDefault, String.Empty)
|
File = $"{Cache.RootDirectory.PathWithSeparator}{IIf(IsAudio, "AUDIO.aac", "VIDEO.mp4")}"
|
||||||
With (From d As RegexMatchStruct In data
|
Using b As New TokenBatch(Token) With {.Encoding = Settings.CMDEncoding, .MainProcessName = "ffmpeg"}
|
||||||
Where Not d.Arr(0).IfNullOrEmpty(d.Arr(1)).IsEmptyString
|
AddHandler b.ErrorDataReceived, AddressOf Batch_OutputDataReceived
|
||||||
Select M3U8Base.CreateUrl(appender, d.Arr(0).IfNullOrEmpty(d.Arr(1)))).ToList
|
ProgressChangeMax(data.Count)
|
||||||
If .ListExists Then
|
b.ChangeDirectory(Cache.RootDirectory)
|
||||||
File = $"{Cache.RootDirectory.PathWithSeparator}{IIf(IsAudio, "AUDIO.aac", "VIDEO.mp4")}"
|
b.Execute($"""{Settings.FfmpegFile}"" -i {URL} -vcodec copy -strict -2 ""{File}""")
|
||||||
Dim tmpCache As CacheKeeper = Cache.NewInstance
|
Token.ThrowIfCancellationRequested()
|
||||||
Dim tmpFile As SFile = .Item(0)
|
If Not File.Exists Then File = Nothing
|
||||||
If tmpFile.Extension.IsEmptyString Then tmpFile.Extension = "ts"
|
End Using
|
||||||
tmpFile.Path = tmpCache.RootDirectory.Path
|
|
||||||
tmpFile.Separator = "\"
|
|
||||||
|
|
||||||
Dim cFile As SFile = tmpFile
|
|
||||||
cFile.Name = "all"
|
|
||||||
|
|
||||||
tmpCache.Validate()
|
|
||||||
|
|
||||||
Using bat As New TextSaver
|
|
||||||
Using b As New BatchExecutor(True) With {.Encoding = Settings.CMDEncoding}
|
|
||||||
AddHandler b.OutputDataReceived, AddressOf Batch_OutputDataReceived
|
|
||||||
bat.AppendLine($"chcp {BatchExecutor.UnicodeEncoding}")
|
|
||||||
bat.AppendLine(BatchExecutor.GetDirectoryCommand(tmpCache))
|
|
||||||
ProgressChangeMax(.Count * 2 + 1)
|
|
||||||
For i = 0 To .Count - 1
|
|
||||||
tmpFile.Name = $"ConPart_{i}"
|
|
||||||
Thrower.ThrowAny()
|
|
||||||
Responser.DownloadFile(.Item(i), tmpFile)
|
|
||||||
ProgressPerform()
|
|
||||||
tmpCache.AddFile(tmpFile, True)
|
|
||||||
bat.AppendLine($"type {tmpFile.File} >> {cFile.File}")
|
|
||||||
Next
|
|
||||||
|
|
||||||
bat.AppendLine($"""{Settings.FfmpegFile}"" -i {cFile.File} -c copy ""{File}""")
|
|
||||||
|
|
||||||
Dim batFile As SFile = bat.SaveAs($"{tmpCache.RootDirectory.PathWithSeparator}command.bat")
|
|
||||||
|
|
||||||
b.Execute($"""{batFile}""")
|
|
||||||
|
|
||||||
If Not File.Exists Then File = Nothing
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End If
|
|
||||||
End With
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Catch oex As OperationCanceledException
|
Catch oex As OperationCanceledException
|
||||||
@@ -155,8 +126,72 @@ Namespace API.JustForFans
|
|||||||
$"API.JustForFans.M3U8.GetFiles({IIf(IsAudio, "audio", "video")}):{vbCr}URL: {URL}{vbCr}File: {File}")
|
$"API.JustForFans.M3U8.GetFiles({IIf(IsAudio, "audio", "video")}):{vbCr}URL: {URL}{vbCr}File: {File}")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
'TODELETE: JFF.M3U8.GetFiles_OLD 20231008
|
||||||
|
'Private Sub GetFiles_OLD(ByVal URL As String, ByRef File As SFile, ByVal IsAudio As Boolean)
|
||||||
|
' Try
|
||||||
|
' Dim r$ = Responser.GetResponse(URL)
|
||||||
|
' If Not r.IsEmptyString Then
|
||||||
|
' Dim data As List(Of RegexMatchStruct) = RegexFields(Of RegexMatchStruct)(r, {REGEX_PLS_FILES}, {1, 2}, EDP.ReturnValue)
|
||||||
|
' If data.ListExists Then
|
||||||
|
' Dim appender$ = URL.Replace(URL.Split("/").LastOrDefault, String.Empty)
|
||||||
|
' With (From d As RegexMatchStruct In data
|
||||||
|
' Where Not d.Arr(0).IfNullOrEmpty(d.Arr(1)).IsEmptyString
|
||||||
|
' Select M3U8Base.CreateUrl(appender, d.Arr(0).IfNullOrEmpty(d.Arr(1)).Trim)).ToList
|
||||||
|
' If .ListExists Then
|
||||||
|
' File = $"{Cache.RootDirectory.PathWithSeparator}{IIf(IsAudio, "AUDIO.aac", "VIDEO.mp4")}"
|
||||||
|
' Dim tmpCache As CacheKeeper = Cache.NewInstance
|
||||||
|
' Dim tmpFile As SFile = .Item(0)
|
||||||
|
' If tmpFile.Extension.IsEmptyString Then tmpFile.Extension = "ts"
|
||||||
|
' tmpFile.Path = tmpCache.RootDirectory.Path
|
||||||
|
' tmpFile.Separator = "\"
|
||||||
|
|
||||||
|
' Dim cFile As SFile = tmpFile
|
||||||
|
' cFile.Name = "all"
|
||||||
|
|
||||||
|
' tmpCache.Validate()
|
||||||
|
|
||||||
|
' Using bat As New TextSaver
|
||||||
|
' Using b As New BatchExecutor(True) With {.Encoding = Settings.CMDEncoding}
|
||||||
|
' AddHandler b.OutputDataReceived, AddressOf Batch_OutputDataReceived
|
||||||
|
' bat.AppendLine($"chcp {BatchExecutor.UnicodeEncoding}")
|
||||||
|
' bat.AppendLine(BatchExecutor.GetDirectoryCommand(tmpCache))
|
||||||
|
' ProgressChangeMax(.Count * 2 + 1)
|
||||||
|
' Using w As New WebClient
|
||||||
|
' For i = 0 To .Count - 1
|
||||||
|
' tmpFile.Name = $"ConPart_{i}"
|
||||||
|
' Thrower.ThrowAny()
|
||||||
|
' 'Responser.DownloadFile(.Item(i), tmpFile)
|
||||||
|
' w.DownloadFile(.Item(i), tmpFile)
|
||||||
|
' ProgressPerform()
|
||||||
|
' tmpCache.AddFile(tmpFile, True)
|
||||||
|
' bat.AppendLine($"type {tmpFile.File} >> {cFile.File}")
|
||||||
|
' Next
|
||||||
|
' End Using
|
||||||
|
|
||||||
|
' bat.AppendLine($"""{Settings.FfmpegFile}"" -i {cFile.File} -c copy ""{File}""")
|
||||||
|
|
||||||
|
' Dim batFile As SFile = bat.SaveAs($"{tmpCache.RootDirectory.PathWithSeparator}command.bat")
|
||||||
|
|
||||||
|
' b.Execute($"""{batFile}""")
|
||||||
|
|
||||||
|
' If Not File.Exists Then File = Nothing
|
||||||
|
' End Using
|
||||||
|
' End Using
|
||||||
|
' End If
|
||||||
|
' End With
|
||||||
|
' End If
|
||||||
|
' End If
|
||||||
|
' Catch oex As OperationCanceledException
|
||||||
|
' Throw oex
|
||||||
|
' Catch dex As ObjectDisposedException
|
||||||
|
' Throw dex
|
||||||
|
' Catch ex As Exception
|
||||||
|
' ErrorsDescriber.Execute(EDP.SendToLog + EDP.ThrowException, ex,
|
||||||
|
' $"API.JustForFans.M3U8.GetFiles({IIf(IsAudio, "audio", "video")}):{vbCr}URL: {URL}{vbCr}File: {File}")
|
||||||
|
' End Try
|
||||||
|
'End Sub
|
||||||
Private Async Sub Batch_OutputDataReceived(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
Private Async Sub Batch_OutputDataReceived(ByVal Sender As Object, ByVal e As DataReceivedEventArgs)
|
||||||
Await Task.Run(Sub() ProgressPerform())
|
Await Task.Run(Sub() If Not e.Data.IsEmptyString AndAlso e.Data.Contains("] Opening") Then ProgressPerform())
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub MergeFiles()
|
Private Sub MergeFiles()
|
||||||
Try
|
Try
|
||||||
@@ -194,8 +229,8 @@ Namespace API.JustForFans
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "Static Download"
|
#Region "Static Download"
|
||||||
Friend Shared Function Download(ByVal Media As UserMedia, ByVal DestinationFile As SFile, ByVal Resp As Responser, ByVal Thrower As Plugin.IThrower,
|
Friend Shared Function Download(ByVal Media As UserMedia, ByVal DestinationFile As SFile, ByVal Resp As Responser, ByVal Thrower As Plugin.IThrower,
|
||||||
ByVal Progress As MyProgress, ByVal UsePreProgress As Boolean) As SFile
|
ByVal Progress As MyProgress, ByVal UsePreProgress As Boolean, ByVal _Token As CancellationToken) As SFile
|
||||||
Using m As New M3U8(Media, DestinationFile, Resp, Thrower, Progress, UsePreProgress)
|
Using m As New M3U8(Media, DestinationFile, Resp, Thrower, Progress, UsePreProgress, _Token)
|
||||||
m.Download()
|
m.Download()
|
||||||
If m.DestinationFile.Exists Then Return m.DestinationFile Else Return Nothing
|
If m.DestinationFile.Exists Then Return m.DestinationFile Else Return Nothing
|
||||||
End Using
|
End Using
|
||||||
@@ -210,6 +245,7 @@ Namespace API.JustForFans
|
|||||||
DataAudio.Clear()
|
DataAudio.Clear()
|
||||||
ProgressPre.DisposeIfReady
|
ProgressPre.DisposeIfReady
|
||||||
Cache.Dispose()
|
Cache.Dispose()
|
||||||
|
If ResponserInternal Then Responser.DisposeIfReady
|
||||||
End If
|
End If
|
||||||
disposedValue = True
|
disposedValue = True
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ Namespace API.JustForFans
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Friend Overrides Function Available(ByVal What As ISiteSettings.Download, ByVal Silent As Boolean) As Boolean
|
Friend Overrides Function Available(ByVal What As ISiteSettings.Download, ByVal Silent As Boolean) As Boolean
|
||||||
Return Responser.CookiesExists And ACheck(UserID.Value) And ACheck(UserHash4.Value)
|
Return Settings.FfmpegFile.Exists And Responser.CookiesExists And ACheck(UserID.Value) And ACheck(UserHash4.Value)
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -168,7 +168,8 @@ Namespace API.JustForFans
|
|||||||
#Region "Initializer"
|
#Region "Initializer"
|
||||||
Friend Sub New()
|
Friend Sub New()
|
||||||
UseInternalM3U8Function = True
|
UseInternalM3U8Function = True
|
||||||
UseResponserClient = True
|
'TODELETE: UseResponserClient 20231008
|
||||||
|
'UseResponserClient = True
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Download functions"
|
#Region "Download functions"
|
||||||
@@ -176,10 +177,13 @@ Namespace API.JustForFans
|
|||||||
Private _Limit As Integer = -1
|
Private _Limit As Integer = -1
|
||||||
Private FileSerialInstance As FileSerial
|
Private FileSerialInstance As FileSerial
|
||||||
Private _UserHash4 As String = String.Empty
|
Private _UserHash4 As String = String.Empty
|
||||||
|
Private Sub InitializeFileSerial()
|
||||||
|
If FileSerialInstance Is Nothing Then FileSerialInstance = New FileSerial(DownloadContentDefault_GetRootDir())
|
||||||
|
End Sub
|
||||||
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
||||||
Try
|
Try
|
||||||
_UserHash4 = MySettings.UserHash4.Value
|
_UserHash4 = MySettings.UserHash4.Value
|
||||||
FileSerialInstance = New FileSerial(DownloadContentDefault_GetRootDir())
|
InitializeFileSerial()
|
||||||
Responser.Cookies.Changed = False
|
Responser.Cookies.Changed = False
|
||||||
If Not ResponserNoHandlers Is Nothing Then ResponserNoHandlers.Dispose() : ResponserNoHandlers = Nothing
|
If Not ResponserNoHandlers Is Nothing Then ResponserNoHandlers.Dispose() : ResponserNoHandlers = Nothing
|
||||||
ResponserNoHandlers = Responser.Copy
|
ResponserNoHandlers = Responser.Copy
|
||||||
@@ -233,11 +237,13 @@ Namespace API.JustForFans
|
|||||||
|
|
||||||
Select Case CheckDatesLimit(post.PostDate, Nothing)
|
Select Case CheckDatesLimit(post.PostDate, Nothing)
|
||||||
Case DateResult.Skip : Continue For
|
Case DateResult.Skip : Continue For
|
||||||
Case DateResult.Exit : Exit Sub
|
Case DateResult.Exit : If post.Pinned Then Continue For Else Exit Sub
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
_DownloadedPostsCount += 1
|
_DownloadedPostsCount += 1
|
||||||
_TempMediaList.ListAddList(post.GetUserMedia(FileSerialInstance), LNC)
|
_TempMediaList.ListAddList(post.GetUserMedia(FileSerialInstance), LNC)
|
||||||
|
|
||||||
|
If _Limit > 0 And _DownloadedPostsCount >= _Limit Then Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
@@ -250,11 +256,12 @@ Namespace API.JustForFans
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub GetUserID()
|
Private Sub GetUserID()
|
||||||
Try
|
Try
|
||||||
Dim r$, hash$, new_id$
|
Dim r$, hash$, new_id$, profilePic$
|
||||||
If ID.IsEmptyString Then
|
If ID.IsEmptyString Then
|
||||||
r = Responser.GetResponse($"https://justfor.fans/{Name}")
|
r = Responser.GetResponse($"https://justfor.fans/{Name}")
|
||||||
If Not r.IsEmptyString Then
|
If Not r.IsEmptyString Then
|
||||||
hash = RegexReplace(r, RegexUser)
|
hash = RegexReplace(r, RegexUser)
|
||||||
|
profilePic = RegexReplace(r, RParams.DMS("<img class=.mainProfilePic..+?src=""([^""]+)", 1, EDP.ReturnValue))
|
||||||
If Not hash.IsEmptyString Then
|
If Not hash.IsEmptyString Then
|
||||||
r = Responser.GetResponse($"https://justfor.fans/ajax/getAssetCount.php?User={Name}&Ver={hash}")
|
r = Responser.GetResponse($"https://justfor.fans/ajax/getAssetCount.php?User={Name}&Ver={hash}")
|
||||||
If Not r.IsEmptyString Then
|
If Not r.IsEmptyString Then
|
||||||
@@ -262,8 +269,14 @@ Namespace API.JustForFans
|
|||||||
If j.ListExists Then
|
If j.ListExists Then
|
||||||
new_id = j.Value("UserID")
|
new_id = j.Value("UserID")
|
||||||
If Not new_id.IsEmptyString Then
|
If Not new_id.IsEmptyString Then
|
||||||
new_id = RegexReplace(new_id, RParams.DM("\D", 0, RegexReturn.Replace, CType(Function(input$) String.Empty, Func(Of String, String))))
|
new_id = RegexReplace(new_id, RParams.DM("\D", -1, RegexReturn.Replace,
|
||||||
If Not new_id.IsEmptyString Then ID = new_id : _ForceSaveUserInfo = True
|
CType(Function(input$) String.Empty, Func(Of String, String)),
|
||||||
|
String.Empty, EDP.ReturnValue))
|
||||||
|
If Not new_id.IsEmptyString Then
|
||||||
|
ID = new_id
|
||||||
|
_ForceSaveUserInfo = True
|
||||||
|
If Not profilePic.IsEmptyString Then GetWebFile(profilePic, $"{DownloadContentDefault_GetRootDir.CSFilePS}ProfilePic.jpg", EDP.None)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Using
|
End Using
|
||||||
@@ -281,8 +294,14 @@ Namespace API.JustForFans
|
|||||||
Dim rList As New List(Of Integer)
|
Dim rList As New List(Of Integer)
|
||||||
Try
|
Try
|
||||||
If ContentMissingExists Then
|
If ContentMissingExists Then
|
||||||
|
InitializeFileSerial()
|
||||||
Dim r$
|
Dim r$
|
||||||
Dim m As UserMedia
|
Dim m As UserMedia
|
||||||
|
Dim stateRefill As Func(Of UserMedia, Integer, UserMedia) = Function(ByVal input As UserMedia, ii As Integer) As UserMedia
|
||||||
|
input.State = UserMedia.States.Missing
|
||||||
|
input.Attempts = m.Attempts
|
||||||
|
Return input
|
||||||
|
End Function
|
||||||
Dim p As PostBlock
|
Dim p As PostBlock
|
||||||
Dim rErr As New ErrorsDescriber(EDP.ReturnValue)
|
Dim rErr As New ErrorsDescriber(EDP.ReturnValue)
|
||||||
For i% = 0 To _ContentList.Count - 1
|
For i% = 0 To _ContentList.Count - 1
|
||||||
@@ -295,7 +314,7 @@ Namespace API.JustForFans
|
|||||||
If .ListExists Then
|
If .ListExists Then
|
||||||
rList.Add(i)
|
rList.Add(i)
|
||||||
For Each p In .Self
|
For Each p In .Self
|
||||||
If p.Valid Then _TempMediaList.ListAddList(p.GetUserMedia(FileSerialInstance), LNC)
|
If p.Valid Then _TempMediaList.ListAddList(p.GetUserMedia(FileSerialInstance).ListForEachCopy(stateRefill, True), LNC)
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
@@ -318,7 +337,7 @@ Namespace API.JustForFans
|
|||||||
DownloadContentDefault(Token)
|
DownloadContentDefault(Token)
|
||||||
End Sub
|
End Sub
|
||||||
Protected Overrides Function DownloadM3U8(ByVal URL As String, ByVal Media As UserMedia, ByVal DestinationFile As SFile, ByVal Token As CancellationToken) As SFile
|
Protected Overrides Function DownloadM3U8(ByVal URL As String, ByVal Media As UserMedia, ByVal DestinationFile As SFile, ByVal Token As CancellationToken) As SFile
|
||||||
Return M3U8.Download(Media, DestinationFile, ResponserNoHandlers, Me, Progress, Not IsSingleObjectDownload)
|
Return M3U8.Download(Media, DestinationFile, ResponserNoHandlers, Me, Progress, Not IsSingleObjectDownload, Token)
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "DownloadSingleObject"
|
#Region "DownloadSingleObject"
|
||||||
|
|||||||
@@ -203,17 +203,21 @@ Namespace API.Mastodon
|
|||||||
#Region "UpdateServersList"
|
#Region "UpdateServersList"
|
||||||
Private Sub UpdateServersList()
|
Private Sub UpdateServersList()
|
||||||
Try
|
Try
|
||||||
Dim r$ = GetWebString("https://api.joinmastodon.org/servers?language=&category=®ion=&ownership=®istrations=",, EDP.ThrowException)
|
Using resp As New Responser With {
|
||||||
If Not r.IsEmptyString Then
|
.ProcessExceptionDecision = Function(rr, obj, e) If(rr.StatusCode = Net.HttpStatusCode.ServiceUnavailable,
|
||||||
Dim j As EContainer = JsonDocument.Parse(r, EDP.ReturnValue)
|
EDP.ReturnValue, EDP.ThrowException)}
|
||||||
If If(j?.Count, 0) > 0 Then
|
Dim r$ = resp.GetResponse("https://api.joinmastodon.org/servers?language=&category=®ion=&ownership=®istrations=")
|
||||||
Domains.Domains.ListAddList(j.Select(Function(e) e.Value("domain")), LAP.NotContainsOnly, EDP.ReturnValue)
|
If Not r.IsEmptyString Then
|
||||||
Domains.Domains.Sort()
|
Dim j As EContainer = JsonDocument.Parse(r, EDP.ReturnValue)
|
||||||
Domains.Save()
|
If If(j?.Count, 0) > 0 Then
|
||||||
j.Dispose()
|
Domains.Domains.ListAddList(j.Select(Function(e) e.Value("domain")), LAP.NotContainsOnly, EDP.ReturnValue)
|
||||||
|
Domains.Domains.Sort()
|
||||||
|
Domains.Save()
|
||||||
|
j.Dispose()
|
||||||
|
End If
|
||||||
|
DomainsLastUpdateDate.Value = Now
|
||||||
End If
|
End If
|
||||||
End If
|
End Using
|
||||||
DomainsLastUpdateDate.Value = Now
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.Mastodon.SiteSettings.UpdateServersList]")
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.Mastodon.SiteSettings.UpdateServersList]")
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
@@ -190,7 +190,8 @@ Namespace API.Mastodon
|
|||||||
ProcessException(ex, Token, $"data downloading error{IIf(IsSavedPosts, " (Saved Posts)", String.Empty)} [{URL}]")
|
ProcessException(ex, Token, $"data downloading error{IIf(IsSavedPosts, " (Saved Posts)", String.Empty)} [{URL}]")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub ObtainMedia(ByVal e As EContainer, ByVal PostID As String, ByVal PostDate As String, Optional ByVal BaseUrl As String = Nothing)
|
Private Sub ObtainMedia(ByVal e As EContainer, ByVal PostID As String, ByVal PostDate As String, Optional ByVal BaseUrl As String = Nothing,
|
||||||
|
Optional ByVal SourceMedia As UserMedia = Nothing)
|
||||||
Dim t As UTypes = UTypes.Undefined
|
Dim t As UTypes = UTypes.Undefined
|
||||||
Select Case e.Value("type")
|
Select Case e.Value("type")
|
||||||
Case "video" : t = UTypes.Video
|
Case "video" : t = UTypes.Video
|
||||||
@@ -207,7 +208,13 @@ Namespace API.Mastodon
|
|||||||
If Not GifsSpecialFolder.IsEmptyString Then m.SpecialFolder = GifsSpecialFolder
|
If Not GifsSpecialFolder.IsEmptyString Then m.SpecialFolder = GifsSpecialFolder
|
||||||
If Not GifsPrefix.IsEmptyString Then m.File.Name = $"{GifsPrefix}{m.File.Name}"
|
If Not GifsPrefix.IsEmptyString Then m.File.Name = $"{GifsPrefix}{m.File.Name}"
|
||||||
End If
|
End If
|
||||||
If Not m.URL.IsEmptyString Then _TempMediaList.ListAddValue(m, LNC)
|
If Not m.URL.IsEmptyString Then
|
||||||
|
If SourceMedia.State = UStates.Missing Then
|
||||||
|
m.State = UStates.Missing
|
||||||
|
m.Attempts = SourceMedia.Attempts
|
||||||
|
End If
|
||||||
|
_TempMediaList.ListAddValue(m, LNC)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@@ -261,7 +268,7 @@ Namespace API.Mastodon
|
|||||||
If Not j Is Nothing Then
|
If Not j Is Nothing Then
|
||||||
PostDate = String.Empty
|
PostDate = String.Empty
|
||||||
If j.Contains("created_at") Then PostDate = j("created_at").Value Else PostDate = String.Empty
|
If j.Contains("created_at") Then PostDate = j("created_at").Value Else PostDate = String.Empty
|
||||||
ObtainMedia(j, m.Post.ID, PostDate, m.URL_BASE)
|
ObtainMedia(j, m.Post.ID, PostDate, m.URL_BASE, m)
|
||||||
rList.Add(i)
|
rList.Add(i)
|
||||||
j.Dispose()
|
j.Dispose()
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -380,6 +380,11 @@ Namespace API.OnlyFans
|
|||||||
Try
|
Try
|
||||||
If ContentMissingExists Then
|
If ContentMissingExists Then
|
||||||
Dim m As UserMedia
|
Dim m As UserMedia
|
||||||
|
Dim stateRefill As Func(Of UserMedia, Integer, UserMedia) = Function(ByVal input As UserMedia, ii As Integer) As UserMedia
|
||||||
|
input.State = UStates.Missing
|
||||||
|
input.Attempts = m.Attempts
|
||||||
|
Return input
|
||||||
|
End Function
|
||||||
Dim mList As List(Of UserMedia)
|
Dim mList As List(Of UserMedia)
|
||||||
Dim mediaResult As Boolean
|
Dim mediaResult As Boolean
|
||||||
Dim r$, path$, postDate$
|
Dim r$, path$, postDate$
|
||||||
@@ -402,7 +407,7 @@ Namespace API.OnlyFans
|
|||||||
mediaResult = False
|
mediaResult = False
|
||||||
mList = TryCreateMedia(j, m.Post.ID, postDate, mediaResult)
|
mList = TryCreateMedia(j, m.Post.ID, postDate, mediaResult)
|
||||||
If mediaResult Then
|
If mediaResult Then
|
||||||
_TempMediaList.ListAddList(mList, LNC)
|
_TempMediaList.ListAddList(mList.ListForEachCopy(stateRefill, True), LNC)
|
||||||
rList.Add(i)
|
rList.Add(i)
|
||||||
mList.Clear()
|
mList.Clear()
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Namespace API.PornHub
|
|||||||
Private ReadOnly UnicodeHexConverter As Func(Of String, String) = Function(Input) SymbolsConverter.UnicodeHex.Decode(Input, EDP.ReturnValue)
|
Private ReadOnly UnicodeHexConverter As Func(Of String, String) = Function(Input) SymbolsConverter.UnicodeHex.Decode(Input, EDP.ReturnValue)
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Declarations video"
|
#Region "Declarations video"
|
||||||
|
Friend ReadOnly RegexVideo_MediaDef As RParams = RParams.DMS("mediaDefinitions.:\s*(\[\{.+?\}\])", 1, RegexOptions.Singleline, EDP.ReturnValue)
|
||||||
Friend ReadOnly RegexVideo_FlashVarsBlocks As RParams = RParams.DM("(?<=(flashvars_\['[nN]ext[vV]ideo'\]|flashvars_\d+[^ ]+? = media_\d+?);[\r\n]*?)(.+?)(?=;flashvars_\d+?)",
|
Friend ReadOnly RegexVideo_FlashVarsBlocks As RParams = RParams.DM("(?<=(flashvars_\['[nN]ext[vV]ideo'\]|flashvars_\d+[^ ]+? = media_\d+?);[\r\n]*?)(.+?)(?=;flashvars_\d+?)",
|
||||||
0, RegexReturn.List, EDP.ReturnValue)
|
0, RegexReturn.List, EDP.ReturnValue)
|
||||||
Friend ReadOnly RegexVideo_FlashVars_Vars As RParams = RParams.DM("var ([\w\d]{10,})=("".+?)(?=(;|\Z))", 0, RegexReturn.List)
|
Friend ReadOnly RegexVideo_FlashVars_Vars As RParams = RParams.DM("var ([\w\d]{10,})=("".+?)(?=(;|\Z))", 0, RegexReturn.List)
|
||||||
|
|||||||
@@ -818,6 +818,15 @@ Namespace API.PornHub
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "CreateVideoURL"
|
#Region "CreateVideoURL"
|
||||||
Private Function CreateVideoURL(ByVal r As String) As String
|
Private Function CreateVideoURL(ByVal r As String) As String
|
||||||
|
If r.IsEmptyString Then
|
||||||
|
Return String.Empty
|
||||||
|
Else
|
||||||
|
Dim u$ = CreateVideoURL_FlashVars(r)
|
||||||
|
If u.IsEmptyString Then u = CreateVideoURL_MediaDef(r)
|
||||||
|
Return u
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
Private Function CreateVideoURL_FlashVars(ByVal r As String) As String
|
||||||
Try
|
Try
|
||||||
Dim OutStr$ = String.Empty
|
Dim OutStr$ = String.Empty
|
||||||
Dim OutList As New List(Of String)
|
Dim OutList As New List(Of String)
|
||||||
@@ -876,7 +885,26 @@ Namespace API.PornHub
|
|||||||
MyMainLOG = $"{ToStringForLog()}: something is wrong when parsing flashvars.{vbCr}{regex_ex.Message}"
|
MyMainLOG = $"{ToStringForLog()}: something is wrong when parsing flashvars.{vbCr}{regex_ex.Message}"
|
||||||
Return String.Empty
|
Return String.Empty
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Return ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.PornHub.UserData.CreateVideoURL]", String.Empty)
|
Return ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.PornHub.UserData.CreateVideoURL_FlashVars]", String.Empty)
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Private Function CreateVideoURL_MediaDef(ByVal r As String) As String
|
||||||
|
Try
|
||||||
|
Dim result$ = String.Empty
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
Dim script$ = RegexReplace(r, RegexVideo_MediaDef)
|
||||||
|
If Not script.IsEmptyString Then
|
||||||
|
Using j As EContainer = JsonDocument.Parse(script)
|
||||||
|
If j.ListExists Then
|
||||||
|
Dim s As List(Of Sizes) = j.Select(Function(jj) New Sizes(jj.Value("quality"), jj.Value("videoUrl"))).ListWithRemove(Function(d) d.HasError Or d.Data.IsEmptyString)
|
||||||
|
If s.ListExists Then s.Sort() : result = s(0).Data : s.Clear()
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return result
|
||||||
|
Catch ex As Exception
|
||||||
|
Return ErrorsDescriber.Execute(EDP.SendToLog, ex, "[API.PornHub.UserData.CreateVideoURL_MediaDef]", String.Empty)
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ Namespace API.Reddit
|
|||||||
For i% = 0 To p.Count - 1
|
For i% = 0 To p.Count - 1
|
||||||
If CStr(p(i).Value).IsEmptyString Then wrong.Add(p(i).Name)
|
If CStr(p(i).Value).IsEmptyString Then wrong.Add(p(i).Name)
|
||||||
Next
|
Next
|
||||||
If wrong.Count > 0 Then
|
If wrong.Count > 0 And wrong.Count <> 4 Then
|
||||||
MsgBoxE({$"You have not completed the following fields: {wrong.ListToString}." & vbCr &
|
MsgBoxE({$"You have not completed the following fields: {wrong.ListToString}." & vbCr &
|
||||||
"To use OAuth authorization, all authorization fields must be filled in.", "Validate token fields"}, vbCritical)
|
"To use OAuth authorization, all authorization fields must be filled in.", "Validate token fields"}, vbCritical)
|
||||||
Return False
|
Return False
|
||||||
|
|||||||
@@ -877,6 +877,8 @@ Namespace API.Reddit
|
|||||||
For li = IIf(lastCount < 0, 0, lastCount) To _TempMediaList.Count - 1
|
For li = IIf(lastCount < 0, 0, lastCount) To _TempMediaList.Count - 1
|
||||||
m2 = _TempMediaList(i)
|
m2 = _TempMediaList(i)
|
||||||
m2.Post.Date = m.Post.Date
|
m2.Post.Date = m.Post.Date
|
||||||
|
m2.State = UStates.Missing
|
||||||
|
m2.Attempts = m.Attempts
|
||||||
_TempMediaList(i) = m2
|
_TempMediaList(i) = m2
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -74,10 +74,10 @@ Namespace API.RedGifs
|
|||||||
#Region "Media obtain, extract"
|
#Region "Media obtain, extract"
|
||||||
Private Sub ObtainMedia(ByVal j As EContainer, ByVal PostID As String,
|
Private Sub ObtainMedia(ByVal j As EContainer, ByVal PostID As String,
|
||||||
Optional ByVal PostDateStr As String = Nothing, Optional ByVal PostDateDate As Date? = Nothing,
|
Optional ByVal PostDateStr As String = Nothing, Optional ByVal PostDateDate As Date? = Nothing,
|
||||||
Optional ByVal State As UStates = UStates.Unknown)
|
Optional ByVal State As UStates = UStates.Unknown, Optional ByVal Attempts As Integer = 0)
|
||||||
Dim tMedia As UserMedia = ExtractMedia(j)
|
Dim tMedia As UserMedia = ExtractMedia(j)
|
||||||
If Not tMedia.Type = UTypes.Undefined Then _
|
If Not tMedia.Type = UTypes.Undefined Then _
|
||||||
_TempMediaList.ListAddValue(MediaFromData(tMedia.Type, tMedia.URL, PostID, PostDateStr, PostDateDate, State))
|
_TempMediaList.ListAddValue(MediaFromData(tMedia.Type, tMedia.URL, PostID, PostDateStr, PostDateDate, State, Attempts))
|
||||||
End Sub
|
End Sub
|
||||||
Private Shared Function ExtractMedia(ByVal j As EContainer) As UserMedia
|
Private Shared Function ExtractMedia(ByVal j As EContainer) As UserMedia
|
||||||
If Not j Is Nothing Then
|
If Not j Is Nothing Then
|
||||||
@@ -122,7 +122,7 @@ Namespace API.RedGifs
|
|||||||
j = JsonDocument.Parse(r)
|
j = JsonDocument.Parse(r)
|
||||||
If Not j Is Nothing Then
|
If Not j Is Nothing Then
|
||||||
If If(j("gif")?.Count, 0) > 0 Then
|
If If(j("gif")?.Count, 0) > 0 Then
|
||||||
ObtainMedia(j("gif"), u.Post.ID,, u.Post.Date, UStates.Missing)
|
ObtainMedia(j("gif"), u.Post.ID,, u.Post.Date, UStates.Missing, u.Attempts)
|
||||||
rList.Add(i)
|
rList.Add(i)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -229,7 +229,7 @@ Namespace API.RedGifs
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "Create media"
|
#Region "Create media"
|
||||||
Private Function MediaFromData(ByVal t As UTypes, ByVal _URL As String, ByVal PostID As String,
|
Private Function MediaFromData(ByVal t As UTypes, ByVal _URL As String, ByVal PostID As String,
|
||||||
ByVal PostDateStr As String, ByVal PostDateDate As Date?, ByVal State As UStates) As UserMedia
|
ByVal PostDateStr As String, ByVal PostDateDate As Date?, ByVal State As UStates, Optional ByVal Attempts As Integer = 0) As UserMedia
|
||||||
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
||||||
Dim m As New UserMedia(_URL, t) With {.Post = New UserPost With {.ID = PostID}}
|
Dim m As New UserMedia(_URL, t) With {.Post = New UserPost With {.ID = PostID}}
|
||||||
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
||||||
@@ -241,6 +241,7 @@ Namespace API.RedGifs
|
|||||||
m.Post.Date = Nothing
|
m.Post.Date = Nothing
|
||||||
End If
|
End If
|
||||||
m.State = State
|
m.State = State
|
||||||
|
m.Attempts = Attempts
|
||||||
Return m
|
Return m
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
@@ -249,7 +250,7 @@ Namespace API.RedGifs
|
|||||||
Optional ByVal EObj As Object = Nothing) As Integer
|
Optional ByVal EObj As Object = Nothing) As Integer
|
||||||
Dim s As WebExceptionStatus = Responser.Status
|
Dim s As WebExceptionStatus = Responser.Status
|
||||||
Dim sc As HttpStatusCode = Responser.StatusCode
|
Dim sc As HttpStatusCode = Responser.StatusCode
|
||||||
If sc = HttpStatusCode.NotFound Or s = DataGone Then
|
If sc = HttpStatusCode.NotFound Or s = DataGone Or sc = DataGone Then
|
||||||
UserExists = False
|
UserExists = False
|
||||||
ElseIf sc = HttpStatusCode.Unauthorized Then
|
ElseIf sc = HttpStatusCode.Unauthorized Then
|
||||||
MyMainLOG = $"RedGifs credentials have expired [{CInt(sc)}]: {ToStringForLog()}"
|
MyMainLOG = $"RedGifs credentials have expired [{CInt(sc)}]: {ToStringForLog()}"
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ Namespace API.ThisVid
|
|||||||
#Region "Initializer"
|
#Region "Initializer"
|
||||||
Friend Sub New()
|
Friend Sub New()
|
||||||
UseClientTokens = True
|
UseClientTokens = True
|
||||||
|
PagePosts = New List(Of String)
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Validation"
|
#Region "Validation"
|
||||||
@@ -223,8 +224,10 @@ Namespace API.ThisVid
|
|||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Download functions"
|
#Region "Download functions"
|
||||||
|
Private ReadOnly PagePosts As List(Of String)
|
||||||
Private AddedCount As Integer = 0
|
Private AddedCount As Integer = 0
|
||||||
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
||||||
|
PagePosts.Clear()
|
||||||
AddedCount = 0
|
AddedCount = 0
|
||||||
Responser.Cookies.ChangedAllowInternalDrop = False
|
Responser.Cookies.ChangedAllowInternalDrop = False
|
||||||
Responser.Cookies.Changed = False
|
Responser.Cookies.Changed = False
|
||||||
@@ -299,11 +302,16 @@ Namespace API.ThisVid
|
|||||||
_TempMediaList.Add(New UserMedia(u) With {.Type = UserMedia.Types.VideoPre, .SpecialFolder = __SpecialFolder})
|
_TempMediaList.Add(New UserMedia(u) With {.Type = UserMedia.Types.VideoPre, .SpecialFolder = __SpecialFolder})
|
||||||
AddedCount += 1
|
AddedCount += 1
|
||||||
If limit > 0 And AddedCount >= limit Then Exit Sub
|
If limit > 0 And AddedCount >= limit Then Exit Sub
|
||||||
|
ElseIf PagePosts.Count > 0 AndAlso PagePosts.Contains(u) Then
|
||||||
|
Continue For
|
||||||
Else
|
Else
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
PagePosts.Clear()
|
||||||
|
PagePosts.AddRange(l)
|
||||||
|
l.Clear()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
If Not cBefore = _TempMediaList.Count And (IsUser Or Page < 1000) Then DownloadData(Page + 1, Model, Token)
|
If Not cBefore = _TempMediaList.Count And (IsUser Or Page < 1000) Then DownloadData(Page + 1, Model, Token)
|
||||||
@@ -537,6 +545,12 @@ Namespace API.ThisVid
|
|||||||
Return 0
|
Return 0
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IDisposable Support"
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
If Not disposedValue And disposing Then PagePosts.Clear()
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
166
SCrawler/API/ThreadsNet/SiteSettings.vb
Normal file
166
SCrawler/API/ThreadsNet/SiteSettings.vb
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
' Copyright (C) 2023 Andy https://github.com/AAndyProgram
|
||||||
|
' This program is free software: you can redistribute it and/or modify
|
||||||
|
' it under the terms of the GNU General Public License as published by
|
||||||
|
' the Free Software Foundation, either version 3 of the License, or
|
||||||
|
' (at your option) any later version.
|
||||||
|
'
|
||||||
|
' This program is distributed in the hope that it will be useful,
|
||||||
|
' but WITHOUT ANY WARRANTY
|
||||||
|
Imports SCrawler.API.Base
|
||||||
|
Imports SCrawler.Plugin
|
||||||
|
Imports SCrawler.Plugin.Attributes
|
||||||
|
Imports PersonalUtilities.Tools.Web.Clients
|
||||||
|
Imports PersonalUtilities.Tools.Web.Cookies
|
||||||
|
Imports PersonalUtilities.Functions.RegularExpressions
|
||||||
|
Imports IG = SCrawler.API.Instagram.SiteSettings
|
||||||
|
Namespace API.ThreadsNet
|
||||||
|
<Manifest("AndyProgram_ThreadsNet"), SeparatedTasks(1)>
|
||||||
|
Friend Class SiteSettings : Inherits SiteSettingsBase
|
||||||
|
#Region "Declarations"
|
||||||
|
Friend Overrides ReadOnly Property Icon As Icon
|
||||||
|
Get
|
||||||
|
Return My.Resources.SiteResources.ThreadsIcon_192
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Private ReadOnly _Image As Image
|
||||||
|
Friend Overrides ReadOnly Property Image As Image
|
||||||
|
Get
|
||||||
|
Return _Image
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
#Region "Authorization"
|
||||||
|
<PropertyOption(ControlText:="x-csrftoken", AllowNull:=False)>
|
||||||
|
Friend ReadOnly Property HH_CSRF_TOKEN As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="x-ig-app-id", AllowNull:=False)>
|
||||||
|
Friend Property HH_IG_APP_ID As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="x-asbd-id", AllowNull:=True)>
|
||||||
|
Friend Property HH_ASBD_ID As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="sec-ch-ua", AllowNull:=True)>
|
||||||
|
Private Property HH_BROWSER As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="sec-ch-ua-full", ControlToolTip:="sec-ch-ua-full-version-list", AllowNull:=True)>
|
||||||
|
Private Property HH_BROWSER_EXT As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="sec-ch-ua-platform-ver", ControlToolTip:="sec-ch-ua-platform-version", AllowNull:=True, LeftOffset:=120)>
|
||||||
|
Private Property HH_PLATFORM As PropertyValue
|
||||||
|
<PropertyOption(ControlText:="UserAgent")>
|
||||||
|
Private ReadOnly Property HH_USER_AGENT As PropertyValue
|
||||||
|
Private Sub ChangeResponserFields(ByVal PropName As String, ByVal Value As Object)
|
||||||
|
If Not PropName.IsEmptyString Then
|
||||||
|
Dim f$ = String.Empty
|
||||||
|
Dim isUserAgent As Boolean = False
|
||||||
|
Select Case PropName
|
||||||
|
Case NameOf(HH_IG_APP_ID) : f = IG.Header_IG_APP_ID
|
||||||
|
Case NameOf(HH_ASBD_ID) : f = IG.Header_ASBD_ID
|
||||||
|
Case NameOf(HH_CSRF_TOKEN) : f = IG.Header_CSRF_TOKEN
|
||||||
|
Case NameOf(HH_BROWSER) : f = IG.Header_Browser
|
||||||
|
Case NameOf(HH_BROWSER_EXT) : f = IG.Header_BrowserExt
|
||||||
|
Case NameOf(HH_PLATFORM) : f = IG.Header_Platform
|
||||||
|
Case NameOf(HH_USER_AGENT) : isUserAgent = True
|
||||||
|
End Select
|
||||||
|
If Not f.IsEmptyString Then
|
||||||
|
Responser.Headers.Remove(f)
|
||||||
|
If Not CStr(Value).IsEmptyString Then Responser.Headers.Add(f, CStr(Value))
|
||||||
|
ElseIf isUserAgent Then
|
||||||
|
Responser.UserAgent = CStr(Value)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#End Region
|
||||||
|
#Region "Initializer"
|
||||||
|
Friend Sub New()
|
||||||
|
MyBase.New("Threads", "threads.net")
|
||||||
|
_AllowUserAgentUpdate = False
|
||||||
|
_Image = My.Resources.SiteResources.ThreadsIcon_192.ToBitmap
|
||||||
|
|
||||||
|
Dim app_id$ = String.Empty
|
||||||
|
Dim token$ = String.Empty
|
||||||
|
Dim asbd$ = String.Empty
|
||||||
|
Dim browser$ = String.Empty
|
||||||
|
Dim browserExt$ = String.Empty
|
||||||
|
Dim platform$ = String.Empty
|
||||||
|
Dim useragent$ = String.Empty
|
||||||
|
|
||||||
|
With Responser
|
||||||
|
.Accept = "*/*"
|
||||||
|
'URGENT: remove after debug
|
||||||
|
.DeclaredError = EDP.SendToLog + EDP.ThrowException
|
||||||
|
If .UserAgentExists Then useragent = .UserAgent
|
||||||
|
With .Headers
|
||||||
|
If .Count > 0 Then
|
||||||
|
token = .Value(IG.Header_CSRF_TOKEN)
|
||||||
|
app_id = .Value(IG.Header_IG_APP_ID)
|
||||||
|
asbd = .Value(IG.Header_ASBD_ID)
|
||||||
|
browser = .Value(IG.Header_Browser)
|
||||||
|
browserExt = .Value(IG.Header_BrowserExt)
|
||||||
|
platform = .Value(IG.Header_Platform)
|
||||||
|
End If
|
||||||
|
.Add("Authority", "www.threads.net")
|
||||||
|
.Add("Origin", "https://www.threads.net")
|
||||||
|
.Add("Upgrade-Insecure-Requests", 1)
|
||||||
|
.Add("Sec-Ch-Ua-Model", "")
|
||||||
|
.Add("Sec-Ch-Ua-Mobile", "?0")
|
||||||
|
.Add("Sec-Ch-Ua-Platform", """Windows""")
|
||||||
|
.Add("Sec-Fetch-Dest", "empty")
|
||||||
|
.Add("Sec-Fetch-Mode", "cors")
|
||||||
|
.Add("Sec-Fetch-Site", "same-origin")
|
||||||
|
.Add("Sec-Fetch-User", "?1")
|
||||||
|
.Add("x-fb-friendly-name", "BarcelonaProfileThreadsTabRefetchableQuery")
|
||||||
|
End With
|
||||||
|
.CookiesExtractMode = Responser.CookiesExtractModes.Any
|
||||||
|
.CookiesUpdateMode = CookieKeeper.UpdateModes.ReplaceByNameAll
|
||||||
|
.CookiesExtractedAutoSave = False
|
||||||
|
.Cookies.ChangedAllowInternalDrop = False
|
||||||
|
.Cookies.Changed = False
|
||||||
|
End With
|
||||||
|
|
||||||
|
HH_CSRF_TOKEN = New PropertyValue(token, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_CSRF_TOKEN), v))
|
||||||
|
HH_IG_APP_ID = New PropertyValue(app_id, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_IG_APP_ID), v))
|
||||||
|
HH_ASBD_ID = New PropertyValue(asbd, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_ASBD_ID), v))
|
||||||
|
HH_BROWSER = New PropertyValue(browser, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_BROWSER), v))
|
||||||
|
HH_BROWSER_EXT = New PropertyValue(browserExt, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_BROWSER_EXT), v))
|
||||||
|
HH_PLATFORM = New PropertyValue(platform, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_PLATFORM), v))
|
||||||
|
HH_USER_AGENT = New PropertyValue(useragent, GetType(String), Sub(v) ChangeResponserFields(NameOf(HH_USER_AGENT), v))
|
||||||
|
|
||||||
|
UrlPatternUser = "https://www.threads.net/@{0}"
|
||||||
|
UserRegex = RParams.DMS("threads.net/@([^/\?&]+)", 1)
|
||||||
|
ImageVideoContains = "threads.net"
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "UpdateResponserData"
|
||||||
|
Friend Sub UpdateResponserData(ByVal Resp As Responser)
|
||||||
|
With Responser.Cookies
|
||||||
|
Dim csrf$ = String.Empty
|
||||||
|
.Update(Resp.Cookies)
|
||||||
|
If .Changed Then
|
||||||
|
Responser.SaveCookies()
|
||||||
|
.Changed = False
|
||||||
|
csrf = If(.FirstOrDefault(Function(c) c.Name.StringToLower = IG.Header_CSRF_TOKEN_COOKIE)?.Value, String.Empty)
|
||||||
|
End If
|
||||||
|
If Not csrf.IsEmptyString AndAlso Not AEquals(Of String)(csrf, HH_CSRF_TOKEN.Value) Then HH_CSRF_TOKEN.Value = csrf : Responser.SaveSettings()
|
||||||
|
End With
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "GetInstance"
|
||||||
|
Friend Overrides Function GetInstance(ByVal What As ISiteSettings.Download) As IPluginContentProvider
|
||||||
|
Return New UserData
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "BaseAuthExists, GetUserUrl, GetUserPostUrl"
|
||||||
|
Friend Overrides Function BaseAuthExists() As Boolean
|
||||||
|
Return Responser.CookiesExists And {HH_CSRF_TOKEN, HH_IG_APP_ID}.All(Function(v) ACheck(Of String)(v.Value))
|
||||||
|
End Function
|
||||||
|
Friend Overrides Function GetUserUrl(ByVal User As IPluginContentProvider) As String
|
||||||
|
Return String.Format(UrlPatternUser, DirectCast(User, UserData).NameTrue)
|
||||||
|
End Function
|
||||||
|
Friend Overrides Function GetUserPostUrl(ByVal User As UserDataBase, ByVal Media As UserMedia) As String
|
||||||
|
Try
|
||||||
|
Dim code$ = DirectCast(User, UserData).GetPostCodeById(Media.Post.ID)
|
||||||
|
Dim name$ = DirectCast(User, UserData).NameTrue
|
||||||
|
If Not code.IsEmptyString Then Return $"https://www.threads.net/@{name}/post/{code}/" Else Return String.Empty
|
||||||
|
Catch ex As Exception
|
||||||
|
Return ErrorsDescriber.Execute(EDP.SendToLog, ex, "Can't open user's post", String.Empty)
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
290
SCrawler/API/ThreadsNet/UserData.vb
Normal file
290
SCrawler/API/ThreadsNet/UserData.vb
Normal file
@@ -0,0 +1,290 @@
|
|||||||
|
' Copyright (C) 2023 Andy https://github.com/AAndyProgram
|
||||||
|
' This program is free software: you can redistribute it and/or modify
|
||||||
|
' it under the terms of the GNU General Public License as published by
|
||||||
|
' the Free Software Foundation, either version 3 of the License, or
|
||||||
|
' (at your option) any later version.
|
||||||
|
'
|
||||||
|
' This program is distributed in the hope that it will be useful,
|
||||||
|
' but WITHOUT ANY WARRANTY
|
||||||
|
Imports System.Threading
|
||||||
|
Imports SCrawler.API.Base
|
||||||
|
Imports SCrawler.API.YouTube.Objects
|
||||||
|
Imports PersonalUtilities.Functions.XML
|
||||||
|
Imports PersonalUtilities.Functions.RegularExpressions
|
||||||
|
Imports PersonalUtilities.Tools.Web.Documents.JSON
|
||||||
|
Imports PersonalUtilities.Tools.Web.Clients
|
||||||
|
Imports PersonalUtilities.Tools.Web.Clients.EventArguments
|
||||||
|
Imports IGS = SCrawler.API.Instagram.SiteSettings
|
||||||
|
Namespace API.ThreadsNet
|
||||||
|
Friend Class UserData : Inherits Instagram.UserData
|
||||||
|
#Region "Declarations"
|
||||||
|
Private Const Header_FB_LSD As String = "x-fb-lsd"
|
||||||
|
Private ReadOnly Property MySettings As SiteSettings
|
||||||
|
Get
|
||||||
|
Return HOST.Source
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Private ReadOnly ObtainMedia_SizeFuncPic_RegexP As RParams = RParams.DMS("_p(\d+)x(\d+)", 1, EDP.ReturnValue)
|
||||||
|
Private ReadOnly ObtainMedia_SizeFuncPic_RegexS As RParams = RParams.DMS("_s(\d+)x(\d+)", 1, EDP.ReturnValue)
|
||||||
|
Private ReadOnly DefaultParser_ElemNode_Default() As Object = {"node", "thread_items", 0, "post"}
|
||||||
|
Private OPT_LSD As String = String.Empty
|
||||||
|
Private OPT_FB_DTSG As String = String.Empty
|
||||||
|
Private ReadOnly Property Valid As Boolean
|
||||||
|
Get
|
||||||
|
Return Not OPT_LSD.IsEmptyString And Not OPT_FB_DTSG.IsEmptyString And Not ID.IsEmptyString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
#End Region
|
||||||
|
#Region "Loader"
|
||||||
|
Protected Overrides Sub LoadUserInformation_OptionalFields(ByRef Container As XmlFile, ByVal Loading As Boolean)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Exchange"
|
||||||
|
Friend Overrides Function ExchangeOptionsGet() As Object
|
||||||
|
Return Nothing
|
||||||
|
End Function
|
||||||
|
Friend Overrides Sub ExchangeOptionsSet(ByVal Obj As Object)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Initializer"
|
||||||
|
Friend Sub New()
|
||||||
|
ObtainMedia_SizeFuncPic = Function(ByVal ss As EContainer) As Sizes
|
||||||
|
If ss.Value("url").IsEmptyString Then
|
||||||
|
Return New Sizes("----", "")
|
||||||
|
ElseIf Not ss.Value("width").IsEmptyString Then
|
||||||
|
Return New Sizes(ss.Value("height").IfNullOrEmpty(ss.Value("width")), ss.Value("url"))
|
||||||
|
Else
|
||||||
|
Dim rval$ = RegexReplace(ss.Value("url"), ObtainMedia_SizeFuncPic_RegexP)
|
||||||
|
If Not rval.IsEmptyString Then Return New Sizes(rval, ss.Value("url"))
|
||||||
|
rval = RegexReplace(ss.Value("url"), ObtainMedia_SizeFuncPic_RegexS)
|
||||||
|
If Not rval.IsEmptyString Then Return New Sizes(AConvert(Of Integer)(rval, 1) * -1, ss.Value("url"))
|
||||||
|
Return New Sizes(10000, ss.Value("url"))
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
ObtainMedia_SizeFuncVid = Function(ss) If(ss.Value("url").IsEmptyString, New Sizes("----", ""), New Sizes(10000, ss.Value("url")))
|
||||||
|
ObtainMedia_AllowAbstract = True
|
||||||
|
DefaultParser_ElemNode = DefaultParser_ElemNode_Default
|
||||||
|
DefaultParser_PostUrlCreator = Function(post) $"https://www.threads.net/@{NameTrue}/post/{post.Code}"
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Download functions"
|
||||||
|
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
||||||
|
Dim errorFound As Boolean = False
|
||||||
|
Try
|
||||||
|
Responser.Method = "POST"
|
||||||
|
AddHandler Responser.ResponseReceived, AddressOf Responser_ResponseReceived
|
||||||
|
LoadSavePostsKV(True)
|
||||||
|
OPT_LSD = String.Empty
|
||||||
|
OPT_FB_DTSG = String.Empty
|
||||||
|
DownloadData(String.Empty, Token)
|
||||||
|
Catch ex As Exception
|
||||||
|
errorFound = True
|
||||||
|
Throw ex
|
||||||
|
Finally
|
||||||
|
Responser.Method = "POST"
|
||||||
|
UpdateResponser()
|
||||||
|
MySettings.UpdateResponserData(Responser)
|
||||||
|
If Not errorFound Then LoadSavePostsKV(False)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Protected Overrides Sub UpdateResponser()
|
||||||
|
If Not Responser Is Nothing AndAlso Not Responser.Disposed Then
|
||||||
|
RemoveHandler Responser.ResponseReceived, AddressOf Responser_ResponseReceived
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Protected Overrides Sub Responser_ResponseReceived(ByVal Sender As Object, ByVal e As WebDataResponse)
|
||||||
|
If e.CookiesExists Then
|
||||||
|
Dim csrf$ = If(e.Cookies.FirstOrDefault(Function(v) v.Name.StringToLower = IGS.Header_CSRF_TOKEN_COOKIE)?.Value, String.Empty)
|
||||||
|
If Not csrf.IsEmptyString AndAlso Not AEquals(Of String)(csrf, Responser.Headers.Value(IGS.Header_CSRF_TOKEN)) Then _
|
||||||
|
Responser.Headers.Add(IGS.Header_CSRF_TOKEN, csrf)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Private Overloads Sub DownloadData(ByVal Cursor As String, ByVal Token As CancellationToken)
|
||||||
|
Const urlPattern$ = "https://www.threads.net/api/graphql?lsd={0}&variables={1}&doc_id=6371597506283707&fb_api_req_friendly_name=BarcelonaProfileThreadsTabRefetchableQuery&server_timestamps=true&fb_dtsg={2}"
|
||||||
|
Const var_init$ = """userID"":""{0}"""
|
||||||
|
Const var_cursor$ = """after"":""{1}"",""before"":null,""first"":25,""last"":null,""userID"":""{0}"",""__relay_internal__pv__BarcelonaIsLoggedInrelayprovider"":true,""__relay_internal__pv__BarcelonaIsFeedbackHubEnabledrelayprovider"":false"
|
||||||
|
Dim URL$ = String.Empty
|
||||||
|
Try
|
||||||
|
If Not Valid Then
|
||||||
|
Dim idIsNull As Boolean = ID.IsEmptyString
|
||||||
|
UpdateCredentials()
|
||||||
|
If idIsNull And Not ID.IsEmptyString Then _ForceSaveUserInfo = True
|
||||||
|
End If
|
||||||
|
If Not Valid Then Throw New Plugin.ExitException("Some credentials are missing")
|
||||||
|
|
||||||
|
Responser.Method = "POST"
|
||||||
|
Responser.Referer = $"https://www.threads.net/@{NameTrue}"
|
||||||
|
Responser.Headers.Add(Header_FB_LSD, OPT_LSD)
|
||||||
|
|
||||||
|
Dim nextCursor$ = String.Empty
|
||||||
|
Dim dataFound As Boolean = False
|
||||||
|
|
||||||
|
Dim vars$
|
||||||
|
If Cursor.IsEmptyString Then
|
||||||
|
vars = String.Format(var_init, ID)
|
||||||
|
Else
|
||||||
|
vars = String.Format(var_cursor, ID, Cursor)
|
||||||
|
End If
|
||||||
|
vars = SymbolsConverter.ASCII.EncodeSymbolsOnly("{" & vars & "}")
|
||||||
|
|
||||||
|
URL = String.Format(urlPattern, OPT_LSD, vars, SymbolsConverter.ASCII.EncodeSymbolsOnly(OPT_FB_DTSG))
|
||||||
|
|
||||||
|
Using j As EContainer = GetDocument(URL, Token)
|
||||||
|
If j.ListExists Then
|
||||||
|
With j({"data", "mediaData"})
|
||||||
|
If .ListExists Then
|
||||||
|
nextCursor = .Value({"page_info"}, "end_cursor")
|
||||||
|
With .Item({"edges"})
|
||||||
|
If .ListExists Then dataFound = DefaultParser(.Self, Sections.Timeline, Token)
|
||||||
|
End With
|
||||||
|
End If
|
||||||
|
End With
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
|
||||||
|
If dataFound And Not nextCursor.IsEmptyString Then DownloadData(nextCursor, Token)
|
||||||
|
Catch ex As Exception
|
||||||
|
ProcessException(ex, Token, $"data downloading error [{URL}]")
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private Function GetDocument(ByVal URL As String, ByVal Token As CancellationToken, Optional ByVal Round As Integer = 0) As EContainer
|
||||||
|
Try
|
||||||
|
ThrowAny(Token)
|
||||||
|
If Round > 0 AndAlso Not UpdateCredentials() Then Throw New Exception("Failed to update credentials")
|
||||||
|
ThrowAny(Token)
|
||||||
|
Dim r$ = Responser.GetResponse(URL)
|
||||||
|
If Not r.IsEmptyString Then Return JsonDocument.Parse(r) Else Throw New Exception("Failed to get a response")
|
||||||
|
Catch ex As Exception
|
||||||
|
If Round = 0 Then
|
||||||
|
Return GetDocument(URL, Token, Round + 1)
|
||||||
|
Else
|
||||||
|
Throw ex
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Private Function UpdateCredentials(Optional ByVal e As ErrorsDescriber = Nothing) As Boolean
|
||||||
|
Dim URL$ = $"https://www.threads.net/@{NameTrue}"
|
||||||
|
OPT_LSD = String.Empty
|
||||||
|
OPT_FB_DTSG = String.Empty
|
||||||
|
Try
|
||||||
|
Responser.Method = "GET"
|
||||||
|
Responser.Referer = URL
|
||||||
|
Responser.Headers.Remove(Header_FB_LSD)
|
||||||
|
Dim r$ = Responser.GetResponse(URL,, EDP.SendToLog + EDP.ThrowException)
|
||||||
|
Dim rr As RParams
|
||||||
|
Dim tt$, ttVal$
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
rr = RParams.DM("\[\],{""token"":""(.*?)""},\d+\]", 0, RegexReturn.List, EDP.ReturnValue)
|
||||||
|
Dim tokens As List(Of String) = RegexReplace(r, rr)
|
||||||
|
If tokens.ListExists Then
|
||||||
|
With rr
|
||||||
|
.Match = Nothing
|
||||||
|
.MatchSub = 1
|
||||||
|
.WhatGet = RegexReturn.Value
|
||||||
|
End With
|
||||||
|
For Each tt In tokens
|
||||||
|
If Not OPT_FB_DTSG.IsEmptyString And Not OPT_LSD.IsEmptyString Then
|
||||||
|
Exit For
|
||||||
|
Else
|
||||||
|
ttVal = RegexReplace(tt, rr)
|
||||||
|
If Not ttVal.IsEmptyString Then
|
||||||
|
If ttVal.Contains(":") Then
|
||||||
|
If OPT_FB_DTSG.IsEmptyString Then OPT_FB_DTSG = ttVal
|
||||||
|
Else
|
||||||
|
If OPT_LSD.IsEmptyString Then OPT_LSD = ttVal
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
If ID.IsEmptyString Then ID = RegexReplace(r, RParams.DMS("""props"":\{""user_id"":""(\d+)""\},", 1, EDP.ReturnValue))
|
||||||
|
End If
|
||||||
|
Return Valid
|
||||||
|
Catch ex As Exception
|
||||||
|
Dim notFound$ = String.Empty
|
||||||
|
If OPT_FB_DTSG.IsEmptyString Then notFound.StringAppend(Header_FB_LSD)
|
||||||
|
If OPT_LSD.IsEmptyString Then notFound.StringAppend("lsd")
|
||||||
|
If ID.IsEmptyString Then notFound.StringAppend("User ID")
|
||||||
|
LogError(ex, $"failed to update some{IIf(notFound.IsEmptyString, String.Empty, $" ({notFound})")} credentials", e)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "ReparseMissing"
|
||||||
|
Protected Overrides Sub ReparseMissing(ByVal Token As CancellationToken)
|
||||||
|
Const varsPattern$ = """postID"":""{0}"",""userID"":""{1}"",""__relay_internal__pv__BarcelonaIsLoggedInrelayprovider"":true,""__relay_internal__pv__BarcelonaIsFeedbackHubEnabledrelayprovider"":false"
|
||||||
|
'Const varsPattern$ = "{""postID"":""{0}"",""__relay_internal__pv__BarcelonaIsLoggedInrelayprovider"":true,""__relay_internal__pv__BarcelonaIsFeedbackHubEnabledrelayprovider"":false}"
|
||||||
|
Const urlPattern$ = "https://www.threads.net/api/graphql?lsd={0}&variables={1}&fb_api_req_friendly_name=BarcelonaPostPageQuery&server_timestamps=true&fb_dtsg={2}&doc_id=25460088156920903"
|
||||||
|
Dim rList As New List(Of Integer)
|
||||||
|
Dim URL$ = String.Empty
|
||||||
|
DefaultParser_ElemNode = Nothing
|
||||||
|
DefaultParser_IgnorePass = True
|
||||||
|
Try
|
||||||
|
If ContentMissingExists Then
|
||||||
|
Responser.Method = "POST"
|
||||||
|
Responser.Referer = $"https://www.threads.net/@{NameTrue}"
|
||||||
|
If Not IsSingleObjectDownload AndAlso Not UpdateCredentials() Then Throw New Exception("Failed to update credentials")
|
||||||
|
Dim m As UserMedia
|
||||||
|
Dim vars$
|
||||||
|
Dim j As EContainer
|
||||||
|
ProgressPre.ChangeMax(_ContentList.Count)
|
||||||
|
For i% = 0 To _ContentList.Count - 1
|
||||||
|
ProgressPre.Perform()
|
||||||
|
m = _ContentList(i)
|
||||||
|
If m.State = UserMedia.States.Missing And Not m.Post.ID.IsEmptyString Then
|
||||||
|
ThrowAny(Token)
|
||||||
|
vars = SymbolsConverter.ASCII.EncodeSymbolsOnly("{" & String.Format(varsPattern, m.Post.ID.Split("_").FirstOrDefault, ID) & "}")
|
||||||
|
URL = String.Format(urlPattern, OPT_LSD, vars, SymbolsConverter.ASCII.EncodeSymbolsOnly(OPT_FB_DTSG))
|
||||||
|
|
||||||
|
j = GetDocument(URL, Token)
|
||||||
|
If j.ListExists Then
|
||||||
|
With j.ItemF({"data", "data", "edges", 0, "node", "thread_items", 0, "post"})
|
||||||
|
If .ListExists AndAlso DefaultParser({ .Self}, Sections.Timeline, Token) Then rList.Add(i)
|
||||||
|
End With
|
||||||
|
j.Dispose()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
ProcessException(ex, Token, $"ReparseMissing error [{URL}]")
|
||||||
|
Finally
|
||||||
|
DefaultParser_ElemNode = DefaultParser_ElemNode_Default
|
||||||
|
DefaultParser_IgnorePass = False
|
||||||
|
If rList.Count > 0 Then
|
||||||
|
For i% = rList.Count - 1 To 0 Step -1 : _ContentList.RemoveAt(rList(i)) : Next
|
||||||
|
rList.Clear()
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "DownloadSingleObject"
|
||||||
|
Protected Overrides Sub DownloadSingleObject_GetPosts(ByVal Data As IYouTubeMediaContainer, ByVal Token As CancellationToken)
|
||||||
|
Dim url$ = Data.URL_BASE.IfNullOrEmpty(Data.URL)
|
||||||
|
Dim postCode$ = RegexReplace(url, RParams.DMS("post/([^/\?&]+)", 1, EDP.ReturnValue))
|
||||||
|
If Not postCode.IsEmptyString Then
|
||||||
|
Dim postId$ = CodeToID(postCode)
|
||||||
|
If Not postId.IsEmptyString Then
|
||||||
|
_NameTrue = MySettings.IsMyUser(url).UserName
|
||||||
|
DefaultParser_PostUrlCreator = Function(post) url
|
||||||
|
If Not _NameTrue.IsEmptyString AndAlso UpdateCredentials(EDP.ReturnValue) Then
|
||||||
|
_ContentList.Add(New UserMedia(url) With {.State = UserMedia.States.Missing, .Post = postId})
|
||||||
|
ReparseMissing(Token)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "ThrowAny"
|
||||||
|
Friend Overrides Sub ThrowAny(ByVal Token As CancellationToken)
|
||||||
|
ThrowAnyImpl(Token)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "DownloadingException"
|
||||||
|
Protected Overrides Function DownloadingException(ByVal ex As Exception, ByVal Message As String, Optional ByVal FromPE As Boolean = False,
|
||||||
|
Optional ByVal EObj As Object = Nothing) As Integer
|
||||||
|
Return 0
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
@@ -392,7 +392,8 @@ Namespace API.Twitter
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Obtain media"
|
#Region "Obtain media"
|
||||||
Private Sub ObtainMedia(ByVal e As EContainer, ByVal PostID As String, ByVal PostDate As String, Optional ByVal State As UStates = UStates.Unknown)
|
Private Sub ObtainMedia(ByVal e As EContainer, ByVal PostID As String, ByVal PostDate As String, Optional ByVal State As UStates = UStates.Unknown,
|
||||||
|
Optional ByVal Attempts As Integer = 0)
|
||||||
Dim s As EContainer = e({"extended_entities", "media"})
|
Dim s As EContainer = e({"extended_entities", "media"})
|
||||||
If If(s?.Count, 0) = 0 Then s = e({"retweeted_status", "extended_entities", "media"})
|
If If(s?.Count, 0) = 0 Then s = e({"retweeted_status", "extended_entities", "media"})
|
||||||
If If(s?.Count, 0) = 0 Then s = e({"retweeted_status_result", "result", "legacy", "extended_entities", "media"})
|
If If(s?.Count, 0) = 0 Then s = e({"retweeted_status_result", "result", "legacy", "extended_entities", "media"})
|
||||||
@@ -406,7 +407,7 @@ Namespace API.Twitter
|
|||||||
Dim dName$ = UrlFile(mUrl)
|
Dim dName$ = UrlFile(mUrl)
|
||||||
If Not dName.IsEmptyString AndAlso Not _DataNames.Contains(dName) Then
|
If Not dName.IsEmptyString AndAlso Not _DataNames.Contains(dName) Then
|
||||||
_DataNames.Add(dName)
|
_DataNames.Add(dName)
|
||||||
_TempMediaList.ListAddValue(MediaFromData(mUrl, PostID, PostDate, GetPictureOption(m), State, UTypes.Picture), LNC)
|
_TempMediaList.ListAddValue(MediaFromData(mUrl, PostID, PostDate, GetPictureOption(m), State, UTypes.Picture, Attempts), LNC)
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -712,7 +713,7 @@ Namespace API.Twitter
|
|||||||
If .ListExists Then
|
If .ListExists Then
|
||||||
PostDate = String.Empty
|
PostDate = String.Empty
|
||||||
If .Contains("created_at") Then PostDate = .Value("created_at") Else PostDate = String.Empty
|
If .Contains("created_at") Then PostDate = .Value("created_at") Else PostDate = String.Empty
|
||||||
ObtainMedia(.Self, m.Post.ID, PostDate, UStates.Missing)
|
ObtainMedia(.Self, m.Post.ID, PostDate, UStates.Missing, m.Attempts)
|
||||||
rList.ListAddValue(i, LNC)
|
rList.ListAddValue(i, LNC)
|
||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
@@ -804,7 +805,8 @@ Namespace API.Twitter
|
|||||||
Private Function MediaFromData(ByVal _URL As String, ByVal PostID As String, ByVal PostDate As String,
|
Private Function MediaFromData(ByVal _URL As String, ByVal PostID As String, ByVal PostDate As String,
|
||||||
Optional ByVal _PictureOption As String = Nothing,
|
Optional ByVal _PictureOption As String = Nothing,
|
||||||
Optional ByVal State As UStates = UStates.Unknown,
|
Optional ByVal State As UStates = UStates.Unknown,
|
||||||
Optional ByVal Type As UTypes = UTypes.Undefined) As UserMedia
|
Optional ByVal Type As UTypes = UTypes.Undefined,
|
||||||
|
Optional ByVal Attempts As Integer = 0) As UserMedia
|
||||||
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
_URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
|
||||||
Dim m As New UserMedia(_URL) With {.PictureOption = _PictureOption, .Post = New UserPost With {.ID = PostID}, .Type = Type}
|
Dim m As New UserMedia(_URL) With {.PictureOption = _PictureOption, .Post = New UserPost With {.ID = PostID}, .Type = Type}
|
||||||
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
|
||||||
@@ -813,6 +815,7 @@ Namespace API.Twitter
|
|||||||
End If
|
End If
|
||||||
If Not PostDate.IsEmptyString Then m.Post.Date = AConvert(Of Date)(PostDate, Declarations.DateProvider, Nothing) Else m.Post.Date = Nothing
|
If Not PostDate.IsEmptyString Then m.Post.Date = AConvert(Of Date)(PostDate, Declarations.DateProvider, Nothing) Else m.Post.Date = Nothing
|
||||||
m.State = State
|
m.State = State
|
||||||
|
m.Attempts = Attempts
|
||||||
Return m
|
Return m
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
|
|||||||
@@ -71,17 +71,9 @@ Namespace API
|
|||||||
End Property
|
End Property
|
||||||
Friend Overrides Property FriendlyName As String
|
Friend Overrides Property FriendlyName As String
|
||||||
Get
|
Get
|
||||||
If Count > 0 Then
|
Return CollectionName
|
||||||
Return Collections(0).FriendlyName
|
|
||||||
Else
|
|
||||||
Return String.Empty
|
|
||||||
End If
|
|
||||||
End Get
|
End Get
|
||||||
Set(ByVal NewName As String)
|
Set(ByVal NewName As String)
|
||||||
If Count > 0 Then Collections.ForEach(Sub(c)
|
|
||||||
c.FriendlyName = NewName
|
|
||||||
c.UpdateUserInformation()
|
|
||||||
End Sub)
|
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
Friend Overrides Property UserExists As Boolean
|
Friend Overrides Property UserExists As Boolean
|
||||||
@@ -291,7 +283,7 @@ Namespace API
|
|||||||
End Property
|
End Property
|
||||||
Friend Overrides Property ScriptUse As Boolean
|
Friend Overrides Property ScriptUse As Boolean
|
||||||
Get
|
Get
|
||||||
Return Count > 0 AndAlso Collections.Exists(Function(c) c.ScriptUse)
|
Return Count > 0 AndAlso Collections.All(Function(c) c.ScriptUse)
|
||||||
End Get
|
End Get
|
||||||
Set(ByVal u As Boolean)
|
Set(ByVal u As Boolean)
|
||||||
If Count > 0 Then Collections.ForEach(Sub(ByVal c As IUserData)
|
If Count > 0 Then Collections.ForEach(Sub(ByVal c As IUserData)
|
||||||
@@ -499,20 +491,22 @@ Namespace API
|
|||||||
Friend Overloads Sub Add(ByVal _Item As IUserData) Implements ICollection(Of IUserData).Add
|
Friend Overloads Sub Add(ByVal _Item As IUserData) Implements ICollection(Of IUserData).Add
|
||||||
With _Item
|
With _Item
|
||||||
If .MoveFiles(CollectionName, CollectionPath) Then
|
If .MoveFiles(CollectionName, CollectionPath) Then
|
||||||
If Not _Item.IsVirtual And DataMerging Then DirectCast(.Self, UserDataBase).MergeData()
|
If Not .Self.IsVirtual And DataMerging Then DirectCast(.Self, UserDataBase).MergeData()
|
||||||
Collections.Add(_Item)
|
|
||||||
|
ConsolidateLabels(.Self)
|
||||||
|
ConsolidateScripts(.Self)
|
||||||
|
ConsolidateColors(.Self)
|
||||||
|
|
||||||
|
Collections.Add(.Self)
|
||||||
|
|
||||||
With Collections.Last
|
With Collections.Last
|
||||||
If Count > 1 Then
|
If _CollectionName.IsEmptyString Then _CollectionName = .CollectionName
|
||||||
If _CollectionName.IsEmptyString Then _CollectionName = .CollectionName
|
.Temporary = Temporary
|
||||||
.Temporary = Temporary
|
.Favorite = Favorite
|
||||||
.Favorite = Favorite
|
.ReadyForDownload = ReadyForDownload
|
||||||
.ReadyForDownload = ReadyForDownload
|
.UpdateUserInformation()
|
||||||
ConsolidateLabels(_Item)
|
|
||||||
ConsolidateScripts()
|
MainFrameObj.ImageHandler(.Self, False)
|
||||||
ConsolidateColors(_Item)
|
|
||||||
.UpdateUserInformation()
|
|
||||||
End If
|
|
||||||
MainFrameObj.ImageHandler(_Item, False)
|
|
||||||
AddRemoveBttDeleteHandler(.Self, True)
|
AddRemoveBttDeleteHandler(.Self, True)
|
||||||
AddHandler .Self.UserUpdated, AddressOf User_OnUserUpdated
|
AddHandler .Self.UserUpdated, AddressOf User_OnUserUpdated
|
||||||
End With
|
End With
|
||||||
@@ -548,10 +542,14 @@ Namespace API
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub ConsolidateLabels(ByVal Destination As UserDataBase)
|
Private Sub ConsolidateLabels(ByVal Destination As UserDataBase)
|
||||||
UpdateLabels(If(Destination, Me), ListAddList(Nothing, Labels.ListWithRemove(SpecialLabels)), 1, True)
|
If Count > 0 Then UpdateLabels(Destination, ListAddList(Nothing, Labels.ListWithRemove(SpecialLabels)), 0, True)
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub ConsolidateScripts()
|
Private Sub ConsolidateScripts(ByVal Destination As UserDataBase)
|
||||||
If Count > 1 AndAlso ScriptUse Then Collections.ForEach(Sub(c) c.ScriptUse = True)
|
If Count > 0 AndAlso ScriptUse Then
|
||||||
|
Dim __scriptData$ = Collections(0).ScriptData
|
||||||
|
Destination.ScriptUse = True
|
||||||
|
If Collections.All(Function(c) c.ScriptData = __scriptData) Then Destination.ScriptData = __scriptData
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub ConsolidateColors(ByVal Destination As UserDataBase)
|
Private Sub ConsolidateColors(ByVal Destination As UserDataBase)
|
||||||
If Count > 0 And Not Destination.ForeColor.HasValue And Not Destination.BackColor.HasValue Then
|
If Count > 0 And Not Destination.ForeColor.HasValue And Not Destination.BackColor.HasValue Then
|
||||||
|
|||||||
@@ -456,6 +456,8 @@ Namespace API.Xhamster
|
|||||||
m2 = Nothing
|
m2 = Nothing
|
||||||
If GetM3U8(m2, m.URL_BASE) Then
|
If GetM3U8(m2, m.URL_BASE) Then
|
||||||
m2.URL_BASE = m.URL_BASE
|
m2.URL_BASE = m.URL_BASE
|
||||||
|
m2.State = UserMedia.States.Missing
|
||||||
|
m2.Attempts = m.Attempts
|
||||||
_TempMediaList.ListAddValue(m2, LNC)
|
_TempMediaList.ListAddValue(m2, LNC)
|
||||||
rList.Add(i)
|
rList.Add(i)
|
||||||
End If
|
End If
|
||||||
|
|||||||
BIN
SCrawler/Content/Icons/SiteIcons/ThreadsIcon_192.ico
Normal file
BIN
SCrawler/Content/Icons/SiteIcons/ThreadsIcon_192.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
15
SCrawler/Download/Feed/DownloadFeedForm.Designer.vb
generated
15
SCrawler/Download/Feed/DownloadFeedForm.Designer.vb
generated
@@ -39,6 +39,7 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_REFRESH = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_REFRESH = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.BTT_CLEAR = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_CLEAR = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.TP_DATA = New System.Windows.Forms.TableLayoutPanel()
|
Me.TP_DATA = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
Me.BTT_LOAD_SESSION_CURRENT = 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()
|
||||||
MENU_VIEW = New System.Windows.Forms.ToolStripDropDownButton()
|
MENU_VIEW = New System.Windows.Forms.ToolStripDropDownButton()
|
||||||
@@ -89,7 +90,7 @@ Namespace DownloadObjects
|
|||||||
'MENU_LOAD_SESSION
|
'MENU_LOAD_SESSION
|
||||||
'
|
'
|
||||||
Me.MENU_LOAD_SESSION.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
Me.MENU_LOAD_SESSION.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
|
||||||
Me.MENU_LOAD_SESSION.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE})
|
Me.MENU_LOAD_SESSION.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_LOAD_SESSION_CURRENT, Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE})
|
||||||
Me.MENU_LOAD_SESSION.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24
|
Me.MENU_LOAD_SESSION.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24
|
||||||
Me.MENU_LOAD_SESSION.ImageTransparentColor = System.Drawing.Color.Magenta
|
Me.MENU_LOAD_SESSION.ImageTransparentColor = System.Drawing.Color.Magenta
|
||||||
Me.MENU_LOAD_SESSION.Name = "MENU_LOAD_SESSION"
|
Me.MENU_LOAD_SESSION.Name = "MENU_LOAD_SESSION"
|
||||||
@@ -130,7 +131,7 @@ Namespace DownloadObjects
|
|||||||
'
|
'
|
||||||
Me.BTT_DOWN_ALL.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
|
Me.BTT_DOWN_ALL.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
|
||||||
Me.BTT_DOWN_ALL.Name = "BTT_DOWN_ALL"
|
Me.BTT_DOWN_ALL.Name = "BTT_DOWN_ALL"
|
||||||
Me.BTT_DOWN_ALL.Size = New System.Drawing.Size(180, 22)
|
Me.BTT_DOWN_ALL.Size = New System.Drawing.Size(174, 22)
|
||||||
Me.BTT_DOWN_ALL.Tag = "a"
|
Me.BTT_DOWN_ALL.Tag = "a"
|
||||||
Me.BTT_DOWN_ALL.Text = "Download ALL"
|
Me.BTT_DOWN_ALL.Text = "Download ALL"
|
||||||
'
|
'
|
||||||
@@ -138,7 +139,7 @@ Namespace DownloadObjects
|
|||||||
'
|
'
|
||||||
Me.BTT_DOWN_SELECTED.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
|
Me.BTT_DOWN_SELECTED.Image = Global.SCrawler.My.Resources.Resources.StartPic_Green_16
|
||||||
Me.BTT_DOWN_SELECTED.Name = "BTT_DOWN_SELECTED"
|
Me.BTT_DOWN_SELECTED.Name = "BTT_DOWN_SELECTED"
|
||||||
Me.BTT_DOWN_SELECTED.Size = New System.Drawing.Size(180, 22)
|
Me.BTT_DOWN_SELECTED.Size = New System.Drawing.Size(174, 22)
|
||||||
Me.BTT_DOWN_SELECTED.Tag = "s"
|
Me.BTT_DOWN_SELECTED.Tag = "s"
|
||||||
Me.BTT_DOWN_SELECTED.Text = "Download selected"
|
Me.BTT_DOWN_SELECTED.Text = "Download selected"
|
||||||
'
|
'
|
||||||
@@ -185,6 +186,13 @@ Namespace DownloadObjects
|
|||||||
Me.TP_DATA.Size = New System.Drawing.Size(484, 436)
|
Me.TP_DATA.Size = New System.Drawing.Size(484, 436)
|
||||||
Me.TP_DATA.TabIndex = 1
|
Me.TP_DATA.TabIndex = 1
|
||||||
'
|
'
|
||||||
|
'BTT_LOAD_SESSION_CURRENT
|
||||||
|
'
|
||||||
|
Me.BTT_LOAD_SESSION_CURRENT.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24
|
||||||
|
Me.BTT_LOAD_SESSION_CURRENT.Name = "BTT_LOAD_SESSION_CURRENT"
|
||||||
|
Me.BTT_LOAD_SESSION_CURRENT.Size = New System.Drawing.Size(189, 22)
|
||||||
|
Me.BTT_LOAD_SESSION_CURRENT.Text = "Load current session"
|
||||||
|
'
|
||||||
'DownloadFeedForm
|
'DownloadFeedForm
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -218,5 +226,6 @@ Namespace DownloadObjects
|
|||||||
Private WithEvents MENU_DOWN As ToolStripDropDownButton
|
Private WithEvents MENU_DOWN As ToolStripDropDownButton
|
||||||
Private WithEvents BTT_DOWN_ALL As ToolStripMenuItem
|
Private WithEvents BTT_DOWN_ALL As ToolStripMenuItem
|
||||||
Private WithEvents BTT_DOWN_SELECTED As ToolStripMenuItem
|
Private WithEvents BTT_DOWN_SELECTED As ToolStripMenuItem
|
||||||
|
Private WithEvents BTT_LOAD_SESSION_CURRENT As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -181,6 +181,9 @@ Namespace DownloadObjects
|
|||||||
ClearTable()
|
ClearTable()
|
||||||
RefillList()
|
RefillList()
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub BTT_LOAD_SESSION_CURRENT_Click(sender As Object, e As EventArgs) Handles BTT_LOAD_SESSION_CURRENT.Click
|
||||||
|
RefillList()
|
||||||
|
End Sub
|
||||||
Private Sub BTT_LOAD_SESSION_LAST_Click(sender As Object, e As EventArgs) Handles BTT_LOAD_SESSION_LAST.Click
|
Private Sub BTT_LOAD_SESSION_LAST_Click(sender As Object, e As EventArgs) Handles BTT_LOAD_SESSION_LAST.Click
|
||||||
SessionChooser(True)
|
SessionChooser(True)
|
||||||
End Sub
|
End Sub
|
||||||
@@ -189,6 +192,7 @@ Namespace DownloadObjects
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub SessionChooser(ByVal GetLast As Boolean)
|
Private Sub SessionChooser(ByVal GetLast As Boolean)
|
||||||
Try
|
Try
|
||||||
|
Downloader.ClearSessions()
|
||||||
Dim f As SFile = TDownloader.SessionsPath.CSFileP
|
Dim f As SFile = TDownloader.SessionsPath.CSFileP
|
||||||
Dim fList As List(Of SFile) = Nothing
|
Dim fList As List(Of SFile) = Nothing
|
||||||
Dim m As New MMessage("Saved sessions not selected", "Sessions",, vbExclamation)
|
Dim m As New MMessage("Saved sessions not selected", "Sessions",, vbExclamation)
|
||||||
@@ -202,13 +206,23 @@ Namespace DownloadObjects
|
|||||||
DataList.RemoveAll(FileNotExist)
|
DataList.RemoveAll(FileNotExist)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
If Not GetLast AndAlso f.Exists(SFO.Path, False) Then fList = SFile.GetFiles(f, "*.xml",, EDP.ReturnValue)
|
Dim __getFiles As Func(Of Boolean) = Function() As Boolean
|
||||||
|
If f.Exists(SFO.Path, False) Then fList = SFile.GetFiles(f, "*.xml",, EDP.ReturnValue)
|
||||||
|
If fList.ListExists Then
|
||||||
|
fList.Reverse()
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
If Not GetLast Then __getFiles.Invoke
|
||||||
If Not GetLast AndAlso fList.ListExists Then
|
If Not GetLast AndAlso fList.ListExists Then
|
||||||
Using chooser As New SimpleListForm(Of SFile)(fList, Settings.Design) With {
|
Using chooser As New SimpleListForm(Of SFile)(fList, Settings.Design) With {
|
||||||
.FormText = "Sessions",
|
.FormText = "Sessions",
|
||||||
.Icon = My.Resources.ArrowDownIcon_Blue_24,
|
.Icon = My.Resources.ArrowDownIcon_Blue_24,
|
||||||
.Mode = SimpleListFormModes.CheckedItems,
|
.Mode = SimpleListFormModes.CheckedItems,
|
||||||
.Provider = New CustomProvider(Function(v, d, p, n, ee) DirectCast(v, SFile).File)
|
.Provider = New CustomProvider(Function(v As SFile) AConvert(Of String)(AConvert(Of Date)(v.Name, SessionDateTimeProvider, v.Name),
|
||||||
|
DateTimeDefaultProvider, v.Name))
|
||||||
}
|
}
|
||||||
chooser.ClearButtons()
|
chooser.ClearButtons()
|
||||||
If chooser.ShowDialog = DialogResult.OK Then
|
If chooser.ShowDialog = DialogResult.OK Then
|
||||||
@@ -230,8 +244,13 @@ Namespace DownloadObjects
|
|||||||
MsgBoxE(m)
|
MsgBoxE(m)
|
||||||
End If
|
End If
|
||||||
End Using
|
End Using
|
||||||
ElseIf Downloader.FilesSessionActual.Exists Then
|
ElseIf Downloader.FilesSessionActual(False).Exists OrElse __getFiles.Invoke Then
|
||||||
x = New XmlFile(Downloader.FilesSessionActual,, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
If Downloader.FilesSessionActual(False).Exists Then
|
||||||
|
f = Downloader.FilesSessionActual(False)
|
||||||
|
Else
|
||||||
|
f = fList(0)
|
||||||
|
End If
|
||||||
|
x = New XmlFile(f,, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
||||||
x.LoadData()
|
x.LoadData()
|
||||||
If x.Count > 0 Then DataList.Clear() : DataList.ListAddList(x, lcr)
|
If x.Count > 0 Then DataList.Clear() : DataList.ListAddList(x, lcr)
|
||||||
x.Dispose()
|
x.Dispose()
|
||||||
|
|||||||
@@ -88,14 +88,20 @@ Namespace DownloadObjects
|
|||||||
Friend ReadOnly Property Files As List(Of UserMediaD)
|
Friend ReadOnly Property Files As List(Of UserMediaD)
|
||||||
Friend Property FilesChanged As Boolean = False
|
Friend Property FilesChanged As Boolean = False
|
||||||
Private ReadOnly FilesLP As New ListAddParams(LAP.NotContainsOnly)
|
Private ReadOnly FilesLP As New ListAddParams(LAP.NotContainsOnly)
|
||||||
Private FilesLastSessionBackedup As Boolean = False
|
|
||||||
Friend Const SessionsPath As String = "Settings\Sessions\"
|
Friend Const SessionsPath As String = "Settings\Sessions\"
|
||||||
Friend ReadOnly FilesSessionActual As SFile = $"{SessionsPath}Latest.xml"
|
Private _FilesSessionCleared As Boolean = False
|
||||||
Private ReadOnly FilesSessionBackup As SFile = $"{SessionsPath}Latest_Backup.xml"
|
Private _FilesSessionActual As SFile = Nothing
|
||||||
|
Friend ReadOnly Property FilesSessionActual(Optional ByVal GenerateFileName As Boolean = True) As SFile
|
||||||
|
Get
|
||||||
|
If _FilesSessionActual.IsEmptyString And GenerateFileName Then _
|
||||||
|
_FilesSessionActual = $"{SessionsPath}{AConvert(Of String)(Now, SessionDateTimeProvider)}.xml"
|
||||||
|
Return _FilesSessionActual
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
Private Sub FilesSave()
|
Private Sub FilesSave()
|
||||||
Try
|
Try
|
||||||
If Settings.FeedStoreSessionsData And Files.Count > 0 Then
|
If Settings.FeedStoreSessionsData And Files.Count > 0 Then
|
||||||
FilesBackupLastSession()
|
ClearSessions()
|
||||||
Using x As New XmlFile With {.Name = "Session", .AllowSameNames = True}
|
Using x As New XmlFile With {.Name = "Session", .AllowSameNames = True}
|
||||||
x.AddRange(Files)
|
x.AddRange(Files)
|
||||||
x.Save(FilesSessionActual)
|
x.Save(FilesSessionActual)
|
||||||
@@ -105,25 +111,42 @@ Namespace DownloadObjects
|
|||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[DownloadObjects.TDownloader.FilesSave]")
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[DownloadObjects.TDownloader.FilesSave]")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub FilesBackupLastSession()
|
Friend Sub ClearSessions()
|
||||||
Try
|
Try
|
||||||
If Not FilesLastSessionBackedup Then
|
If Not _FilesSessionCleared Then
|
||||||
If FilesSessionActual.Exists Then
|
_FilesSessionCleared = True
|
||||||
If FilesSessionBackup.Exists Then
|
Dim files As List(Of SFile) = SFile.GetFiles(SessionsPath.CSFileP, "*.xml",, EDP.ReturnValue)
|
||||||
Dim f As SFile = SFile.IndexReindex(FilesSessionBackup)
|
If RenameOldFileNames(files) Then files = SFile.GetFiles(SessionsPath.CSFileP, "*.xml",, EDP.ReturnValue)
|
||||||
SFile.Rename(FilesSessionBackup, f)
|
Dim filesCount% = Settings.FeedStoredSessionsNumber
|
||||||
RemoveLogFiles(FilesSessionBackup, 10)
|
If files.ListExists And filesCount > 0 Then
|
||||||
FilesSessionBackup.Delete()
|
Dim fe As New ErrorsDescriber(EDP.None)
|
||||||
End If
|
Do While files.Count > filesCount : files(0).Delete(,, fe) : files.RemoveAt(0) : Loop
|
||||||
SFile.Rename(FilesSessionActual, FilesSessionBackup)
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[DownloadObjects.TDownloader.FilesBackupLastSession]")
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[DownloadObjects.TDownloader.ClearSessions]")
|
||||||
Finally
|
|
||||||
FilesLastSessionBackedup = True
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Function RenameOldFileNames(ByVal files As List(Of SFile)) As Boolean
|
||||||
|
Dim result As Boolean = False
|
||||||
|
Try
|
||||||
|
If files.ListExists AndAlso files.Exists(Function(ff) ff.Name.StringToLower.StartsWith("latest")) Then
|
||||||
|
Dim d As Date
|
||||||
|
Dim fileCurrent As SFile, fileNew As SFile
|
||||||
|
For Each fileCurrent In files
|
||||||
|
If fileCurrent.Name.StringToLower.StartsWith("latest") Then
|
||||||
|
d = IO.File.GetLastWriteTime(fileCurrent)
|
||||||
|
fileNew = fileCurrent
|
||||||
|
fileNew.Name = AConvert(Of String)(d, SessionDateTimeProvider)
|
||||||
|
SFile.Rename(fileCurrent, fileNew,, EDP.None)
|
||||||
|
result = True
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
Catch
|
||||||
|
End Try
|
||||||
|
Return result
|
||||||
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
Friend ReadOnly Property Downloaded As List(Of IUserData)
|
Friend ReadOnly Property Downloaded As List(Of IUserData)
|
||||||
Private ReadOnly NProv As IFormatProvider
|
Private ReadOnly NProv As IFormatProvider
|
||||||
@@ -280,32 +303,40 @@ Namespace DownloadObjects
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Pool"
|
#Region "Pool"
|
||||||
Friend Sub ReconfPool()
|
Friend Sub ReconfPool(Optional ByVal Round As Integer = 0)
|
||||||
If Pool.Count = 0 OrElse Not Pool.Exists(Function(j) j.Working Or j.Count > 0) Then
|
Try
|
||||||
Dim i%
|
If Pool.Count = 0 OrElse Not Pool.Exists(Function(j) j.Working Or j.Count > 0) Then
|
||||||
Pool.ListClearDispose
|
Dim i%
|
||||||
If Settings.Plugins.Count > 0 Then
|
Pool.ListClearDispose
|
||||||
Pool.Add(New Job(Download.Main))
|
If Settings.Plugins.Count > 0 Then
|
||||||
For Each p As PluginHost In Settings.Plugins
|
Pool.Add(New Job(Download.Main))
|
||||||
If p.Settings.IsSeparatedTasks Then
|
For Each p As PluginHost In Settings.Plugins
|
||||||
Pool.Add(New Job(Download.Main))
|
If p.Settings.IsSeparatedTasks Then
|
||||||
Pool.Last.AddHost(p.Settings)
|
Pool.Add(New Job(Download.Main))
|
||||||
ElseIf Not p.Settings.TaskGroupName.IsEmptyString Then
|
|
||||||
i = -1
|
|
||||||
If Pool.Count > 0 Then i = Pool.FindIndex(Function(pt) pt.GroupName = p.Settings.TaskGroupName)
|
|
||||||
If i >= 0 Then
|
|
||||||
Pool(i).AddHost(p.Settings)
|
|
||||||
Else
|
|
||||||
Pool.Add(New Job(Download.Main, p.Settings.TaskGroupName))
|
|
||||||
Pool.Last.AddHost(p.Settings)
|
Pool.Last.AddHost(p.Settings)
|
||||||
|
ElseIf Not p.Settings.TaskGroupName.IsEmptyString Then
|
||||||
|
i = -1
|
||||||
|
If Pool.Count > 0 Then i = Pool.FindIndex(Function(pt) pt.GroupName = p.Settings.TaskGroupName)
|
||||||
|
If i >= 0 Then
|
||||||
|
Pool(i).AddHost(p.Settings)
|
||||||
|
Else
|
||||||
|
Pool.Add(New Job(Download.Main, p.Settings.TaskGroupName))
|
||||||
|
Pool.Last.AddHost(p.Settings)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Pool(0).AddHost(p.Settings)
|
||||||
End If
|
End If
|
||||||
Else
|
Next
|
||||||
Pool(0).AddHost(p.Settings)
|
End If
|
||||||
End If
|
RaiseEvent Reconfigured()
|
||||||
Next
|
|
||||||
End If
|
End If
|
||||||
RaiseEvent Reconfigured()
|
Catch ex As Exception
|
||||||
End If
|
If Round = 0 Then
|
||||||
|
ReconfPool(Round + 1)
|
||||||
|
Else
|
||||||
|
Throw ex
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Thread"
|
#Region "Thread"
|
||||||
|
|||||||
436
SCrawler/Editors/GlobalSettingsForm.Designer.vb
generated
436
SCrawler/Editors/GlobalSettingsForm.Designer.vb
generated
@@ -24,16 +24,16 @@ Namespace Editors
|
|||||||
Private Sub InitializeComponent()
|
Private Sub InitializeComponent()
|
||||||
Me.components = New System.ComponentModel.Container()
|
Me.components = New System.ComponentModel.Container()
|
||||||
Dim TP_BASIS As System.Windows.Forms.TableLayoutPanel
|
Dim TP_BASIS As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton55 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GlobalSettingsForm))
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(GlobalSettingsForm))
|
||||||
Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton56 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim TP_IMAGES As System.Windows.Forms.TableLayoutPanel
|
Dim TP_IMAGES As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton57 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton58 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton59 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton60 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton61 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton62 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim TP_FILE_NAME As System.Windows.Forms.TableLayoutPanel
|
Dim TP_FILE_NAME As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel
|
Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim LBL_DATE_POS As System.Windows.Forms.Label
|
Dim LBL_DATE_POS As System.Windows.Forms.Label
|
||||||
@@ -46,14 +46,14 @@ Namespace Editors
|
|||||||
Dim TP_CHANNELS As System.Windows.Forms.TableLayoutPanel
|
Dim TP_CHANNELS As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TAB_BEHAVIOR As System.Windows.Forms.TabPage
|
Dim TAB_BEHAVIOR As System.Windows.Forms.TabPage
|
||||||
Dim TP_BEHAVIOR As System.Windows.Forms.TableLayoutPanel
|
Dim TP_BEHAVIOR As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton63 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton10 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton64 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim TP_OPEN_INFO As System.Windows.Forms.TableLayoutPanel
|
Dim TP_OPEN_INFO As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TP_OPEN_PROGRESS As System.Windows.Forms.TableLayoutPanel
|
Dim TP_OPEN_PROGRESS As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TAB_DOWN As System.Windows.Forms.TabPage
|
Dim TAB_DOWN As System.Windows.Forms.TabPage
|
||||||
Dim TP_DOWNLOADING As System.Windows.Forms.TableLayoutPanel
|
Dim TP_DOWNLOADING As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton11 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton65 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton12 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton66 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim TP_MISSING_DATA As System.Windows.Forms.TableLayoutPanel
|
Dim TP_MISSING_DATA As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TAB_FEED As System.Windows.Forms.TabPage
|
Dim TAB_FEED As System.Windows.Forms.TabPage
|
||||||
Dim TP_FEED As System.Windows.Forms.TableLayoutPanel
|
Dim TP_FEED As System.Windows.Forms.TableLayoutPanel
|
||||||
@@ -61,27 +61,27 @@ Namespace Editors
|
|||||||
Dim TAB_NOTIFY As System.Windows.Forms.TabPage
|
Dim TAB_NOTIFY As System.Windows.Forms.TabPage
|
||||||
Dim TP_NOTIFY_MAIN As System.Windows.Forms.TableLayoutPanel
|
Dim TP_NOTIFY_MAIN As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TP_ENVIR As System.Windows.Forms.TableLayoutPanel
|
Dim TP_ENVIR As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton13 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton67 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton14 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton68 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton15 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton69 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton16 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton70 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton17 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton71 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton18 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton72 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton19 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton73 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton20 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton74 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton21 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton75 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton22 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton76 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim TAB_STD As System.Windows.Forms.TabPage
|
Dim TAB_STD As System.Windows.Forms.TabPage
|
||||||
Dim TP_STD As System.Windows.Forms.TableLayoutPanel
|
Dim TP_STD As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton23 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton77 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ListColumn1 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
Dim ListColumn5 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||||
Dim ListColumn2 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
Dim ListColumn6 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
||||||
Dim TAB_DESIGN As System.Windows.Forms.TabPage
|
Dim TAB_DESIGN As System.Windows.Forms.TabPage
|
||||||
Dim TP_DESIGN As System.Windows.Forms.TableLayoutPanel
|
Dim TP_DESIGN As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton24 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton78 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton25 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton79 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton26 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton80 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton27 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton81 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
@@ -113,7 +113,6 @@ Namespace Editors
|
|||||||
Me.CH_DOWN_OPEN_PROGRESS_SUSPEND = New System.Windows.Forms.CheckBox()
|
Me.CH_DOWN_OPEN_PROGRESS_SUSPEND = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_ADD_MISSING_TO_LOG = New System.Windows.Forms.CheckBox()
|
Me.CH_ADD_MISSING_TO_LOG = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_ADD_MISSING_ERROS_TO_LOG = New System.Windows.Forms.CheckBox()
|
Me.CH_ADD_MISSING_ERROS_TO_LOG = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_FEED_STORE_SESSION_DATA = New System.Windows.Forms.CheckBox()
|
|
||||||
Me.CH_NOTIFY_SHOW_BASE = New System.Windows.Forms.CheckBox()
|
Me.CH_NOTIFY_SHOW_BASE = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_NOTIFY_SILENT = New System.Windows.Forms.CheckBox()
|
Me.CH_NOTIFY_SILENT = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_NOTIFY_PROFILES = New System.Windows.Forms.CheckBox()
|
Me.CH_NOTIFY_PROFILES = New System.Windows.Forms.CheckBox()
|
||||||
@@ -152,6 +151,7 @@ Namespace Editors
|
|||||||
Me.CH_FEED_ENDLESS = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_ENDLESS = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_FEED_ADD_SESSION = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_ADD_SESSION = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_FEED_ADD_DATE = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_ADD_DATE = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_FEED_CENTER_IMAGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_FEED_CENTER_IMAGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.COLORS_FEED = New SCrawler.Editors.ColorPicker()
|
Me.COLORS_FEED = New SCrawler.Editors.ColorPicker()
|
||||||
Me.CH_FEED_SHOW_FRIENDLY = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_SHOW_FRIENDLY = New System.Windows.Forms.CheckBox()
|
||||||
@@ -175,6 +175,7 @@ Namespace Editors
|
|||||||
Me.TAB_MAIN = New System.Windows.Forms.TabControl()
|
Me.TAB_MAIN = New System.Windows.Forms.TabControl()
|
||||||
Me.TAB_ENVIR = New System.Windows.Forms.TabPage()
|
Me.TAB_ENVIR = New System.Windows.Forms.TabPage()
|
||||||
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
|
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
|
||||||
|
Me.CH_STD_YT_CREATE_URL = New System.Windows.Forms.CheckBox()
|
||||||
TP_BASIS = New System.Windows.Forms.TableLayoutPanel()
|
TP_BASIS = New System.Windows.Forms.TableLayoutPanel()
|
||||||
TP_IMAGES = New System.Windows.Forms.TableLayoutPanel()
|
TP_IMAGES = New System.Windows.Forms.TableLayoutPanel()
|
||||||
TP_FILE_NAME = New System.Windows.Forms.TableLayoutPanel()
|
TP_FILE_NAME = New System.Windows.Forms.TableLayoutPanel()
|
||||||
@@ -241,6 +242,7 @@ Namespace Editors
|
|||||||
TP_FEED_IMG_COUNT.SuspendLayout()
|
TP_FEED_IMG_COUNT.SuspendLayout()
|
||||||
CType(Me.TXT_FEED_ROWS, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TXT_FEED_ROWS, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.TXT_FEED_COLUMNS, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TXT_FEED_COLUMNS, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.NUM_FEED_STORE_SESSION_DATA, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.TXT_FEED_CENTER_IMAGE, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TXT_FEED_CENTER_IMAGE, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
TAB_NOTIFY.SuspendLayout()
|
TAB_NOTIFY.SuspendLayout()
|
||||||
TP_NOTIFY_MAIN.SuspendLayout()
|
TP_NOTIFY_MAIN.SuspendLayout()
|
||||||
@@ -300,22 +302,21 @@ Namespace Editors
|
|||||||
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
TP_BASIS.Size = New System.Drawing.Size(570, 366)
|
TP_BASIS.Size = New System.Drawing.Size(570, 368)
|
||||||
TP_BASIS.TabIndex = 0
|
TP_BASIS.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_GLOBAL_PATH
|
'TXT_GLOBAL_PATH
|
||||||
'
|
'
|
||||||
ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
|
ActionButton55.BackgroundImage = CType(resources.GetObject("ActionButton55.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton1.Name = "Open"
|
ActionButton55.Name = "Open"
|
||||||
ActionButton2.BackgroundImage = CType(resources.GetObject("ActionButton2.BackgroundImage"), System.Drawing.Image)
|
ActionButton56.BackgroundImage = CType(resources.GetObject("ActionButton56.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton2.Name = "Clear"
|
ActionButton56.Name = "Clear"
|
||||||
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton1)
|
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton55)
|
||||||
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton2)
|
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton56)
|
||||||
Me.TXT_GLOBAL_PATH.CaptionText = "Data Path"
|
Me.TXT_GLOBAL_PATH.CaptionText = "Data Path"
|
||||||
Me.TXT_GLOBAL_PATH.CaptionToolTipEnabled = True
|
Me.TXT_GLOBAL_PATH.CaptionToolTipEnabled = True
|
||||||
Me.TXT_GLOBAL_PATH.CaptionToolTipText = "Root path for storing users' data"
|
Me.TXT_GLOBAL_PATH.CaptionToolTipText = "Root path for storing users' data"
|
||||||
Me.TXT_GLOBAL_PATH.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_GLOBAL_PATH.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_GLOBAL_PATH.Lines = New String(-1) {}
|
|
||||||
Me.TXT_GLOBAL_PATH.Location = New System.Drawing.Point(4, 4)
|
Me.TXT_GLOBAL_PATH.Location = New System.Drawing.Point(4, 4)
|
||||||
Me.TXT_GLOBAL_PATH.Name = "TXT_GLOBAL_PATH"
|
Me.TXT_GLOBAL_PATH.Name = "TXT_GLOBAL_PATH"
|
||||||
Me.TXT_GLOBAL_PATH.Size = New System.Drawing.Size(562, 22)
|
Me.TXT_GLOBAL_PATH.Size = New System.Drawing.Size(562, 22)
|
||||||
@@ -345,7 +346,6 @@ Namespace Editors
|
|||||||
Me.TXT_IMAGE_LARGE.CaptionToolTipText = "Maximum large image size by height"
|
Me.TXT_IMAGE_LARGE.CaptionToolTipText = "Maximum large image size by height"
|
||||||
Me.TXT_IMAGE_LARGE.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_IMAGE_LARGE.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_IMAGE_LARGE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_IMAGE_LARGE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_IMAGE_LARGE.Lines = New String(-1) {}
|
|
||||||
Me.TXT_IMAGE_LARGE.Location = New System.Drawing.Point(3, 3)
|
Me.TXT_IMAGE_LARGE.Location = New System.Drawing.Point(3, 3)
|
||||||
Me.TXT_IMAGE_LARGE.Name = "TXT_IMAGE_LARGE"
|
Me.TXT_IMAGE_LARGE.Name = "TXT_IMAGE_LARGE"
|
||||||
Me.TXT_IMAGE_LARGE.NumberMaximum = New Decimal(New Integer() {256, 0, 0, 0})
|
Me.TXT_IMAGE_LARGE.NumberMaximum = New Decimal(New Integer() {256, 0, 0, 0})
|
||||||
@@ -362,7 +362,6 @@ Namespace Editors
|
|||||||
Me.TXT_IMAGE_SMALL.CaptionToolTipText = "Maximum small image size by height"
|
Me.TXT_IMAGE_SMALL.CaptionToolTipText = "Maximum small image size by height"
|
||||||
Me.TXT_IMAGE_SMALL.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_IMAGE_SMALL.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_IMAGE_SMALL.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_IMAGE_SMALL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_IMAGE_SMALL.Lines = New String(-1) {}
|
|
||||||
Me.TXT_IMAGE_SMALL.Location = New System.Drawing.Point(287, 3)
|
Me.TXT_IMAGE_SMALL.Location = New System.Drawing.Point(287, 3)
|
||||||
Me.TXT_IMAGE_SMALL.Name = "TXT_IMAGE_SMALL"
|
Me.TXT_IMAGE_SMALL.Name = "TXT_IMAGE_SMALL"
|
||||||
Me.TXT_IMAGE_SMALL.NumberMaximum = New Decimal(New Integer() {256, 0, 0, 0})
|
Me.TXT_IMAGE_SMALL.NumberMaximum = New Decimal(New Integer() {256, 0, 0, 0})
|
||||||
@@ -374,14 +373,13 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_COLLECTIONS_PATH
|
'TXT_COLLECTIONS_PATH
|
||||||
'
|
'
|
||||||
ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image)
|
ActionButton57.BackgroundImage = CType(resources.GetObject("ActionButton57.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton3.Name = "Clear"
|
ActionButton57.Name = "Clear"
|
||||||
Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton3)
|
Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton57)
|
||||||
Me.TXT_COLLECTIONS_PATH.CaptionText = "Collections folder"
|
Me.TXT_COLLECTIONS_PATH.CaptionText = "Collections folder"
|
||||||
Me.TXT_COLLECTIONS_PATH.CaptionToolTipEnabled = True
|
Me.TXT_COLLECTIONS_PATH.CaptionToolTipEnabled = True
|
||||||
Me.TXT_COLLECTIONS_PATH.CaptionToolTipText = "Set collections folder name (name only)"
|
Me.TXT_COLLECTIONS_PATH.CaptionToolTipText = "Set collections folder name (name only)"
|
||||||
Me.TXT_COLLECTIONS_PATH.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_COLLECTIONS_PATH.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_COLLECTIONS_PATH.Lines = New String(-1) {}
|
|
||||||
Me.TXT_COLLECTIONS_PATH.Location = New System.Drawing.Point(4, 62)
|
Me.TXT_COLLECTIONS_PATH.Location = New System.Drawing.Point(4, 62)
|
||||||
Me.TXT_COLLECTIONS_PATH.Name = "TXT_COLLECTIONS_PATH"
|
Me.TXT_COLLECTIONS_PATH.Name = "TXT_COLLECTIONS_PATH"
|
||||||
Me.TXT_COLLECTIONS_PATH.Size = New System.Drawing.Size(562, 22)
|
Me.TXT_COLLECTIONS_PATH.Size = New System.Drawing.Size(562, 22)
|
||||||
@@ -389,16 +387,15 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_MAX_JOBS_USERS
|
'TXT_MAX_JOBS_USERS
|
||||||
'
|
'
|
||||||
ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image)
|
ActionButton58.BackgroundImage = CType(resources.GetObject("ActionButton58.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton4.Name = "Refresh"
|
ActionButton58.Name = "Refresh"
|
||||||
ActionButton4.ToolTipText = "Set to default"
|
ActionButton58.ToolTipText = "Set to default"
|
||||||
Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton4)
|
Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton58)
|
||||||
Me.TXT_MAX_JOBS_USERS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
|
Me.TXT_MAX_JOBS_USERS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
|
||||||
Me.TXT_MAX_JOBS_USERS.CaptionText = "Maximum downloading tasks of users"
|
Me.TXT_MAX_JOBS_USERS.CaptionText = "Maximum downloading tasks of users"
|
||||||
Me.TXT_MAX_JOBS_USERS.CaptionWidth = 50.0R
|
Me.TXT_MAX_JOBS_USERS.CaptionWidth = 50.0R
|
||||||
Me.TXT_MAX_JOBS_USERS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_MAX_JOBS_USERS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_MAX_JOBS_USERS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_MAX_JOBS_USERS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_MAX_JOBS_USERS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_MAX_JOBS_USERS.Location = New System.Drawing.Point(4, 91)
|
Me.TXT_MAX_JOBS_USERS.Location = New System.Drawing.Point(4, 91)
|
||||||
Me.TXT_MAX_JOBS_USERS.Name = "TXT_MAX_JOBS_USERS"
|
Me.TXT_MAX_JOBS_USERS.Name = "TXT_MAX_JOBS_USERS"
|
||||||
Me.TXT_MAX_JOBS_USERS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0})
|
Me.TXT_MAX_JOBS_USERS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||||
@@ -409,16 +406,15 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_MAX_JOBS_CHANNELS
|
'TXT_MAX_JOBS_CHANNELS
|
||||||
'
|
'
|
||||||
ActionButton5.BackgroundImage = CType(resources.GetObject("ActionButton5.BackgroundImage"), System.Drawing.Image)
|
ActionButton59.BackgroundImage = CType(resources.GetObject("ActionButton59.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton5.Name = "Refresh"
|
ActionButton59.Name = "Refresh"
|
||||||
ActionButton5.ToolTipText = "Set to default"
|
ActionButton59.ToolTipText = "Set to default"
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton5)
|
Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton59)
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
|
Me.TXT_MAX_JOBS_CHANNELS.CaptionSizeType = System.Windows.Forms.SizeType.Percent
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.CaptionText = "Maximum downloading tasks of channels"
|
Me.TXT_MAX_JOBS_CHANNELS.CaptionText = "Maximum downloading tasks of channels"
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.CaptionWidth = 50.0R
|
Me.TXT_MAX_JOBS_CHANNELS.CaptionWidth = 50.0R
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_MAX_JOBS_CHANNELS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_MAX_JOBS_CHANNELS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Location = New System.Drawing.Point(4, 120)
|
Me.TXT_MAX_JOBS_CHANNELS.Location = New System.Drawing.Point(4, 120)
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Name = "TXT_MAX_JOBS_CHANNELS"
|
Me.TXT_MAX_JOBS_CHANNELS.Name = "TXT_MAX_JOBS_CHANNELS"
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0})
|
Me.TXT_MAX_JOBS_CHANNELS.NumberMinimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||||
@@ -440,12 +436,11 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_IMGUR_CLIENT_ID
|
'TXT_IMGUR_CLIENT_ID
|
||||||
'
|
'
|
||||||
ActionButton6.BackgroundImage = CType(resources.GetObject("ActionButton6.BackgroundImage"), System.Drawing.Image)
|
ActionButton60.BackgroundImage = CType(resources.GetObject("ActionButton60.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton6.Name = "Clear"
|
ActionButton60.Name = "Clear"
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton6)
|
Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton60)
|
||||||
Me.TXT_IMGUR_CLIENT_ID.CaptionText = "Imgur Client ID"
|
Me.TXT_IMGUR_CLIENT_ID.CaptionText = "Imgur Client ID"
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_IMGUR_CLIENT_ID.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Lines = New String(-1) {}
|
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 204)
|
Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 204)
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Name = "TXT_IMGUR_CLIENT_ID"
|
Me.TXT_IMGUR_CLIENT_ID.Name = "TXT_IMGUR_CLIENT_ID"
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Size = New System.Drawing.Size(562, 22)
|
Me.TXT_IMGUR_CLIENT_ID.Size = New System.Drawing.Size(562, 22)
|
||||||
@@ -477,19 +472,18 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_USER_AGENT
|
'TXT_USER_AGENT
|
||||||
'
|
'
|
||||||
ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image)
|
ActionButton61.BackgroundImage = CType(resources.GetObject("ActionButton61.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton7.Name = "Refresh"
|
ActionButton61.Name = "Refresh"
|
||||||
ActionButton7.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton61.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image)
|
ActionButton62.BackgroundImage = CType(resources.GetObject("ActionButton62.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton8.Name = "Clear"
|
ActionButton62.Name = "Clear"
|
||||||
ActionButton8.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton62.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_USER_AGENT.Buttons.Add(ActionButton7)
|
Me.TXT_USER_AGENT.Buttons.Add(ActionButton61)
|
||||||
Me.TXT_USER_AGENT.Buttons.Add(ActionButton8)
|
Me.TXT_USER_AGENT.Buttons.Add(ActionButton62)
|
||||||
Me.TXT_USER_AGENT.CaptionText = "UserAgent"
|
Me.TXT_USER_AGENT.CaptionText = "UserAgent"
|
||||||
Me.TXT_USER_AGENT.CaptionToolTipEnabled = True
|
Me.TXT_USER_AGENT.CaptionToolTipEnabled = True
|
||||||
Me.TXT_USER_AGENT.CaptionToolTipText = "Default user agent to use in requests"
|
Me.TXT_USER_AGENT.CaptionToolTipText = "Default user agent to use in requests"
|
||||||
Me.TXT_USER_AGENT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_USER_AGENT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_USER_AGENT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_USER_AGENT.Location = New System.Drawing.Point(4, 175)
|
Me.TXT_USER_AGENT.Location = New System.Drawing.Point(4, 175)
|
||||||
Me.TXT_USER_AGENT.Name = "TXT_USER_AGENT"
|
Me.TXT_USER_AGENT.Name = "TXT_USER_AGENT"
|
||||||
Me.TXT_USER_AGENT.Size = New System.Drawing.Size(562, 22)
|
Me.TXT_USER_AGENT.Size = New System.Drawing.Size(562, 22)
|
||||||
@@ -788,18 +782,6 @@ Namespace Editors
|
|||||||
TT_MAIN.SetToolTip(Me.CH_ADD_MISSING_ERROS_TO_LOG, resources.GetString("CH_ADD_MISSING_ERROS_TO_LOG.ToolTip"))
|
TT_MAIN.SetToolTip(Me.CH_ADD_MISSING_ERROS_TO_LOG, resources.GetString("CH_ADD_MISSING_ERROS_TO_LOG.ToolTip"))
|
||||||
Me.CH_ADD_MISSING_ERROS_TO_LOG.UseVisualStyleBackColor = True
|
Me.CH_ADD_MISSING_ERROS_TO_LOG.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'CH_FEED_STORE_SESSION_DATA
|
|
||||||
'
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.AutoSize = True
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.Dock = System.Windows.Forms.DockStyle.Fill
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.Location = New System.Drawing.Point(4, 166)
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.Name = "CH_FEED_STORE_SESSION_DATA"
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.Size = New System.Drawing.Size(568, 19)
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.TabIndex = 6
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.Text = "Store session data"
|
|
||||||
TT_MAIN.SetToolTip(Me.CH_FEED_STORE_SESSION_DATA, "If checked, session data will be stored in an xml file.")
|
|
||||||
Me.CH_FEED_STORE_SESSION_DATA.UseVisualStyleBackColor = True
|
|
||||||
'
|
|
||||||
'CH_NOTIFY_SHOW_BASE
|
'CH_NOTIFY_SHOW_BASE
|
||||||
'
|
'
|
||||||
Me.CH_NOTIFY_SHOW_BASE.AutoSize = True
|
Me.CH_NOTIFY_SHOW_BASE.AutoSize = True
|
||||||
@@ -955,7 +937,7 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.AutoSize = True
|
Me.CH_FEED_OPEN_LAST_MODE.AutoSize = True
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.CH_FEED_OPEN_LAST_MODE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.Location = New System.Drawing.Point(4, 192)
|
Me.CH_FEED_OPEN_LAST_MODE.Location = New System.Drawing.Point(4, 195)
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.Name = "CH_FEED_OPEN_LAST_MODE"
|
Me.CH_FEED_OPEN_LAST_MODE.Name = "CH_FEED_OPEN_LAST_MODE"
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.Size = New System.Drawing.Size(568, 19)
|
Me.CH_FEED_OPEN_LAST_MODE.Size = New System.Drawing.Size(568, 19)
|
||||||
Me.CH_FEED_OPEN_LAST_MODE.TabIndex = 7
|
Me.CH_FEED_OPEN_LAST_MODE.TabIndex = 7
|
||||||
@@ -992,10 +974,10 @@ Namespace Editors
|
|||||||
'BTT_RESET_DOWNLOAD_LOCATIONS
|
'BTT_RESET_DOWNLOAD_LOCATIONS
|
||||||
'
|
'
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Dock = System.Windows.Forms.DockStyle.Right
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Dock = System.Windows.Forms.DockStyle.Right
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Location = New System.Drawing.Point(382, 322)
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Location = New System.Drawing.Point(382, 348)
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Name = "BTT_RESET_DOWNLOAD_LOCATIONS"
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Name = "BTT_RESET_DOWNLOAD_LOCATIONS"
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Size = New System.Drawing.Size(190, 22)
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Size = New System.Drawing.Size(190, 22)
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.TabIndex = 12
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.TabIndex = 13
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Text = "Reset download locations"
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.Text = "Reset download locations"
|
||||||
TT_MAIN.SetToolTip(Me.BTT_RESET_DOWNLOAD_LOCATIONS, "All saved download locations will be deleted")
|
TT_MAIN.SetToolTip(Me.BTT_RESET_DOWNLOAD_LOCATIONS, "All saved download locations will be deleted")
|
||||||
Me.BTT_RESET_DOWNLOAD_LOCATIONS.UseVisualStyleBackColor = True
|
Me.BTT_RESET_DOWNLOAD_LOCATIONS.UseVisualStyleBackColor = True
|
||||||
@@ -1051,7 +1033,6 @@ Namespace Editors
|
|||||||
Me.TXT_CHANNELS_ROWS.CaptionToolTipText = "How many lines of images should be shown in the channels form"
|
Me.TXT_CHANNELS_ROWS.CaptionToolTipText = "How many lines of images should be shown in the channels form"
|
||||||
Me.TXT_CHANNELS_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_CHANNELS_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_CHANNELS_ROWS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CHANNELS_ROWS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CHANNELS_ROWS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CHANNELS_ROWS.Location = New System.Drawing.Point(3, 3)
|
Me.TXT_CHANNELS_ROWS.Location = New System.Drawing.Point(3, 3)
|
||||||
Me.TXT_CHANNELS_ROWS.Name = "TXT_CHANNELS_ROWS"
|
Me.TXT_CHANNELS_ROWS.Name = "TXT_CHANNELS_ROWS"
|
||||||
Me.TXT_CHANNELS_ROWS.Size = New System.Drawing.Size(278, 22)
|
Me.TXT_CHANNELS_ROWS.Size = New System.Drawing.Size(278, 22)
|
||||||
@@ -1066,7 +1047,6 @@ Namespace Editors
|
|||||||
Me.TXT_CHANNELS_COLUMNS.CaptionToolTipText = "How many columns of images should be shown in the channels form"
|
Me.TXT_CHANNELS_COLUMNS.CaptionToolTipText = "How many columns of images should be shown in the channels form"
|
||||||
Me.TXT_CHANNELS_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_CHANNELS_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_CHANNELS_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CHANNELS_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CHANNELS_COLUMNS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CHANNELS_COLUMNS.Location = New System.Drawing.Point(287, 3)
|
Me.TXT_CHANNELS_COLUMNS.Location = New System.Drawing.Point(287, 3)
|
||||||
Me.TXT_CHANNELS_COLUMNS.Name = "TXT_CHANNELS_COLUMNS"
|
Me.TXT_CHANNELS_COLUMNS.Name = "TXT_CHANNELS_COLUMNS"
|
||||||
Me.TXT_CHANNELS_COLUMNS.Size = New System.Drawing.Size(278, 22)
|
Me.TXT_CHANNELS_COLUMNS.Size = New System.Drawing.Size(278, 22)
|
||||||
@@ -1080,7 +1060,7 @@ Namespace Editors
|
|||||||
TAB_BASIS.Location = New System.Drawing.Point(4, 22)
|
TAB_BASIS.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_BASIS.Name = "TAB_BASIS"
|
TAB_BASIS.Name = "TAB_BASIS"
|
||||||
TAB_BASIS.Padding = New System.Windows.Forms.Padding(3)
|
TAB_BASIS.Padding = New System.Windows.Forms.Padding(3)
|
||||||
TAB_BASIS.Size = New System.Drawing.Size(576, 372)
|
TAB_BASIS.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_BASIS.TabIndex = 0
|
TAB_BASIS.TabIndex = 0
|
||||||
TAB_BASIS.Text = "Basis"
|
TAB_BASIS.Text = "Basis"
|
||||||
'
|
'
|
||||||
@@ -1090,7 +1070,7 @@ Namespace Editors
|
|||||||
TAB_DEFAULTS.Location = New System.Drawing.Point(4, 22)
|
TAB_DEFAULTS.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_DEFAULTS.Name = "TAB_DEFAULTS"
|
TAB_DEFAULTS.Name = "TAB_DEFAULTS"
|
||||||
TAB_DEFAULTS.Padding = New System.Windows.Forms.Padding(3)
|
TAB_DEFAULTS.Padding = New System.Windows.Forms.Padding(3)
|
||||||
TAB_DEFAULTS.Size = New System.Drawing.Size(576, 372)
|
TAB_DEFAULTS.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_DEFAULTS.TabIndex = 1
|
TAB_DEFAULTS.TabIndex = 1
|
||||||
TAB_DEFAULTS.Text = "Defaults"
|
TAB_DEFAULTS.Text = "Defaults"
|
||||||
'
|
'
|
||||||
@@ -1116,7 +1096,7 @@ Namespace Editors
|
|||||||
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_DEFS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_DEFS.Size = New System.Drawing.Size(570, 366)
|
TP_DEFS.Size = New System.Drawing.Size(570, 368)
|
||||||
TP_DEFS.TabIndex = 0
|
TP_DEFS.TabIndex = 0
|
||||||
'
|
'
|
||||||
'CH_DOWN_IMAGES_NATIVE
|
'CH_DOWN_IMAGES_NATIVE
|
||||||
@@ -1136,7 +1116,7 @@ Namespace Editors
|
|||||||
TAB_DEFS_CHANNELS.Location = New System.Drawing.Point(4, 22)
|
TAB_DEFS_CHANNELS.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_DEFS_CHANNELS.Name = "TAB_DEFS_CHANNELS"
|
TAB_DEFS_CHANNELS.Name = "TAB_DEFS_CHANNELS"
|
||||||
TAB_DEFS_CHANNELS.Padding = New System.Windows.Forms.Padding(3)
|
TAB_DEFS_CHANNELS.Padding = New System.Windows.Forms.Padding(3)
|
||||||
TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 372)
|
TAB_DEFS_CHANNELS.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_DEFS_CHANNELS.TabIndex = 4
|
TAB_DEFS_CHANNELS.TabIndex = 4
|
||||||
TAB_DEFS_CHANNELS.Text = "Channels"
|
TAB_DEFS_CHANNELS.Text = "Channels"
|
||||||
'
|
'
|
||||||
@@ -1160,7 +1140,7 @@ Namespace Editors
|
|||||||
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_CHANNELS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_CHANNELS.Size = New System.Drawing.Size(570, 366)
|
TP_CHANNELS.Size = New System.Drawing.Size(570, 368)
|
||||||
TP_CHANNELS.TabIndex = 0
|
TP_CHANNELS.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_CHANNEL_USER_POST_LIMIT
|
'TXT_CHANNEL_USER_POST_LIMIT
|
||||||
@@ -1174,7 +1154,6 @@ Namespace Editors
|
|||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionWidth = 50.0R
|
Me.TXT_CHANNEL_USER_POST_LIMIT.CaptionWidth = 50.0R
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_CHANNEL_USER_POST_LIMIT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CHANNEL_USER_POST_LIMIT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.Location = New System.Drawing.Point(4, 33)
|
Me.TXT_CHANNEL_USER_POST_LIMIT.Location = New System.Drawing.Point(4, 33)
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.Name = "TXT_CHANNEL_USER_POST_LIMIT"
|
Me.TXT_CHANNEL_USER_POST_LIMIT.Name = "TXT_CHANNEL_USER_POST_LIMIT"
|
||||||
Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMaximum = New Decimal(New Integer() {1000, 0, 0, 0})
|
Me.TXT_CHANNEL_USER_POST_LIMIT.NumberMaximum = New Decimal(New Integer() {1000, 0, 0, 0})
|
||||||
@@ -1189,7 +1168,7 @@ Namespace Editors
|
|||||||
TAB_BEHAVIOR.Controls.Add(TP_BEHAVIOR)
|
TAB_BEHAVIOR.Controls.Add(TP_BEHAVIOR)
|
||||||
TAB_BEHAVIOR.Location = New System.Drawing.Point(4, 22)
|
TAB_BEHAVIOR.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_BEHAVIOR.Name = "TAB_BEHAVIOR"
|
TAB_BEHAVIOR.Name = "TAB_BEHAVIOR"
|
||||||
TAB_BEHAVIOR.Size = New System.Drawing.Size(576, 372)
|
TAB_BEHAVIOR.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_BEHAVIOR.TabIndex = 5
|
TAB_BEHAVIOR.TabIndex = 5
|
||||||
TAB_BEHAVIOR.Text = "Behavior"
|
TAB_BEHAVIOR.Text = "Behavior"
|
||||||
'
|
'
|
||||||
@@ -1220,24 +1199,23 @@ Namespace Editors
|
|||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
TP_BEHAVIOR.Size = New System.Drawing.Size(576, 372)
|
TP_BEHAVIOR.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_BEHAVIOR.TabIndex = 0
|
TP_BEHAVIOR.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_FOLDER_CMD
|
'TXT_FOLDER_CMD
|
||||||
'
|
'
|
||||||
Me.TXT_FOLDER_CMD.AutoShowClearButton = True
|
Me.TXT_FOLDER_CMD.AutoShowClearButton = True
|
||||||
ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image)
|
ActionButton63.BackgroundImage = CType(resources.GetObject("ActionButton63.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton9.Enabled = False
|
ActionButton63.Enabled = False
|
||||||
ActionButton9.Name = "Clear"
|
ActionButton63.Name = "Clear"
|
||||||
ActionButton9.Visible = False
|
ActionButton63.Visible = False
|
||||||
Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton9)
|
Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton63)
|
||||||
Me.TXT_FOLDER_CMD.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
Me.TXT_FOLDER_CMD.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
Me.TXT_FOLDER_CMD.CaptionText = "Folder cmd"
|
Me.TXT_FOLDER_CMD.CaptionText = "Folder cmd"
|
||||||
Me.TXT_FOLDER_CMD.CaptionToolTipEnabled = True
|
Me.TXT_FOLDER_CMD.CaptionToolTipEnabled = True
|
||||||
Me.TXT_FOLDER_CMD.CaptionToolTipText = "The command to open a folder."
|
Me.TXT_FOLDER_CMD.CaptionToolTipText = "The command to open a folder."
|
||||||
Me.TXT_FOLDER_CMD.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_FOLDER_CMD.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_FOLDER_CMD.LeaveDefaultButtons = True
|
Me.TXT_FOLDER_CMD.LeaveDefaultButtons = True
|
||||||
Me.TXT_FOLDER_CMD.Lines = New String(-1) {}
|
|
||||||
Me.TXT_FOLDER_CMD.Location = New System.Drawing.Point(4, 160)
|
Me.TXT_FOLDER_CMD.Location = New System.Drawing.Point(4, 160)
|
||||||
Me.TXT_FOLDER_CMD.Name = "TXT_FOLDER_CMD"
|
Me.TXT_FOLDER_CMD.Name = "TXT_FOLDER_CMD"
|
||||||
Me.TXT_FOLDER_CMD.PlaceholderEnabled = True
|
Me.TXT_FOLDER_CMD.PlaceholderEnabled = True
|
||||||
@@ -1270,18 +1248,17 @@ Namespace Editors
|
|||||||
'TXT_CLOSE_SCRIPT
|
'TXT_CLOSE_SCRIPT
|
||||||
'
|
'
|
||||||
Me.TXT_CLOSE_SCRIPT.AutoShowClearButton = True
|
Me.TXT_CLOSE_SCRIPT.AutoShowClearButton = True
|
||||||
ActionButton10.BackgroundImage = CType(resources.GetObject("ActionButton10.BackgroundImage"), System.Drawing.Image)
|
ActionButton64.BackgroundImage = CType(resources.GetObject("ActionButton64.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton10.Enabled = False
|
ActionButton64.Enabled = False
|
||||||
ActionButton10.Name = "Clear"
|
ActionButton64.Name = "Clear"
|
||||||
ActionButton10.Visible = False
|
ActionButton64.Visible = False
|
||||||
Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton10)
|
Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton64)
|
||||||
Me.TXT_CLOSE_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
Me.TXT_CLOSE_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
Me.TXT_CLOSE_SCRIPT.CaptionText = "Close cmd"
|
Me.TXT_CLOSE_SCRIPT.CaptionText = "Close cmd"
|
||||||
Me.TXT_CLOSE_SCRIPT.CaptionToolTipEnabled = True
|
Me.TXT_CLOSE_SCRIPT.CaptionToolTipEnabled = True
|
||||||
Me.TXT_CLOSE_SCRIPT.CaptionToolTipText = "This command will be executed when SCrawler is closed"
|
Me.TXT_CLOSE_SCRIPT.CaptionToolTipText = "This command will be executed when SCrawler is closed"
|
||||||
Me.TXT_CLOSE_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CLOSE_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CLOSE_SCRIPT.LeaveDefaultButtons = True
|
Me.TXT_CLOSE_SCRIPT.LeaveDefaultButtons = True
|
||||||
Me.TXT_CLOSE_SCRIPT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CLOSE_SCRIPT.Location = New System.Drawing.Point(4, 189)
|
Me.TXT_CLOSE_SCRIPT.Location = New System.Drawing.Point(4, 189)
|
||||||
Me.TXT_CLOSE_SCRIPT.Name = "TXT_CLOSE_SCRIPT"
|
Me.TXT_CLOSE_SCRIPT.Name = "TXT_CLOSE_SCRIPT"
|
||||||
Me.TXT_CLOSE_SCRIPT.PlaceholderEnabled = True
|
Me.TXT_CLOSE_SCRIPT.PlaceholderEnabled = True
|
||||||
@@ -1363,7 +1340,7 @@ Namespace Editors
|
|||||||
TAB_DOWN.Controls.Add(TP_DOWNLOADING)
|
TAB_DOWN.Controls.Add(TP_DOWNLOADING)
|
||||||
TAB_DOWN.Location = New System.Drawing.Point(4, 22)
|
TAB_DOWN.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_DOWN.Name = "TAB_DOWN"
|
TAB_DOWN.Name = "TAB_DOWN"
|
||||||
TAB_DOWN.Size = New System.Drawing.Size(576, 372)
|
TAB_DOWN.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_DOWN.TabIndex = 6
|
TAB_DOWN.TabIndex = 6
|
||||||
TAB_DOWN.Text = "Downloading"
|
TAB_DOWN.Text = "Downloading"
|
||||||
'
|
'
|
||||||
@@ -1395,17 +1372,17 @@ Namespace Editors
|
|||||||
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_DOWNLOADING.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_DOWNLOADING.Size = New System.Drawing.Size(576, 372)
|
TP_DOWNLOADING.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_DOWNLOADING.TabIndex = 1
|
TP_DOWNLOADING.TabIndex = 1
|
||||||
'
|
'
|
||||||
'TXT_SCRIPT
|
'TXT_SCRIPT
|
||||||
'
|
'
|
||||||
ActionButton11.BackgroundImage = CType(resources.GetObject("ActionButton11.BackgroundImage"), System.Drawing.Image)
|
ActionButton65.BackgroundImage = CType(resources.GetObject("ActionButton65.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton11.Name = "Open"
|
ActionButton65.Name = "Open"
|
||||||
ActionButton12.BackgroundImage = CType(resources.GetObject("ActionButton12.BackgroundImage"), System.Drawing.Image)
|
ActionButton66.BackgroundImage = CType(resources.GetObject("ActionButton66.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton12.Name = "Clear"
|
ActionButton66.Name = "Clear"
|
||||||
Me.TXT_SCRIPT.Buttons.Add(ActionButton11)
|
Me.TXT_SCRIPT.Buttons.Add(ActionButton65)
|
||||||
Me.TXT_SCRIPT.Buttons.Add(ActionButton12)
|
Me.TXT_SCRIPT.Buttons.Add(ActionButton66)
|
||||||
Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
Me.TXT_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
Me.TXT_SCRIPT.CaptionText = "Script"
|
Me.TXT_SCRIPT.CaptionText = "Script"
|
||||||
Me.TXT_SCRIPT.CaptionToolTipEnabled = True
|
Me.TXT_SCRIPT.CaptionToolTipEnabled = True
|
||||||
@@ -1414,7 +1391,6 @@ Namespace Editors
|
|||||||
Me.TXT_SCRIPT.CaptionWidth = 120.0R
|
Me.TXT_SCRIPT.CaptionWidth = 120.0R
|
||||||
Me.TXT_SCRIPT.ChangeControlsEnableOnCheckedChange = False
|
Me.TXT_SCRIPT.ChangeControlsEnableOnCheckedChange = False
|
||||||
Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_SCRIPT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 144)
|
Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 144)
|
||||||
Me.TXT_SCRIPT.Name = "TXT_SCRIPT"
|
Me.TXT_SCRIPT.Name = "TXT_SCRIPT"
|
||||||
Me.TXT_SCRIPT.PlaceholderEnabled = True
|
Me.TXT_SCRIPT.PlaceholderEnabled = True
|
||||||
@@ -1430,7 +1406,6 @@ Namespace Editors
|
|||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.CaptionToolTipText = "This command will be executed after all downloads are completed"
|
Me.TXT_DOWN_COMPLETE_SCRIPT.CaptionToolTipText = "This command will be executed after all downloads are completed"
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.CaptionWidth = 120.0R
|
Me.TXT_DOWN_COMPLETE_SCRIPT.CaptionWidth = 120.0R
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_DOWN_COMPLETE_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.Location = New System.Drawing.Point(4, 173)
|
Me.TXT_DOWN_COMPLETE_SCRIPT.Location = New System.Drawing.Point(4, 173)
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.Name = "TXT_DOWN_COMPLETE_SCRIPT"
|
Me.TXT_DOWN_COMPLETE_SCRIPT.Name = "TXT_DOWN_COMPLETE_SCRIPT"
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT.PlaceholderEnabled = True
|
Me.TXT_DOWN_COMPLETE_SCRIPT.PlaceholderEnabled = True
|
||||||
@@ -1483,7 +1458,7 @@ Namespace Editors
|
|||||||
TAB_FEED.Controls.Add(TP_FEED)
|
TAB_FEED.Controls.Add(TP_FEED)
|
||||||
TAB_FEED.Location = New System.Drawing.Point(4, 22)
|
TAB_FEED.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_FEED.Name = "TAB_FEED"
|
TAB_FEED.Name = "TAB_FEED"
|
||||||
TAB_FEED.Size = New System.Drawing.Size(576, 372)
|
TAB_FEED.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_FEED.TabIndex = 7
|
TAB_FEED.TabIndex = 7
|
||||||
TAB_FEED.Text = "Feed"
|
TAB_FEED.Text = "Feed"
|
||||||
'
|
'
|
||||||
@@ -1496,7 +1471,7 @@ Namespace Editors
|
|||||||
TP_FEED.Controls.Add(Me.CH_FEED_ENDLESS, 0, 3)
|
TP_FEED.Controls.Add(Me.CH_FEED_ENDLESS, 0, 3)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_ADD_SESSION, 0, 4)
|
TP_FEED.Controls.Add(Me.CH_FEED_ADD_SESSION, 0, 4)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_ADD_DATE, 0, 5)
|
TP_FEED.Controls.Add(Me.CH_FEED_ADD_DATE, 0, 5)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_STORE_SESSION_DATA, 0, 6)
|
TP_FEED.Controls.Add(Me.NUM_FEED_STORE_SESSION_DATA, 0, 6)
|
||||||
TP_FEED.Controls.Add(Me.TXT_FEED_CENTER_IMAGE, 0, 1)
|
TP_FEED.Controls.Add(Me.TXT_FEED_CENTER_IMAGE, 0, 1)
|
||||||
TP_FEED.Controls.Add(Me.COLORS_FEED, 0, 2)
|
TP_FEED.Controls.Add(Me.COLORS_FEED, 0, 2)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_OPEN_LAST_MODE, 0, 7)
|
TP_FEED.Controls.Add(Me.CH_FEED_OPEN_LAST_MODE, 0, 7)
|
||||||
@@ -1511,11 +1486,11 @@ Namespace Editors
|
|||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_FEED.Size = New System.Drawing.Size(576, 372)
|
TP_FEED.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_FEED.TabIndex = 0
|
TP_FEED.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TP_FEED_IMG_COUNT
|
'TP_FEED_IMG_COUNT
|
||||||
@@ -1542,7 +1517,6 @@ Namespace Editors
|
|||||||
Me.TXT_FEED_ROWS.CaptionToolTipText = "How many lines of images should be shown in the feed form"
|
Me.TXT_FEED_ROWS.CaptionToolTipText = "How many lines of images should be shown in the feed form"
|
||||||
Me.TXT_FEED_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_FEED_ROWS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_FEED_ROWS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_FEED_ROWS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_FEED_ROWS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_FEED_ROWS.Location = New System.Drawing.Point(3, 3)
|
Me.TXT_FEED_ROWS.Location = New System.Drawing.Point(3, 3)
|
||||||
Me.TXT_FEED_ROWS.Name = "TXT_FEED_ROWS"
|
Me.TXT_FEED_ROWS.Name = "TXT_FEED_ROWS"
|
||||||
Me.TXT_FEED_ROWS.NumberMaximum = New Decimal(New Integer() {50, 0, 0, 0})
|
Me.TXT_FEED_ROWS.NumberMaximum = New Decimal(New Integer() {50, 0, 0, 0})
|
||||||
@@ -1559,7 +1533,6 @@ Namespace Editors
|
|||||||
Me.TXT_FEED_COLUMNS.CaptionToolTipText = "How many columns of images should be shown in the feed form"
|
Me.TXT_FEED_COLUMNS.CaptionToolTipText = "How many columns of images should be shown in the feed form"
|
||||||
Me.TXT_FEED_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_FEED_COLUMNS.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_FEED_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_FEED_COLUMNS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_FEED_COLUMNS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_FEED_COLUMNS.Location = New System.Drawing.Point(290, 3)
|
Me.TXT_FEED_COLUMNS.Location = New System.Drawing.Point(290, 3)
|
||||||
Me.TXT_FEED_COLUMNS.Name = "TXT_FEED_COLUMNS"
|
Me.TXT_FEED_COLUMNS.Name = "TXT_FEED_COLUMNS"
|
||||||
Me.TXT_FEED_COLUMNS.NumberMaximum = New Decimal(New Integer() {20, 0, 0, 0})
|
Me.TXT_FEED_COLUMNS.NumberMaximum = New Decimal(New Integer() {20, 0, 0, 0})
|
||||||
@@ -1602,6 +1575,27 @@ Namespace Editors
|
|||||||
Me.CH_FEED_ADD_DATE.Text = "Add the date to the post title"
|
Me.CH_FEED_ADD_DATE.Text = "Add the date to the post title"
|
||||||
Me.CH_FEED_ADD_DATE.UseVisualStyleBackColor = True
|
Me.CH_FEED_ADD_DATE.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
|
'NUM_FEED_STORE_SESSION_DATA
|
||||||
|
'
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionCheckAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionText = "Store session data"
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionTextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionToolTipEnabled = True
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionToolTipText = "If checked, session data will be stored in an xml file." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "The number indicates the" &
|
||||||
|
" number of sessions to be saved." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "-1 to save all sessions"
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.CaptionWidth = 115.0R
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.Location = New System.Drawing.Point(4, 166)
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.Name = "NUM_FEED_STORE_SESSION_DATA"
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.NumberMaximum = New Decimal(New Integer() {100000, 0, 0, 0})
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.NumberMinimum = New Decimal(New Integer() {1, 0, 0, -2147483648})
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.NumberUpDownAlign = System.Windows.Forms.LeftRightAlignment.Left
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.Size = New System.Drawing.Size(568, 22)
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.TabIndex = 6
|
||||||
|
Me.NUM_FEED_STORE_SESSION_DATA.Text = "20"
|
||||||
|
'
|
||||||
'TXT_FEED_CENTER_IMAGE
|
'TXT_FEED_CENTER_IMAGE
|
||||||
'
|
'
|
||||||
Me.TXT_FEED_CENTER_IMAGE.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
Me.TXT_FEED_CENTER_IMAGE.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
@@ -1613,7 +1607,6 @@ Namespace Editors
|
|||||||
Me.TXT_FEED_CENTER_IMAGE.CaptionWidth = 50.0R
|
Me.TXT_FEED_CENTER_IMAGE.CaptionWidth = 50.0R
|
||||||
Me.TXT_FEED_CENTER_IMAGE.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_FEED_CENTER_IMAGE.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_FEED_CENTER_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_FEED_CENTER_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_FEED_CENTER_IMAGE.Lines = New String(-1) {}
|
|
||||||
Me.TXT_FEED_CENTER_IMAGE.Location = New System.Drawing.Point(4, 33)
|
Me.TXT_FEED_CENTER_IMAGE.Location = New System.Drawing.Point(4, 33)
|
||||||
Me.TXT_FEED_CENTER_IMAGE.Margin = New System.Windows.Forms.Padding(3, 3, 2, 3)
|
Me.TXT_FEED_CENTER_IMAGE.Margin = New System.Windows.Forms.Padding(3, 3, 2, 3)
|
||||||
Me.TXT_FEED_CENTER_IMAGE.Name = "TXT_FEED_CENTER_IMAGE"
|
Me.TXT_FEED_CENTER_IMAGE.Name = "TXT_FEED_CENTER_IMAGE"
|
||||||
@@ -1639,7 +1632,7 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.AutoSize = True
|
Me.CH_FEED_SHOW_FRIENDLY.AutoSize = True
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.CH_FEED_SHOW_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.Location = New System.Drawing.Point(4, 218)
|
Me.CH_FEED_SHOW_FRIENDLY.Location = New System.Drawing.Point(4, 221)
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.Name = "CH_FEED_SHOW_FRIENDLY"
|
Me.CH_FEED_SHOW_FRIENDLY.Name = "CH_FEED_SHOW_FRIENDLY"
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.Size = New System.Drawing.Size(568, 19)
|
Me.CH_FEED_SHOW_FRIENDLY.Size = New System.Drawing.Size(568, 19)
|
||||||
Me.CH_FEED_SHOW_FRIENDLY.TabIndex = 8
|
Me.CH_FEED_SHOW_FRIENDLY.TabIndex = 8
|
||||||
@@ -1651,7 +1644,7 @@ Namespace Editors
|
|||||||
TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN)
|
TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN)
|
||||||
TAB_NOTIFY.Location = New System.Drawing.Point(4, 22)
|
TAB_NOTIFY.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_NOTIFY.Name = "TAB_NOTIFY"
|
TAB_NOTIFY.Name = "TAB_NOTIFY"
|
||||||
TAB_NOTIFY.Size = New System.Drawing.Size(576, 372)
|
TAB_NOTIFY.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_NOTIFY.TabIndex = 8
|
TAB_NOTIFY.TabIndex = 8
|
||||||
TAB_NOTIFY.Text = "Notifications"
|
TAB_NOTIFY.Text = "Notifications"
|
||||||
'
|
'
|
||||||
@@ -1681,7 +1674,7 @@ Namespace Editors
|
|||||||
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_NOTIFY_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_NOTIFY_MAIN.Size = New System.Drawing.Size(576, 372)
|
TP_NOTIFY_MAIN.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_NOTIFY_MAIN.TabIndex = 0
|
TP_NOTIFY_MAIN.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TP_ENVIR
|
'TP_ENVIR
|
||||||
@@ -1704,25 +1697,24 @@ Namespace Editors
|
|||||||
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_ENVIR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_ENVIR.Size = New System.Drawing.Size(576, 372)
|
TP_ENVIR.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_ENVIR.TabIndex = 0
|
TP_ENVIR.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_YTDLP
|
'TXT_YTDLP
|
||||||
'
|
'
|
||||||
ActionButton13.BackgroundImage = CType(resources.GetObject("ActionButton13.BackgroundImage"), System.Drawing.Image)
|
ActionButton67.BackgroundImage = CType(resources.GetObject("ActionButton67.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton13.Name = "Open"
|
ActionButton67.Name = "Open"
|
||||||
ActionButton13.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton67.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton14.BackgroundImage = CType(resources.GetObject("ActionButton14.BackgroundImage"), System.Drawing.Image)
|
ActionButton68.BackgroundImage = CType(resources.GetObject("ActionButton68.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton14.Name = "Clear"
|
ActionButton68.Name = "Clear"
|
||||||
ActionButton14.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton68.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_YTDLP.Buttons.Add(ActionButton13)
|
Me.TXT_YTDLP.Buttons.Add(ActionButton67)
|
||||||
Me.TXT_YTDLP.Buttons.Add(ActionButton14)
|
Me.TXT_YTDLP.Buttons.Add(ActionButton68)
|
||||||
Me.TXT_YTDLP.CaptionText = "yt-dlp"
|
Me.TXT_YTDLP.CaptionText = "yt-dlp"
|
||||||
Me.TXT_YTDLP.CaptionToolTipEnabled = True
|
Me.TXT_YTDLP.CaptionToolTipEnabled = True
|
||||||
Me.TXT_YTDLP.CaptionToolTipText = "Path to yt-dlp.exe file"
|
Me.TXT_YTDLP.CaptionToolTipText = "Path to yt-dlp.exe file"
|
||||||
Me.TXT_YTDLP.CaptionWidth = 80.0R
|
Me.TXT_YTDLP.CaptionWidth = 80.0R
|
||||||
Me.TXT_YTDLP.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_YTDLP.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_YTDLP.Lines = New String(-1) {}
|
|
||||||
Me.TXT_YTDLP.Location = New System.Drawing.Point(4, 62)
|
Me.TXT_YTDLP.Location = New System.Drawing.Point(4, 62)
|
||||||
Me.TXT_YTDLP.Name = "TXT_YTDLP"
|
Me.TXT_YTDLP.Name = "TXT_YTDLP"
|
||||||
Me.TXT_YTDLP.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_YTDLP.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1731,20 +1723,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_FFMPEG
|
'TXT_FFMPEG
|
||||||
'
|
'
|
||||||
ActionButton15.BackgroundImage = CType(resources.GetObject("ActionButton15.BackgroundImage"), System.Drawing.Image)
|
ActionButton69.BackgroundImage = CType(resources.GetObject("ActionButton69.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton15.Name = "Open"
|
ActionButton69.Name = "Open"
|
||||||
ActionButton15.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton69.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton16.BackgroundImage = CType(resources.GetObject("ActionButton16.BackgroundImage"), System.Drawing.Image)
|
ActionButton70.BackgroundImage = CType(resources.GetObject("ActionButton70.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton16.Name = "Clear"
|
ActionButton70.Name = "Clear"
|
||||||
ActionButton16.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton70.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_FFMPEG.Buttons.Add(ActionButton15)
|
Me.TXT_FFMPEG.Buttons.Add(ActionButton69)
|
||||||
Me.TXT_FFMPEG.Buttons.Add(ActionButton16)
|
Me.TXT_FFMPEG.Buttons.Add(ActionButton70)
|
||||||
Me.TXT_FFMPEG.CaptionText = "ffmpeg"
|
Me.TXT_FFMPEG.CaptionText = "ffmpeg"
|
||||||
Me.TXT_FFMPEG.CaptionToolTipEnabled = True
|
Me.TXT_FFMPEG.CaptionToolTipEnabled = True
|
||||||
Me.TXT_FFMPEG.CaptionToolTipText = "Path to ffmpeg.exe file"
|
Me.TXT_FFMPEG.CaptionToolTipText = "Path to ffmpeg.exe file"
|
||||||
Me.TXT_FFMPEG.CaptionWidth = 80.0R
|
Me.TXT_FFMPEG.CaptionWidth = 80.0R
|
||||||
Me.TXT_FFMPEG.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_FFMPEG.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_FFMPEG.Lines = New String(-1) {}
|
|
||||||
Me.TXT_FFMPEG.Location = New System.Drawing.Point(4, 4)
|
Me.TXT_FFMPEG.Location = New System.Drawing.Point(4, 4)
|
||||||
Me.TXT_FFMPEG.Name = "TXT_FFMPEG"
|
Me.TXT_FFMPEG.Name = "TXT_FFMPEG"
|
||||||
Me.TXT_FFMPEG.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_FFMPEG.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1753,20 +1744,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_CURL
|
'TXT_CURL
|
||||||
'
|
'
|
||||||
ActionButton17.BackgroundImage = CType(resources.GetObject("ActionButton17.BackgroundImage"), System.Drawing.Image)
|
ActionButton71.BackgroundImage = CType(resources.GetObject("ActionButton71.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton17.Name = "Open"
|
ActionButton71.Name = "Open"
|
||||||
ActionButton17.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton71.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton18.BackgroundImage = CType(resources.GetObject("ActionButton18.BackgroundImage"), System.Drawing.Image)
|
ActionButton72.BackgroundImage = CType(resources.GetObject("ActionButton72.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton18.Name = "Clear"
|
ActionButton72.Name = "Clear"
|
||||||
ActionButton18.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton72.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_CURL.Buttons.Add(ActionButton17)
|
Me.TXT_CURL.Buttons.Add(ActionButton71)
|
||||||
Me.TXT_CURL.Buttons.Add(ActionButton18)
|
Me.TXT_CURL.Buttons.Add(ActionButton72)
|
||||||
Me.TXT_CURL.CaptionText = "cURL"
|
Me.TXT_CURL.CaptionText = "cURL"
|
||||||
Me.TXT_CURL.CaptionToolTipEnabled = True
|
Me.TXT_CURL.CaptionToolTipEnabled = True
|
||||||
Me.TXT_CURL.CaptionToolTipText = "Path to curl.exe file"
|
Me.TXT_CURL.CaptionToolTipText = "Path to curl.exe file"
|
||||||
Me.TXT_CURL.CaptionWidth = 80.0R
|
Me.TXT_CURL.CaptionWidth = 80.0R
|
||||||
Me.TXT_CURL.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CURL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CURL.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CURL.Location = New System.Drawing.Point(4, 33)
|
Me.TXT_CURL.Location = New System.Drawing.Point(4, 33)
|
||||||
Me.TXT_CURL.Name = "TXT_CURL"
|
Me.TXT_CURL.Name = "TXT_CURL"
|
||||||
Me.TXT_CURL.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_CURL.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1775,19 +1765,18 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_GALLERYDL
|
'TXT_GALLERYDL
|
||||||
'
|
'
|
||||||
ActionButton19.BackgroundImage = CType(resources.GetObject("ActionButton19.BackgroundImage"), System.Drawing.Image)
|
ActionButton73.BackgroundImage = CType(resources.GetObject("ActionButton73.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton19.Name = "Open"
|
ActionButton73.Name = "Open"
|
||||||
ActionButton19.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton73.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton20.BackgroundImage = CType(resources.GetObject("ActionButton20.BackgroundImage"), System.Drawing.Image)
|
ActionButton74.BackgroundImage = CType(resources.GetObject("ActionButton74.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton20.Name = "Clear"
|
ActionButton74.Name = "Clear"
|
||||||
ActionButton20.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton74.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_GALLERYDL.Buttons.Add(ActionButton19)
|
Me.TXT_GALLERYDL.Buttons.Add(ActionButton73)
|
||||||
Me.TXT_GALLERYDL.Buttons.Add(ActionButton20)
|
Me.TXT_GALLERYDL.Buttons.Add(ActionButton74)
|
||||||
Me.TXT_GALLERYDL.CaptionText = "gallery-dl"
|
Me.TXT_GALLERYDL.CaptionText = "gallery-dl"
|
||||||
Me.TXT_GALLERYDL.CaptionToolTipText = "Path to gallery-dl.exe file"
|
Me.TXT_GALLERYDL.CaptionToolTipText = "Path to gallery-dl.exe file"
|
||||||
Me.TXT_GALLERYDL.CaptionWidth = 80.0R
|
Me.TXT_GALLERYDL.CaptionWidth = 80.0R
|
||||||
Me.TXT_GALLERYDL.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_GALLERYDL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_GALLERYDL.Lines = New String(-1) {}
|
|
||||||
Me.TXT_GALLERYDL.Location = New System.Drawing.Point(4, 91)
|
Me.TXT_GALLERYDL.Location = New System.Drawing.Point(4, 91)
|
||||||
Me.TXT_GALLERYDL.Name = "TXT_GALLERYDL"
|
Me.TXT_GALLERYDL.Name = "TXT_GALLERYDL"
|
||||||
Me.TXT_GALLERYDL.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_GALLERYDL.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1796,20 +1785,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_CMD_ENCODING
|
'TXT_CMD_ENCODING
|
||||||
'
|
'
|
||||||
ActionButton21.BackgroundImage = CType(resources.GetObject("ActionButton21.BackgroundImage"), System.Drawing.Image)
|
ActionButton75.BackgroundImage = CType(resources.GetObject("ActionButton75.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton21.Name = "Refresh"
|
ActionButton75.Name = "Refresh"
|
||||||
ActionButton21.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton75.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton22.BackgroundImage = CType(resources.GetObject("ActionButton22.BackgroundImage"), System.Drawing.Image)
|
ActionButton76.BackgroundImage = CType(resources.GetObject("ActionButton76.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton22.Name = "Clear"
|
ActionButton76.Name = "Clear"
|
||||||
ActionButton22.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton76.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton21)
|
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton75)
|
||||||
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton22)
|
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton76)
|
||||||
Me.TXT_CMD_ENCODING.CaptionText = "CMD Encoding"
|
Me.TXT_CMD_ENCODING.CaptionText = "CMD Encoding"
|
||||||
Me.TXT_CMD_ENCODING.CaptionToolTipEnabled = True
|
Me.TXT_CMD_ENCODING.CaptionToolTipEnabled = True
|
||||||
Me.TXT_CMD_ENCODING.CaptionToolTipText = "Command line encoding"
|
Me.TXT_CMD_ENCODING.CaptionToolTipText = "Command line encoding"
|
||||||
Me.TXT_CMD_ENCODING.CaptionWidth = 80.0R
|
Me.TXT_CMD_ENCODING.CaptionWidth = 80.0R
|
||||||
Me.TXT_CMD_ENCODING.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_CMD_ENCODING.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_CMD_ENCODING.Lines = New String(-1) {}
|
|
||||||
Me.TXT_CMD_ENCODING.Location = New System.Drawing.Point(4, 120)
|
Me.TXT_CMD_ENCODING.Location = New System.Drawing.Point(4, 120)
|
||||||
Me.TXT_CMD_ENCODING.Name = "TXT_CMD_ENCODING"
|
Me.TXT_CMD_ENCODING.Name = "TXT_CMD_ENCODING"
|
||||||
Me.TXT_CMD_ENCODING.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_CMD_ENCODING.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1820,7 +1808,7 @@ Namespace Editors
|
|||||||
TAB_STD.Controls.Add(TP_STD)
|
TAB_STD.Controls.Add(TP_STD)
|
||||||
TAB_STD.Location = New System.Drawing.Point(4, 22)
|
TAB_STD.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_STD.Name = "TAB_STD"
|
TAB_STD.Name = "TAB_STD"
|
||||||
TAB_STD.Size = New System.Drawing.Size(576, 372)
|
TAB_STD.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_STD.TabIndex = 10
|
TAB_STD.TabIndex = 10
|
||||||
TAB_STD.Text = "Downloader"
|
TAB_STD.Text = "Downloader"
|
||||||
'
|
'
|
||||||
@@ -1839,13 +1827,14 @@ Namespace Editors
|
|||||||
TP_STD.Controls.Add(Me.CH_STD_YT_REMOVE, 0, 9)
|
TP_STD.Controls.Add(Me.CH_STD_YT_REMOVE, 0, 9)
|
||||||
TP_STD.Controls.Add(Me.CH_STD_YT_OUTPUT_ASK_NAME, 0, 10)
|
TP_STD.Controls.Add(Me.CH_STD_YT_OUTPUT_ASK_NAME, 0, 10)
|
||||||
TP_STD.Controls.Add(Me.CH_STD_YT_OUTPUT_AUTO_ADD, 0, 11)
|
TP_STD.Controls.Add(Me.CH_STD_YT_OUTPUT_AUTO_ADD, 0, 11)
|
||||||
TP_STD.Controls.Add(Me.BTT_RESET_DOWNLOAD_LOCATIONS, 0, 12)
|
TP_STD.Controls.Add(Me.BTT_RESET_DOWNLOAD_LOCATIONS, 0, 13)
|
||||||
TP_STD.Controls.Add(Me.CH_STD_SNAP_KEEP_WITH_FILES, 0, 5)
|
TP_STD.Controls.Add(Me.CH_STD_SNAP_KEEP_WITH_FILES, 0, 5)
|
||||||
TP_STD.Controls.Add(Me.CH_STD_SNAP_CACHE_PERMANENT, 0, 6)
|
TP_STD.Controls.Add(Me.CH_STD_SNAP_CACHE_PERMANENT, 0, 6)
|
||||||
|
TP_STD.Controls.Add(Me.CH_STD_YT_CREATE_URL, 0, 12)
|
||||||
TP_STD.Dock = System.Windows.Forms.DockStyle.Fill
|
TP_STD.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
TP_STD.Location = New System.Drawing.Point(0, 0)
|
TP_STD.Location = New System.Drawing.Point(0, 0)
|
||||||
TP_STD.Name = "TP_STD"
|
TP_STD.Name = "TP_STD"
|
||||||
TP_STD.RowCount = 14
|
TP_STD.RowCount = 15
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
@@ -1858,9 +1847,10 @@ Namespace Editors
|
|||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_STD.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_STD.Size = New System.Drawing.Size(576, 372)
|
TP_STD.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_STD.TabIndex = 0
|
TP_STD.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_STD_MAX_JOBS_COUNT
|
'TXT_STD_MAX_JOBS_COUNT
|
||||||
@@ -1870,7 +1860,6 @@ Namespace Editors
|
|||||||
Me.TXT_STD_MAX_JOBS_COUNT.CaptionToolTipText = "Maximum number of jobs"
|
Me.TXT_STD_MAX_JOBS_COUNT.CaptionToolTipText = "Maximum number of jobs"
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
Me.TXT_STD_MAX_JOBS_COUNT.ControlMode = PersonalUtilities.Forms.Controls.TextBoxExtended.ControlModes.NumericUpDown
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_STD_MAX_JOBS_COUNT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.Location = New System.Drawing.Point(4, 4)
|
Me.TXT_STD_MAX_JOBS_COUNT.Location = New System.Drawing.Point(4, 4)
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.Name = "TXT_STD_MAX_JOBS_COUNT"
|
Me.TXT_STD_MAX_JOBS_COUNT.Name = "TXT_STD_MAX_JOBS_COUNT"
|
||||||
Me.TXT_STD_MAX_JOBS_COUNT.NumberMaximum = New Decimal(New Integer() {10, 0, 0, 0})
|
Me.TXT_STD_MAX_JOBS_COUNT.NumberMaximum = New Decimal(New Integer() {10, 0, 0, 0})
|
||||||
@@ -1906,26 +1895,25 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'CMB_STD_OPEN_DBL
|
'CMB_STD_OPEN_DBL
|
||||||
'
|
'
|
||||||
ActionButton23.BackgroundImage = CType(resources.GetObject("ActionButton23.BackgroundImage"), System.Drawing.Image)
|
ActionButton77.BackgroundImage = CType(resources.GetObject("ActionButton77.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton23.Name = "ArrowDown"
|
ActionButton77.Name = "ArrowDown"
|
||||||
ActionButton23.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
ActionButton77.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
||||||
Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton23)
|
Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton77)
|
||||||
Me.CMB_STD_OPEN_DBL.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.Label
|
Me.CMB_STD_OPEN_DBL.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.Label
|
||||||
Me.CMB_STD_OPEN_DBL.CaptionText = "DoubleClick opens"
|
Me.CMB_STD_OPEN_DBL.CaptionText = "DoubleClick opens"
|
||||||
Me.CMB_STD_OPEN_DBL.CaptionToolTipEnabled = True
|
Me.CMB_STD_OPEN_DBL.CaptionToolTipEnabled = True
|
||||||
Me.CMB_STD_OPEN_DBL.CaptionToolTipText = "What do you want to open when you double click on an item"
|
Me.CMB_STD_OPEN_DBL.CaptionToolTipText = "What do you want to open when you double click on an item"
|
||||||
Me.CMB_STD_OPEN_DBL.CaptionVisible = True
|
Me.CMB_STD_OPEN_DBL.CaptionVisible = True
|
||||||
ListColumn1.DisplayMember = True
|
ListColumn5.DisplayMember = True
|
||||||
ListColumn1.Name = "STD_CMB_COL_TEXT"
|
ListColumn5.Name = "STD_CMB_COL_TEXT"
|
||||||
ListColumn1.Text = "Text"
|
ListColumn5.Text = "Text"
|
||||||
ListColumn2.Name = "STD_CMB_COL_VALUE"
|
ListColumn6.Name = "STD_CMB_COL_VALUE"
|
||||||
ListColumn2.Text = "Value"
|
ListColumn6.Text = "Value"
|
||||||
ListColumn2.ValueMember = True
|
ListColumn6.ValueMember = True
|
||||||
ListColumn2.Visible = False
|
ListColumn6.Visible = False
|
||||||
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn1)
|
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn5)
|
||||||
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn2)
|
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn6)
|
||||||
Me.CMB_STD_OPEN_DBL.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.CMB_STD_OPEN_DBL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CMB_STD_OPEN_DBL.Lines = New String(-1) {}
|
|
||||||
Me.CMB_STD_OPEN_DBL.Location = New System.Drawing.Point(4, 85)
|
Me.CMB_STD_OPEN_DBL.Location = New System.Drawing.Point(4, 85)
|
||||||
Me.CMB_STD_OPEN_DBL.Name = "CMB_STD_OPEN_DBL"
|
Me.CMB_STD_OPEN_DBL.Name = "CMB_STD_OPEN_DBL"
|
||||||
Me.CMB_STD_OPEN_DBL.Size = New System.Drawing.Size(568, 22)
|
Me.CMB_STD_OPEN_DBL.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -1961,7 +1949,7 @@ Namespace Editors
|
|||||||
TAB_DESIGN.Controls.Add(TP_DESIGN)
|
TAB_DESIGN.Controls.Add(TP_DESIGN)
|
||||||
TAB_DESIGN.Location = New System.Drawing.Point(4, 22)
|
TAB_DESIGN.Location = New System.Drawing.Point(4, 22)
|
||||||
TAB_DESIGN.Name = "TAB_DESIGN"
|
TAB_DESIGN.Name = "TAB_DESIGN"
|
||||||
TAB_DESIGN.Size = New System.Drawing.Size(576, 372)
|
TAB_DESIGN.Size = New System.Drawing.Size(576, 374)
|
||||||
TAB_DESIGN.TabIndex = 11
|
TAB_DESIGN.TabIndex = 11
|
||||||
TAB_DESIGN.Text = "Design"
|
TAB_DESIGN.Text = "Design"
|
||||||
'
|
'
|
||||||
@@ -1987,20 +1975,19 @@ Namespace Editors
|
|||||||
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
TP_DESIGN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
TP_DESIGN.Size = New System.Drawing.Size(576, 372)
|
TP_DESIGN.Size = New System.Drawing.Size(576, 374)
|
||||||
TP_DESIGN.TabIndex = 0
|
TP_DESIGN.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TXT_PRG_TITLE
|
'TXT_PRG_TITLE
|
||||||
'
|
'
|
||||||
ActionButton24.BackgroundImage = CType(resources.GetObject("ActionButton24.BackgroundImage"), System.Drawing.Image)
|
ActionButton78.BackgroundImage = CType(resources.GetObject("ActionButton78.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton24.Name = "Clear"
|
ActionButton78.Name = "Clear"
|
||||||
ActionButton24.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton78.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_PRG_TITLE.Buttons.Add(ActionButton24)
|
Me.TXT_PRG_TITLE.Buttons.Add(ActionButton78)
|
||||||
Me.TXT_PRG_TITLE.CaptionText = "Program title"
|
Me.TXT_PRG_TITLE.CaptionText = "Program title"
|
||||||
Me.TXT_PRG_TITLE.CaptionToolTipEnabled = True
|
Me.TXT_PRG_TITLE.CaptionToolTipEnabled = True
|
||||||
Me.TXT_PRG_TITLE.CaptionToolTipText = "Change the title of the main window if you need to"
|
Me.TXT_PRG_TITLE.CaptionToolTipText = "Change the title of the main window if you need to"
|
||||||
Me.TXT_PRG_TITLE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_PRG_TITLE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_PRG_TITLE.Lines = New String(-1) {}
|
|
||||||
Me.TXT_PRG_TITLE.Location = New System.Drawing.Point(4, 4)
|
Me.TXT_PRG_TITLE.Location = New System.Drawing.Point(4, 4)
|
||||||
Me.TXT_PRG_TITLE.Name = "TXT_PRG_TITLE"
|
Me.TXT_PRG_TITLE.Name = "TXT_PRG_TITLE"
|
||||||
Me.TXT_PRG_TITLE.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_PRG_TITLE.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -2008,15 +1995,14 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_PRG_DESCR
|
'TXT_PRG_DESCR
|
||||||
'
|
'
|
||||||
ActionButton25.BackgroundImage = CType(resources.GetObject("ActionButton25.BackgroundImage"), System.Drawing.Image)
|
ActionButton79.BackgroundImage = CType(resources.GetObject("ActionButton79.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton25.Name = "Clear"
|
ActionButton79.Name = "Clear"
|
||||||
ActionButton25.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton79.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_PRG_DESCR.Buttons.Add(ActionButton25)
|
Me.TXT_PRG_DESCR.Buttons.Add(ActionButton79)
|
||||||
Me.TXT_PRG_DESCR.CaptionText = "Program description"
|
Me.TXT_PRG_DESCR.CaptionText = "Program description"
|
||||||
Me.TXT_PRG_DESCR.CaptionToolTipEnabled = True
|
Me.TXT_PRG_DESCR.CaptionToolTipEnabled = True
|
||||||
Me.TXT_PRG_DESCR.CaptionToolTipText = "Add some additional info to the program info if you need"
|
Me.TXT_PRG_DESCR.CaptionToolTipText = "Add some additional info to the program info if you need"
|
||||||
Me.TXT_PRG_DESCR.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_PRG_DESCR.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_PRG_DESCR.Lines = New String(-1) {}
|
|
||||||
Me.TXT_PRG_DESCR.Location = New System.Drawing.Point(4, 33)
|
Me.TXT_PRG_DESCR.Location = New System.Drawing.Point(4, 33)
|
||||||
Me.TXT_PRG_DESCR.Name = "TXT_PRG_DESCR"
|
Me.TXT_PRG_DESCR.Name = "TXT_PRG_DESCR"
|
||||||
Me.TXT_PRG_DESCR.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_PRG_DESCR.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -2024,19 +2010,18 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_USER_LIST_IMAGE
|
'TXT_USER_LIST_IMAGE
|
||||||
'
|
'
|
||||||
ActionButton26.BackgroundImage = CType(resources.GetObject("ActionButton26.BackgroundImage"), System.Drawing.Image)
|
ActionButton80.BackgroundImage = CType(resources.GetObject("ActionButton80.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton26.Name = "Open"
|
ActionButton80.Name = "Open"
|
||||||
ActionButton26.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton80.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton27.BackgroundImage = CType(resources.GetObject("ActionButton27.BackgroundImage"), System.Drawing.Image)
|
ActionButton81.BackgroundImage = CType(resources.GetObject("ActionButton81.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton27.Name = "Clear"
|
ActionButton81.Name = "Clear"
|
||||||
ActionButton27.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton81.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton26)
|
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton80)
|
||||||
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton27)
|
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton81)
|
||||||
Me.TXT_USER_LIST_IMAGE.CaptionText = "Userlist image"
|
Me.TXT_USER_LIST_IMAGE.CaptionText = "Userlist image"
|
||||||
Me.TXT_USER_LIST_IMAGE.CaptionToolTipEnabled = True
|
Me.TXT_USER_LIST_IMAGE.CaptionToolTipEnabled = True
|
||||||
Me.TXT_USER_LIST_IMAGE.CaptionToolTipText = "Background image for user list"
|
Me.TXT_USER_LIST_IMAGE.CaptionToolTipText = "Background image for user list"
|
||||||
Me.TXT_USER_LIST_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_USER_LIST_IMAGE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_USER_LIST_IMAGE.Lines = New String(-1) {}
|
|
||||||
Me.TXT_USER_LIST_IMAGE.Location = New System.Drawing.Point(4, 62)
|
Me.TXT_USER_LIST_IMAGE.Location = New System.Drawing.Point(4, 62)
|
||||||
Me.TXT_USER_LIST_IMAGE.Name = "TXT_USER_LIST_IMAGE"
|
Me.TXT_USER_LIST_IMAGE.Name = "TXT_USER_LIST_IMAGE"
|
||||||
Me.TXT_USER_LIST_IMAGE.Size = New System.Drawing.Size(568, 22)
|
Me.TXT_USER_LIST_IMAGE.Size = New System.Drawing.Size(568, 22)
|
||||||
@@ -2096,7 +2081,7 @@ Namespace Editors
|
|||||||
Me.TAB_MAIN.Location = New System.Drawing.Point(0, 0)
|
Me.TAB_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.TAB_MAIN.Name = "TAB_MAIN"
|
Me.TAB_MAIN.Name = "TAB_MAIN"
|
||||||
Me.TAB_MAIN.SelectedIndex = 0
|
Me.TAB_MAIN.SelectedIndex = 0
|
||||||
Me.TAB_MAIN.Size = New System.Drawing.Size(584, 398)
|
Me.TAB_MAIN.Size = New System.Drawing.Size(584, 400)
|
||||||
Me.TAB_MAIN.TabIndex = 1
|
Me.TAB_MAIN.TabIndex = 1
|
||||||
'
|
'
|
||||||
'TAB_ENVIR
|
'TAB_ENVIR
|
||||||
@@ -2104,7 +2089,7 @@ Namespace Editors
|
|||||||
Me.TAB_ENVIR.Controls.Add(TP_ENVIR)
|
Me.TAB_ENVIR.Controls.Add(TP_ENVIR)
|
||||||
Me.TAB_ENVIR.Location = New System.Drawing.Point(4, 22)
|
Me.TAB_ENVIR.Location = New System.Drawing.Point(4, 22)
|
||||||
Me.TAB_ENVIR.Name = "TAB_ENVIR"
|
Me.TAB_ENVIR.Name = "TAB_ENVIR"
|
||||||
Me.TAB_ENVIR.Size = New System.Drawing.Size(576, 372)
|
Me.TAB_ENVIR.Size = New System.Drawing.Size(576, 374)
|
||||||
Me.TAB_ENVIR.TabIndex = 9
|
Me.TAB_ENVIR.TabIndex = 9
|
||||||
Me.TAB_ENVIR.Text = "Environment"
|
Me.TAB_ENVIR.Text = "Environment"
|
||||||
'
|
'
|
||||||
@@ -2114,29 +2099,42 @@ Namespace Editors
|
|||||||
'CONTAINER_MAIN.ContentPanel
|
'CONTAINER_MAIN.ContentPanel
|
||||||
'
|
'
|
||||||
Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TAB_MAIN)
|
Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TAB_MAIN)
|
||||||
Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 398)
|
Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(584, 400)
|
||||||
Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
|
Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
|
||||||
Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
|
Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN"
|
Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN"
|
||||||
Me.CONTAINER_MAIN.RightToolStripPanelVisible = False
|
Me.CONTAINER_MAIN.RightToolStripPanelVisible = False
|
||||||
Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 398)
|
Me.CONTAINER_MAIN.Size = New System.Drawing.Size(584, 425)
|
||||||
Me.CONTAINER_MAIN.TabIndex = 0
|
Me.CONTAINER_MAIN.TabIndex = 0
|
||||||
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
|
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
|
||||||
'
|
'
|
||||||
|
'CH_STD_YT_CREATE_URL
|
||||||
|
'
|
||||||
|
Me.CH_STD_YT_CREATE_URL.AutoSize = True
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Location = New System.Drawing.Point(4, 322)
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Name = "CH_STD_YT_CREATE_URL"
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Padding = New System.Windows.Forms.Padding(100, 0, 0, 0)
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Size = New System.Drawing.Size(568, 19)
|
||||||
|
Me.CH_STD_YT_CREATE_URL.TabIndex = 12
|
||||||
|
Me.CH_STD_YT_CREATE_URL.Text = "Create URL files"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_STD_YT_CREATE_URL, "Create local URL files to link to the original page")
|
||||||
|
Me.CH_STD_YT_CREATE_URL.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'GlobalSettingsForm
|
'GlobalSettingsForm
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(584, 398)
|
Me.ClientSize = New System.Drawing.Size(584, 425)
|
||||||
Me.Controls.Add(Me.CONTAINER_MAIN)
|
Me.Controls.Add(Me.CONTAINER_MAIN)
|
||||||
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
|
||||||
Me.Icon = Global.SCrawler.My.Resources.Resources.SettingsIcon_48
|
Me.Icon = Global.SCrawler.My.Resources.Resources.SettingsIcon_48
|
||||||
Me.KeyPreview = True
|
Me.KeyPreview = True
|
||||||
Me.MaximizeBox = False
|
Me.MaximizeBox = False
|
||||||
Me.MaximumSize = New System.Drawing.Size(600, 437)
|
Me.MaximumSize = New System.Drawing.Size(600, 464)
|
||||||
Me.MinimizeBox = False
|
Me.MinimizeBox = False
|
||||||
Me.MinimumSize = New System.Drawing.Size(600, 437)
|
Me.MinimumSize = New System.Drawing.Size(600, 464)
|
||||||
Me.Name = "GlobalSettingsForm"
|
Me.Name = "GlobalSettingsForm"
|
||||||
Me.ShowInTaskbar = False
|
Me.ShowInTaskbar = False
|
||||||
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
|
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
|
||||||
@@ -2189,6 +2187,7 @@ Namespace Editors
|
|||||||
TP_FEED_IMG_COUNT.ResumeLayout(False)
|
TP_FEED_IMG_COUNT.ResumeLayout(False)
|
||||||
CType(Me.TXT_FEED_ROWS, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TXT_FEED_ROWS, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.TXT_FEED_COLUMNS, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TXT_FEED_COLUMNS, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.NUM_FEED_STORE_SESSION_DATA, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.TXT_FEED_CENTER_IMAGE, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.TXT_FEED_CENTER_IMAGE, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
TAB_NOTIFY.ResumeLayout(False)
|
TAB_NOTIFY.ResumeLayout(False)
|
||||||
TP_NOTIFY_MAIN.ResumeLayout(False)
|
TP_NOTIFY_MAIN.ResumeLayout(False)
|
||||||
@@ -2268,7 +2267,7 @@ Namespace Editors
|
|||||||
Private WithEvents CH_FEED_ENDLESS As CheckBox
|
Private WithEvents CH_FEED_ENDLESS As CheckBox
|
||||||
Private WithEvents CH_FEED_ADD_SESSION As CheckBox
|
Private WithEvents CH_FEED_ADD_SESSION As CheckBox
|
||||||
Private WithEvents CH_FEED_ADD_DATE As CheckBox
|
Private WithEvents CH_FEED_ADD_DATE As CheckBox
|
||||||
Private WithEvents CH_FEED_STORE_SESSION_DATA As CheckBox
|
Private WithEvents NUM_FEED_STORE_SESSION_DATA As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
Private WithEvents CH_NOTIFY_SILENT As CheckBox
|
Private WithEvents CH_NOTIFY_SILENT As CheckBox
|
||||||
Private WithEvents CH_NOTIFY_SAVED_POSTS As CheckBox
|
Private WithEvents CH_NOTIFY_SAVED_POSTS As CheckBox
|
||||||
Private WithEvents CH_NOTIFY_PROFILES As CheckBox
|
Private WithEvents CH_NOTIFY_PROFILES As CheckBox
|
||||||
@@ -2310,5 +2309,6 @@ Namespace Editors
|
|||||||
Private WithEvents TXT_PRG_DESCR As PersonalUtilities.Forms.Controls.TextBoxExtended
|
Private WithEvents TXT_PRG_DESCR As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
Private WithEvents CH_FEED_SHOW_FRIENDLY As CheckBox
|
Private WithEvents CH_FEED_SHOW_FRIENDLY As CheckBox
|
||||||
Private WithEvents COLORS_SUBSCRIPTIONS_USERS As ColorPicker
|
Private WithEvents COLORS_SUBSCRIPTIONS_USERS As ColorPicker
|
||||||
|
Private WithEvents CH_STD_YT_CREATE_URL As CheckBox
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="ActionButton1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton55.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton2.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton56.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<metadata name="TP_IMAGES.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_IMAGES.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton3.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton57.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton58.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton59.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton6.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton60.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
<metadata name="TT_MAIN.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TT_MAIN.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton7.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton61.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -213,7 +213,7 @@
|
|||||||
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton8.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton62.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -230,6 +230,15 @@
|
|||||||
<metadata name="LBL_DATE_POS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="LBL_DATE_POS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="LBL_DATE_POS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TT_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TT_MAIN.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
<data name="CH_SEPARATE_VIDEO_FOLDER.ToolTip" xml:space="preserve">
|
<data name="CH_SEPARATE_VIDEO_FOLDER.ToolTip" xml:space="preserve">
|
||||||
<value>This is a global setting for newly added users only.
|
<value>This is a global setting for newly added users only.
|
||||||
This parameter specifies how the video will be stored in the users' download path.
|
This parameter specifies how the video will be stored in the users' download path.
|
||||||
@@ -269,7 +278,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_BEHAVIOR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_BEHAVIOR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton9.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton63.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -277,7 +286,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton10.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton64.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -297,7 +306,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_DOWNLOADING.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_DOWNLOADING.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton11.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton65.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -308,7 +317,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton12.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton66.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -337,7 +346,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_ENVIR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_ENVIR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton13.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton67.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -348,7 +357,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton14.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton68.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -356,7 +365,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton15.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton69.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -367,7 +376,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton16.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton70.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -375,7 +384,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton17.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton71.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -386,7 +395,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton18.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton72.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -394,7 +403,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton19.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton73.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -405,7 +414,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton20.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton74.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -413,7 +422,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton21.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton75.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -429,7 +438,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton22.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton76.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -443,7 +452,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_STD.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_STD.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton23.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton77.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAE65JREFUeF7t
|
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABGdBTUEAALGPC/xhBQAAE65JREFUeF7t
|
||||||
3X2sJWddB/DdLi2lQG2hdOHuvfM887J7Cxca4ELTQMDWKigIFpBAEAgi9g+CJpJo9Q8NJhgBiYZIYspL
|
3X2sJWddB/DdLi2lQG2hdOHuvfM887J7Cxca4ELTQMDWKigIFpBAEAgi9g+CJpJo9Q8NJhgBiYZIYspL
|
||||||
@@ -539,7 +548,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_DESIGN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_DESIGN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton24.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton78.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -547,7 +556,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton25.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton79.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -555,7 +564,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton26.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton80.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -566,7 +575,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton27.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton81.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ Namespace Editors
|
|||||||
CH_STD_YT_REMOVE.Checked = .STDownloader_RemoveYTVideosOnClear
|
CH_STD_YT_REMOVE.Checked = .STDownloader_RemoveYTVideosOnClear
|
||||||
CH_STD_YT_OUTPUT_ASK_NAME.Checked = .STDownloader_OutputPathAskForName
|
CH_STD_YT_OUTPUT_ASK_NAME.Checked = .STDownloader_OutputPathAskForName
|
||||||
CH_STD_YT_OUTPUT_AUTO_ADD.Checked = .STDownloader_OutputPathAutoAddPaths
|
CH_STD_YT_OUTPUT_AUTO_ADD.Checked = .STDownloader_OutputPathAutoAddPaths
|
||||||
|
CH_STD_YT_CREATE_URL.Checked = .STDownloader_CreateUrlFiles
|
||||||
'Downloading
|
'Downloading
|
||||||
CH_UDESCR_UP.Checked = .UpdateUserDescriptionEveryTime
|
CH_UDESCR_UP.Checked = .UpdateUserDescriptionEveryTime
|
||||||
CH_UNAME_UP.Checked = .UserSiteNameUpdateEveryTime
|
CH_UNAME_UP.Checked = .UserSiteNameUpdateEveryTime
|
||||||
@@ -135,7 +136,8 @@ Namespace Editors
|
|||||||
CH_FEED_ENDLESS.Checked = .FeedEndless
|
CH_FEED_ENDLESS.Checked = .FeedEndless
|
||||||
CH_FEED_ADD_SESSION.Checked = .FeedAddSessionToCaption
|
CH_FEED_ADD_SESSION.Checked = .FeedAddSessionToCaption
|
||||||
CH_FEED_ADD_DATE.Checked = .FeedAddDateToCaption
|
CH_FEED_ADD_DATE.Checked = .FeedAddDateToCaption
|
||||||
CH_FEED_STORE_SESSION_DATA.Checked = .FeedStoreSessionsData
|
NUM_FEED_STORE_SESSION_DATA.Checked = .FeedStoreSessionsData
|
||||||
|
NUM_FEED_STORE_SESSION_DATA.Value = .FeedStoredSessionsNumber.Value
|
||||||
CH_FEED_OPEN_LAST_MODE.Checked = .FeedOpenLastMode
|
CH_FEED_OPEN_LAST_MODE.Checked = .FeedOpenLastMode
|
||||||
CH_FEED_SHOW_FRIENDLY.Checked = .FeedShowFriendlyNames
|
CH_FEED_SHOW_FRIENDLY.Checked = .FeedShowFriendlyNames
|
||||||
End With
|
End With
|
||||||
@@ -264,6 +266,7 @@ Namespace Editors
|
|||||||
.STDownloader_RemoveYTVideosOnClear.Value = CH_STD_YT_REMOVE.Checked
|
.STDownloader_RemoveYTVideosOnClear.Value = CH_STD_YT_REMOVE.Checked
|
||||||
.STDownloader_OutputPathAskForName.Value = CH_STD_YT_OUTPUT_ASK_NAME.Checked
|
.STDownloader_OutputPathAskForName.Value = CH_STD_YT_OUTPUT_ASK_NAME.Checked
|
||||||
.STDownloader_OutputPathAutoAddPaths.Value = CH_STD_YT_OUTPUT_AUTO_ADD.Checked
|
.STDownloader_OutputPathAutoAddPaths.Value = CH_STD_YT_OUTPUT_AUTO_ADD.Checked
|
||||||
|
.STDownloader_CreateUrlFiles.Value = CH_STD_YT_CREATE_URL.Checked
|
||||||
'Downloading
|
'Downloading
|
||||||
.UpdateUserDescriptionEveryTime.Value = CH_UDESCR_UP.Checked
|
.UpdateUserDescriptionEveryTime.Value = CH_UDESCR_UP.Checked
|
||||||
.UserSiteNameUpdateEveryTime.Value = CH_UNAME_UP.Checked
|
.UserSiteNameUpdateEveryTime.Value = CH_UNAME_UP.Checked
|
||||||
@@ -303,7 +306,8 @@ Namespace Editors
|
|||||||
.FeedEndless.Value = CH_FEED_ENDLESS.Checked
|
.FeedEndless.Value = CH_FEED_ENDLESS.Checked
|
||||||
.FeedAddSessionToCaption.Value = CH_FEED_ADD_SESSION.Checked
|
.FeedAddSessionToCaption.Value = CH_FEED_ADD_SESSION.Checked
|
||||||
.FeedAddDateToCaption.Value = CH_FEED_ADD_DATE.Checked
|
.FeedAddDateToCaption.Value = CH_FEED_ADD_DATE.Checked
|
||||||
.FeedStoreSessionsData.Value = CH_FEED_STORE_SESSION_DATA.Checked
|
.FeedStoreSessionsData.Value = NUM_FEED_STORE_SESSION_DATA.Checked
|
||||||
|
.FeedStoredSessionsNumber.Value = NUM_FEED_STORE_SESSION_DATA.Value
|
||||||
.FeedOpenLastMode.Value = CH_FEED_OPEN_LAST_MODE.Checked
|
.FeedOpenLastMode.Value = CH_FEED_OPEN_LAST_MODE.Checked
|
||||||
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
|
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
|
||||||
FeedParametersChanged = .FeedDataRows.ChangesDetected Or .FeedDataColumns.ChangesDetected Or
|
FeedParametersChanged = .FeedDataRows.ChangesDetected Or .FeedDataColumns.ChangesDetected Or
|
||||||
|
|||||||
7
SCrawler/Editors/UserCreatorForm.Designer.vb
generated
7
SCrawler/Editors/UserCreatorForm.Designer.vb
generated
@@ -174,7 +174,6 @@ Namespace Editors
|
|||||||
Me.TXT_USER.CaptionToolTipEnabled = True
|
Me.TXT_USER.CaptionToolTipEnabled = True
|
||||||
Me.TXT_USER.CaptionToolTipText = "You must enter the user's URL in this field."
|
Me.TXT_USER.CaptionToolTipText = "You must enter the user's URL in this field."
|
||||||
Me.TXT_USER.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_USER.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_USER.Lines = New String(-1) {}
|
|
||||||
Me.TXT_USER.Location = New System.Drawing.Point(4, 4)
|
Me.TXT_USER.Location = New System.Drawing.Point(4, 4)
|
||||||
Me.TXT_USER.Name = "TXT_USER"
|
Me.TXT_USER.Name = "TXT_USER"
|
||||||
Me.TXT_USER.PlaceholderEnabled = True
|
Me.TXT_USER.PlaceholderEnabled = True
|
||||||
@@ -225,7 +224,6 @@ Namespace Editors
|
|||||||
Me.CMB_SITE.Columns.Add(ListColumn1)
|
Me.CMB_SITE.Columns.Add(ListColumn1)
|
||||||
Me.CMB_SITE.Columns.Add(ListColumn2)
|
Me.CMB_SITE.Columns.Add(ListColumn2)
|
||||||
Me.CMB_SITE.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.CMB_SITE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CMB_SITE.Lines = New String(-1) {}
|
|
||||||
Me.CMB_SITE.Location = New System.Drawing.Point(0, 3)
|
Me.CMB_SITE.Location = New System.Drawing.Point(0, 3)
|
||||||
Me.CMB_SITE.Margin = New System.Windows.Forms.Padding(0, 3, 3, 3)
|
Me.CMB_SITE.Margin = New System.Windows.Forms.Padding(0, 3, 3, 3)
|
||||||
Me.CMB_SITE.Name = "CMB_SITE"
|
Me.CMB_SITE.Name = "CMB_SITE"
|
||||||
@@ -303,7 +301,6 @@ Namespace Editors
|
|||||||
Me.TXT_DESCR.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_DESCR.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_DESCR.GroupBoxed = True
|
Me.TXT_DESCR.GroupBoxed = True
|
||||||
Me.TXT_DESCR.GroupBoxText = "Description"
|
Me.TXT_DESCR.GroupBoxText = "Description"
|
||||||
Me.TXT_DESCR.Lines = New String(-1) {}
|
|
||||||
Me.TXT_DESCR.Location = New System.Drawing.Point(4, 317)
|
Me.TXT_DESCR.Location = New System.Drawing.Point(4, 317)
|
||||||
Me.TXT_DESCR.Multiline = True
|
Me.TXT_DESCR.Multiline = True
|
||||||
Me.TXT_DESCR.Name = "TXT_DESCR"
|
Me.TXT_DESCR.Name = "TXT_DESCR"
|
||||||
@@ -314,7 +311,6 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
Me.TXT_USER_FRIENDLY.CaptionText = "Friendly name"
|
Me.TXT_USER_FRIENDLY.CaptionText = "Friendly name"
|
||||||
Me.TXT_USER_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_USER_FRIENDLY.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_USER_FRIENDLY.Lines = New String(-1) {}
|
|
||||||
Me.TXT_USER_FRIENDLY.Location = New System.Drawing.Point(4, 33)
|
Me.TXT_USER_FRIENDLY.Location = New System.Drawing.Point(4, 33)
|
||||||
Me.TXT_USER_FRIENDLY.Name = "TXT_USER_FRIENDLY"
|
Me.TXT_USER_FRIENDLY.Name = "TXT_USER_FRIENDLY"
|
||||||
Me.TXT_USER_FRIENDLY.Size = New System.Drawing.Size(446, 22)
|
Me.TXT_USER_FRIENDLY.Size = New System.Drawing.Size(446, 22)
|
||||||
@@ -371,7 +367,6 @@ Namespace Editors
|
|||||||
Me.TXT_LABELS.CaptionText = "Labels"
|
Me.TXT_LABELS.CaptionText = "Labels"
|
||||||
Me.TXT_LABELS.CaptionWidth = 50.0R
|
Me.TXT_LABELS.CaptionWidth = 50.0R
|
||||||
Me.TXT_LABELS.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_LABELS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_LABELS.Lines = New String(-1) {}
|
|
||||||
Me.TXT_LABELS.Location = New System.Drawing.Point(4, 235)
|
Me.TXT_LABELS.Location = New System.Drawing.Point(4, 235)
|
||||||
Me.TXT_LABELS.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3)
|
Me.TXT_LABELS.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3)
|
||||||
Me.TXT_LABELS.Name = "TXT_LABELS"
|
Me.TXT_LABELS.Name = "TXT_LABELS"
|
||||||
@@ -437,7 +432,6 @@ Namespace Editors
|
|||||||
Me.TXT_SPEC_FOLDER.CaptionText = "Special path"
|
Me.TXT_SPEC_FOLDER.CaptionText = "Special path"
|
||||||
Me.TXT_SPEC_FOLDER.CaptionVisible = True
|
Me.TXT_SPEC_FOLDER.CaptionVisible = True
|
||||||
Me.TXT_SPEC_FOLDER.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_SPEC_FOLDER.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_SPEC_FOLDER.Lines = New String(-1) {}
|
|
||||||
Me.TXT_SPEC_FOLDER.Location = New System.Drawing.Point(4, 62)
|
Me.TXT_SPEC_FOLDER.Location = New System.Drawing.Point(4, 62)
|
||||||
Me.TXT_SPEC_FOLDER.Name = "TXT_SPEC_FOLDER"
|
Me.TXT_SPEC_FOLDER.Name = "TXT_SPEC_FOLDER"
|
||||||
Me.TXT_SPEC_FOLDER.Size = New System.Drawing.Size(446, 22)
|
Me.TXT_SPEC_FOLDER.Size = New System.Drawing.Size(446, 22)
|
||||||
@@ -460,7 +454,6 @@ Namespace Editors
|
|||||||
Me.TXT_SCRIPT.CaptionToolTipText = "Execute script after downloading this user"
|
Me.TXT_SCRIPT.CaptionToolTipText = "Execute script after downloading this user"
|
||||||
Me.TXT_SCRIPT.CaptionWidth = 65.0R
|
Me.TXT_SCRIPT.CaptionWidth = 65.0R
|
||||||
Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TXT_SCRIPT.Lines = New String(-1) {}
|
|
||||||
Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 289)
|
Me.TXT_SCRIPT.Location = New System.Drawing.Point(4, 289)
|
||||||
Me.TXT_SCRIPT.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3)
|
Me.TXT_SCRIPT.Margin = New System.Windows.Forms.Padding(3, 2, 3, 3)
|
||||||
Me.TXT_SCRIPT.Name = "TXT_SCRIPT"
|
Me.TXT_SCRIPT.Name = "TXT_SCRIPT"
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ Namespace Editors
|
|||||||
Private SpecialPathHandler As PathMoverHandler = Nothing
|
Private SpecialPathHandler As PathMoverHandler = Nothing
|
||||||
Friend ReadOnly Property UserLabels As List(Of String)
|
Friend ReadOnly Property UserLabels As List(Of String)
|
||||||
Private LabelsIncludeSpecial As Boolean = False
|
Private LabelsIncludeSpecial As Boolean = False
|
||||||
|
Private LabelsChanged As Boolean = False
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Initializers"
|
#Region "Initializers"
|
||||||
''' <summary>Create new user</summary>
|
''' <summary>Create new user</summary>
|
||||||
@@ -327,6 +328,8 @@ Namespace Editors
|
|||||||
FriendlyNameChanged = False
|
FriendlyNameChanged = False
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MyDef.InvokeLoaderError(ex)
|
MyDef.InvokeLoaderError(ex)
|
||||||
|
Finally
|
||||||
|
LabelsChanged = False
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub UserCreatorForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
Private Sub UserCreatorForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
||||||
@@ -367,7 +370,7 @@ Namespace Editors
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Not .Labels.ListEquals(UserLabels) Then _
|
If LabelsChanged Then _
|
||||||
UserDataBase.UpdateLabels(.Self, UserLabels, 1,
|
UserDataBase.UpdateLabels(.Self, UserLabels, 1,
|
||||||
Not DirectCast(.Self, UserDataBase).SpecialLabels.ListExists OrElse
|
Not DirectCast(.Self, UserDataBase).SpecialLabels.ListExists OrElse
|
||||||
UserDataBase.UpdateLabelsKeepSpecial(1))
|
UserDataBase.UpdateLabelsKeepSpecial(1))
|
||||||
@@ -596,7 +599,7 @@ CloseForm:
|
|||||||
Private Sub TXT_LABELS_ActionOnButtonClick(ByVal Sender As ActionButton, ByVal e As EventArgs) Handles TXT_LABELS.ActionOnButtonClick
|
Private Sub TXT_LABELS_ActionOnButtonClick(ByVal Sender As ActionButton, ByVal e As EventArgs) Handles TXT_LABELS.ActionOnButtonClick
|
||||||
Select Case Sender.DefaultButton
|
Select Case Sender.DefaultButton
|
||||||
Case ADB.Open : ChangeLabels()
|
Case ADB.Open : ChangeLabels()
|
||||||
Case ADB.Clear : UserLabels.Clear()
|
Case ADB.Clear : UserLabels.Clear() : LabelsChanged = True
|
||||||
Case ADB.Refresh : UpdateSpecificLabels(False)
|
Case ADB.Refresh : UpdateSpecificLabels(False)
|
||||||
End Select
|
End Select
|
||||||
End Sub
|
End Sub
|
||||||
@@ -784,8 +787,10 @@ CloseForm:
|
|||||||
Using fl As New LabelsForm(UserLabels)
|
Using fl As New LabelsForm(UserLabels)
|
||||||
fl.ShowDialog()
|
fl.ShowDialog()
|
||||||
If fl.DialogResult = DialogResult.OK Then
|
If fl.DialogResult = DialogResult.OK Then
|
||||||
|
LabelsChanged = True
|
||||||
UserLabels.ListAddList(fl.LabelsList, LAP.NotContainsOnly, LAP.ClearBeforeAdd)
|
UserLabels.ListAddList(fl.LabelsList, LAP.NotContainsOnly, LAP.ClearBeforeAdd)
|
||||||
If UserLabels.ListExists Then
|
If UserLabels.ListExists Then
|
||||||
|
UserLabels.Sort()
|
||||||
TXT_LABELS.Text = UserLabels.ListToString
|
TXT_LABELS.Text = UserLabels.ListToString
|
||||||
Else
|
Else
|
||||||
TXT_LABELS.Clear()
|
TXT_LABELS.Clear()
|
||||||
|
|||||||
@@ -423,7 +423,19 @@ CloseResume:
|
|||||||
InfoForm.FormShow(EDP.LogMessageValue)
|
InfoForm.FormShow(EDP.LogMessageValue)
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub MENU_INFO_SHOW_QUEUE_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_QUEUE.Click
|
Private Sub MENU_INFO_SHOW_QUEUE_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_QUEUE.Click
|
||||||
DownloadQueue.FormShow(EDP.LogMessageValue)
|
ShowDownloadQueueForm()
|
||||||
|
End Sub
|
||||||
|
Private Sub ShowDownloadQueueForm(Optional ByVal Round As Integer = 0)
|
||||||
|
Try
|
||||||
|
DownloadQueue.FormShow(EDP.LogMessageValue)
|
||||||
|
Catch ex As Exception
|
||||||
|
If Round = 0 Then
|
||||||
|
If Not DownloadQueue Is Nothing Then DownloadQueue.Dispose() : DownloadQueue = Nothing
|
||||||
|
ShowDownloadQueueForm(Round + 1)
|
||||||
|
Else
|
||||||
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "ShowDownloadQueueForm")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub MENU_INFO_SHOW_MISSING_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_MISSING.Click
|
Private Sub MENU_INFO_SHOW_MISSING_Click(sender As Object, e As EventArgs) Handles MENU_INFO_SHOW_MISSING.Click
|
||||||
MyMissingPosts.FormShow(EDP.LogMessageValue)
|
MyMissingPosts.FormShow(EDP.LogMessageValue)
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ Friend Module MainMod
|
|||||||
Friend MyProgressForm As ActiveDownloadingProgress
|
Friend MyProgressForm As ActiveDownloadingProgress
|
||||||
Friend MainFrameObj As MainFrameObjects
|
Friend MainFrameObj As MainFrameObjects
|
||||||
Friend ReadOnly DateTimeDefaultProvider As New ADateTime(ADateTime.Formats.BaseDateTime)
|
Friend ReadOnly DateTimeDefaultProvider As New ADateTime(ADateTime.Formats.BaseDateTime)
|
||||||
|
Friend ReadOnly SessionDateTimeProvider As New ADateTime("yyyyMMdd_HHmmss")
|
||||||
Friend ReadOnly FeedVideoLengthProvider As New ADateTime("hh\:mm\:ss") With {.TimeParseMode = ADateTime.TimeModes.TimeSpan}
|
Friend ReadOnly FeedVideoLengthProvider As New ADateTime("hh\:mm\:ss") With {.TimeParseMode = ADateTime.TimeModes.TimeSpan}
|
||||||
Friend ReadOnly UserExistsPredicate As New FPredicate(Of IUserData)(Function(u) u.Exists)
|
Friend ReadOnly UserExistsPredicate As New FPredicate(Of IUserData)(Function(u) u.Exists)
|
||||||
Friend ReadOnly UserExistsSubscriptionsPredicate As New FPredicate(Of IUserData)(Function(u) u.Exists And u.IsSubscription)
|
Friend ReadOnly UserExistsSubscriptionsPredicate As New FPredicate(Of IUserData)(Function(u) u.Exists And u.IsSubscription)
|
||||||
|
|||||||
@@ -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("2023.9.20.0")>
|
<Assembly: AssemblyVersion("2023.10.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2023.9.20.0")>
|
<Assembly: AssemblyFileVersion("2023.10.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -41,6 +41,11 @@ Namespace Plugin.Hosts
|
|||||||
FileSetManually = True
|
FileSetManually = True
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
Public Overrides Sub Delete(ByVal RemoveFiles As Boolean)
|
||||||
|
MyBase.Delete(RemoveFiles)
|
||||||
|
If Not RemoveFiles And Not Settings.STDownloader_SnapshotsKeepWithFiles And Settings.STDownloader_SnapShotsCachePermamnent Then _
|
||||||
|
ThumbnailFile.Delete(SFO.File, SFODelete.DeleteToRecycleBin, EDP.None)
|
||||||
|
End Sub
|
||||||
Friend Sub New(ByVal URL As String, ByVal OutputFile As SFile)
|
Friend Sub New(ByVal URL As String, ByVal OutputFile As SFile)
|
||||||
Me.URL = URL
|
Me.URL = URL
|
||||||
Me.File = OutputFile
|
Me.File = OutputFile
|
||||||
@@ -111,6 +116,8 @@ Namespace Plugin.Hosts
|
|||||||
End If
|
End If
|
||||||
Instance.DownloadSingleObject(If(ExternalSource, Me), Token)
|
Instance.DownloadSingleObject(If(ExternalSource, Me), Token)
|
||||||
ExchangeData(ExternalSource, Me)
|
ExchangeData(ExternalSource, Me)
|
||||||
|
Dim __url$ = DirectCast(Me, IDownloadableMedia).URL_BASE.IfNullOrEmpty(URL)
|
||||||
|
If File.Exists And Not __url.IsEmptyString And MyDownloaderSettings.CreateUrlFiles Then CreateUrlFile(__url, File)
|
||||||
If Not ExternalSource Is Nothing Then
|
If Not ExternalSource Is Nothing Then
|
||||||
With ExternalSource : _HasError = .HasError : _Exists = .Exists : End With
|
With ExternalSource : _HasError = .HasError : _Exists = .Exists : End With
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ Namespace Plugin.Hosts
|
|||||||
End Sub
|
End Sub
|
||||||
Friend Sub Add(ByVal ex As Exception, ByVal Message As String,
|
Friend Sub Add(ByVal ex As Exception, ByVal Message As String,
|
||||||
Optional ByVal ShowMainMsg As Boolean = False, Optional ByVal ShowErrorMsg As Boolean = False,
|
Optional ByVal ShowMainMsg As Boolean = False, Optional ByVal ShowErrorMsg As Boolean = False,
|
||||||
Optional ByVal SendInLog As Boolean = True) Implements ILogProvider.Add
|
Optional ByVal SendToLog As Boolean = True) Implements ILogProvider.Add
|
||||||
ErrorsDescriber.Execute(New ErrorsDescriber(ShowMainMsg, ShowErrorMsg, SendInLog), ex, Message)
|
ErrorsDescriber.Execute(New ErrorsDescriber(ShowMainMsg, ShowErrorMsg, SendToLog), ex, Message)
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -79,6 +79,7 @@ Namespace Plugin.Hosts
|
|||||||
New PluginHost(New API.Twitter.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.Twitter.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
New PluginHost(New API.Mastodon.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.Mastodon.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
New PluginHost(New API.Instagram.SiteSettings(_XML, GlobalPath), _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.Instagram.SiteSettings(_XML, GlobalPath), _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
|
New PluginHost(New API.ThreadsNet.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
New PluginHost(New API.RedGifs.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.RedGifs.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
New PluginHost(New API.YouTube.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.YouTube.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
New PluginHost(New API.Pinterest.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
New PluginHost(New API.Pinterest.SiteSettings, _XML, GlobalPath, _Temp, _Imgs, _Vids),
|
||||||
|
|||||||
@@ -331,6 +331,7 @@ Namespace Plugin.Hosts
|
|||||||
End If
|
End If
|
||||||
Return _AvailableValue
|
Return _AvailableValue
|
||||||
Else
|
Else
|
||||||
|
If Not Silent Then MsgBoxE({$"Downloading data for the site {Name} has been disabled by you.", $"{Name} downloading disabled"}, vbExclamation)
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@@ -223,6 +223,8 @@
|
|||||||
<Compile Include="API\ThisVid\SiteSettings.vb" />
|
<Compile Include="API\ThisVid\SiteSettings.vb" />
|
||||||
<Compile Include="API\ThisVid\UserData.vb" />
|
<Compile Include="API\ThisVid\UserData.vb" />
|
||||||
<Compile Include="API\ThisVid\UserExchangeOptions.vb" />
|
<Compile Include="API\ThisVid\UserExchangeOptions.vb" />
|
||||||
|
<Compile Include="API\ThreadsNet\SiteSettings.vb" />
|
||||||
|
<Compile Include="API\ThreadsNet\UserData.vb" />
|
||||||
<Compile Include="API\TikTok\Declarations.vb" />
|
<Compile Include="API\TikTok\Declarations.vb" />
|
||||||
<Compile Include="API\TikTok\SiteSettings.vb" />
|
<Compile Include="API\TikTok\SiteSettings.vb" />
|
||||||
<Compile Include="API\TikTok\UserData.vb" />
|
<Compile Include="API\TikTok\UserData.vb" />
|
||||||
@@ -709,6 +711,9 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Content\Icons\SiteIcons\JFFIcon_64.ico" />
|
<None Include="Content\Icons\SiteIcons\JFFIcon_64.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Content\Icons\SiteIcons\ThreadsIcon_192.ico" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -276,6 +276,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
STDownloader_OutputPathUseYT = New XMLValue(Of Boolean)("OutputPathUseYT", False, MyXML, n)
|
STDownloader_OutputPathUseYT = New XMLValue(Of Boolean)("OutputPathUseYT", False, MyXML, n)
|
||||||
STDownloader_OutputPathAskForName = New XMLValue(Of Boolean)("OutputPathAskForName", True, MyXML, n)
|
STDownloader_OutputPathAskForName = New XMLValue(Of Boolean)("OutputPathAskForName", True, MyXML, n)
|
||||||
STDownloader_OutputPathAutoAddPaths = New XMLValue(Of Boolean)("OutputPathAutoAddPaths", True, MyXML, n)
|
STDownloader_OutputPathAutoAddPaths = New XMLValue(Of Boolean)("OutputPathAutoAddPaths", True, MyXML, n)
|
||||||
|
STDownloader_CreateUrlFiles = New XMLValue(Of Boolean)("CreateUrlFiles", False, MyXML, n)
|
||||||
DownloadLocations = New STDownloader.DownloadLocationsCollection
|
DownloadLocations = New STDownloader.DownloadLocationsCollection
|
||||||
DownloadLocations.Load(False, STDownloader_OutputPathUseYT)
|
DownloadLocations.Load(False, STDownloader_OutputPathUseYT)
|
||||||
|
|
||||||
@@ -287,6 +288,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
FeedAddDateToCaption = New XMLValue(Of Boolean)("AddDateToCaption", True, MyXML, n)
|
FeedAddDateToCaption = New XMLValue(Of Boolean)("AddDateToCaption", True, MyXML, n)
|
||||||
FeedAddSessionToCaption = New XMLValue(Of Boolean)("AddSessionToCaption", False, MyXML, n)
|
FeedAddSessionToCaption = New XMLValue(Of Boolean)("AddSessionToCaption", False, MyXML, n)
|
||||||
FeedStoreSessionsData = New XMLValue(Of Boolean)("StoreSessionsData", True, MyXML, n)
|
FeedStoreSessionsData = New XMLValue(Of Boolean)("StoreSessionsData", True, MyXML, n)
|
||||||
|
FeedStoredSessionsNumber = New XMLValue(Of Integer)("StoredSessionsNumber", 20, MyXML, n)
|
||||||
FeedBackColor = New XMLValue(Of Color)
|
FeedBackColor = New XMLValue(Of Color)
|
||||||
FeedBackColor.SetExtended("FeedColorBack",, MyXML, n)
|
FeedBackColor.SetExtended("FeedColorBack",, MyXML, n)
|
||||||
FeedForeColor = New XMLValue(Of Color)
|
FeedForeColor = New XMLValue(Of Color)
|
||||||
@@ -791,6 +793,12 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Return STDownloader_OutputPathAutoAddPaths
|
Return STDownloader_OutputPathAutoAddPaths
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
Friend ReadOnly Property STDownloader_CreateUrlFiles As XMLValue(Of Boolean)
|
||||||
|
Private ReadOnly Property IDownloaderSettings_CreateUrlFiles As Boolean Implements IDownloaderSettings.CreateUrlFiles
|
||||||
|
Get
|
||||||
|
Return STDownloader_CreateUrlFiles
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
#End Region
|
#End Region
|
||||||
#Region "User metrics"
|
#Region "User metrics"
|
||||||
Friend ReadOnly Property UMetrics_What As XMLValue(Of Integer)
|
Friend ReadOnly Property UMetrics_What As XMLValue(Of Integer)
|
||||||
@@ -899,6 +907,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Friend ReadOnly Property FeedAddDateToCaption As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedAddDateToCaption As XMLValue(Of Boolean)
|
||||||
Friend ReadOnly Property FeedAddSessionToCaption As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedAddSessionToCaption As XMLValue(Of Boolean)
|
||||||
Friend ReadOnly Property FeedStoreSessionsData As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedStoreSessionsData As XMLValue(Of Boolean)
|
||||||
|
Friend ReadOnly Property FeedStoredSessionsNumber As XMLValue(Of Integer)
|
||||||
Friend ReadOnly Property FeedBackColor As XMLValue(Of Color)
|
Friend ReadOnly Property FeedBackColor As XMLValue(Of Color)
|
||||||
Friend ReadOnly Property FeedForeColor As XMLValue(Of Color)
|
Friend ReadOnly Property FeedForeColor As XMLValue(Of Color)
|
||||||
Friend ReadOnly Property FeedOpenLastMode As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedOpenLastMode As XMLValue(Of Boolean)
|
||||||
|
|||||||
10
SCrawler/SiteResources.Designer.vb
generated
10
SCrawler/SiteResources.Designer.vb
generated
@@ -264,6 +264,16 @@ Namespace My.Resources
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||||
|
'''</summary>
|
||||||
|
Friend Shared ReadOnly Property ThreadsIcon_192() As System.Drawing.Icon
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("ThreadsIcon_192", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Icon)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
|
||||||
'''</summary>
|
'''</summary>
|
||||||
|
|||||||
@@ -178,6 +178,9 @@
|
|||||||
<data name="ThisVidPic_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ThisVidPic_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Content\Pictures\SitePictures\ThisVidPic_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Content\Pictures\SitePictures\ThisVidPic_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ThreadsIcon_192" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Content\Icons\SiteIcons\ThreadsIcon_192.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="TikTokIcon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="TikTokIcon_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>Content\Icons\SiteIcons\TikTokIcon_32.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>Content\Icons\SiteIcons\TikTokIcon_32.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
Reference in New Issue
Block a user