Compare commits
7 Commits
2024.6.10.
...
2024.8.10.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e285de10f6 | ||
|
|
26db0e3e24 | ||
|
|
0b0933b6f0 | ||
|
|
3ce9c55575 | ||
|
|
ef36a11566 | ||
|
|
dea14d35af | ||
|
|
744698c99e |
58
Changelog.md
@@ -1,3 +1,61 @@
|
|||||||
|
# 2024.8.10.0
|
||||||
|
|
||||||
|
*2024-08-10*
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- Feed: button to open file folder
|
||||||
|
- Updated
|
||||||
|
- yt-dlp up to version **2024.08.06**
|
||||||
|
- gallery-dl up to version **1.27.2**
|
||||||
|
- Fixed
|
||||||
|
- YouTube (standalone app): **video is being parsed using cookies but is not downloading** *(Issue #205)*
|
||||||
|
|
||||||
|
# 2024.8.1.0
|
||||||
|
|
||||||
|
*2024-08-01*
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- Minor improvements
|
||||||
|
- Updated
|
||||||
|
- yt-dlp up to version **2024.08.01**
|
||||||
|
|
||||||
|
# 2024.7.24.0
|
||||||
|
|
||||||
|
*2024-07-24*
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- YouTube (standalone app)
|
||||||
|
- ability to convert non-`AVC` codecs (eg `VP9`) to `AVC` (`Settings` - `Defaults Video` - `Convert non-AVC codecs to AVC`)
|
||||||
|
- add the ability to set the playlist creation mode: absolute links, relative links, or both (`Settings` - `Music` - `Create M3U8: creation mode`)
|
||||||
|
- Threads: **saved posts downloading**
|
||||||
|
- Feed
|
||||||
|
- hotkeys `Esc` and `Ctrl+W` to close the form
|
||||||
|
- the ability to search for missing files in *special feeds*
|
||||||
|
- Scheduler: the ability to execute a script after the scheduler plan is executed *(`Settings` - `Behavior`)*
|
||||||
|
- Main window:
|
||||||
|
- added hotkey `Ctrl+F` to show the feed
|
||||||
|
- changed the hotkey from `Ctrl+F` to `Alt+F` to show the search form
|
||||||
|
- Updated
|
||||||
|
- yt-dlp up to version **2024.07.16**
|
||||||
|
- Fixed
|
||||||
|
- YouTube (standalone app): video files with line breaks in the name do not download correctly
|
||||||
|
- OnlyFans: rules parsing bug
|
||||||
|
- Minor bugs
|
||||||
|
|
||||||
|
# 2024.6.25.0
|
||||||
|
|
||||||
|
*2024-06-25*
|
||||||
|
|
||||||
|
**ATTENTION! To support downloading of DRM protected videos (OnlyFans), please update OF-Scraper to version [3.10.7](https://github.com/datawhores/OF-Scraper/releases/tag/3.10.7) (download `zip`, not `exe`).**
|
||||||
|
|
||||||
|
- Added
|
||||||
|
- OnlyFans: **new dynamic rules updating algorithm**
|
||||||
|
- Feed: ability to set the last session as the current one
|
||||||
|
- Updated
|
||||||
|
- gallery-dl up to version **1.27.1**
|
||||||
|
- Fixed
|
||||||
|
- Minor bugs
|
||||||
|
|
||||||
# 2024.6.10.0
|
# 2024.6.10.0
|
||||||
|
|
||||||
*2024-06-10*
|
*2024-06-10*
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 29 KiB |
BIN
ProgramScreenshots/SettingsSiteOnlyFansAdditional.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
16
README.md
@@ -33,16 +33,16 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo
|
|||||||

|

|
||||||
|
|
||||||
# What can program do:
|
# What can program do:
|
||||||
- Download pictures and videos from users' profiles and subreddits:
|
- Download pictures and videos from user profiles:
|
||||||
- YouTube videos, shorts, community feeds, users, artists, playlists, music, tracks;
|
- YouTube videos, shorts, community feeds, users, artists, playlists, music, tracks;
|
||||||
- Reddit images, galleries of images, videos, saved posts;
|
- Reddit images, galleries of images, videos, saved posts;
|
||||||
- Redgifs videos (https://www.redgifs.com/);
|
- Redgifs images and videos (https://www.redgifs.com/);
|
||||||
- Twitter images and videos, saved (bookmarked) posts, likes, communities;
|
- Twitter images and videos, saved (bookmarked) posts, likes, communities;
|
||||||
- OnlyFans images and videos, saved (bookmarked) posts, stories;
|
- OnlyFans images and videos, saved (bookmarked) posts, stories;
|
||||||
- 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;
|
- Threads images and videos, saved posts;
|
||||||
- Facebook images and videos, stories, saved posts;
|
- Facebook images and videos, stories, saved posts;
|
||||||
- TikTok videos;
|
- TikTok videos;
|
||||||
- Pinterest boards, users, saved posts;
|
- Pinterest boards, users, saved posts;
|
||||||
@@ -57,7 +57,7 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo
|
|||||||
- Download [saved posts](https://github.com/AAndyProgram/SCrawler/wiki/Home#saved-posts)
|
- Download [saved posts](https://github.com/AAndyProgram/SCrawler/wiki/Home#saved-posts)
|
||||||
- Add users from parsed channel
|
- Add users from parsed channel
|
||||||
- **Advanced user management**
|
- **Advanced user management**
|
||||||
- **Automation** ([downloading data automatically](https://github.com/AAndyProgram/SCrawler/wiki/Settings#automation) every ```X``` minutes)
|
- **Automation** ([downloading data automatically](https://github.com/AAndyProgram/SCrawler/wiki/Settings#automation) every `X` minutes)
|
||||||
- **Feed** ([feed](https://github.com/AAndyProgram/SCrawler/wiki#feed) of downloaded media files and subscriptions posts)
|
- **Feed** ([feed](https://github.com/AAndyProgram/SCrawler/wiki#feed) of downloaded media files and subscriptions posts)
|
||||||
- Multiple accounts support
|
- Multiple accounts support
|
||||||
- Labeling users
|
- Labeling users
|
||||||
@@ -87,7 +87,7 @@ A program to download photo and video from [any site](#supported-sites) (e.g. Yo
|
|||||||
- TikTok
|
- TikTok
|
||||||
- RedGifs
|
- RedGifs
|
||||||
- Pinterest
|
- Pinterest
|
||||||
- Imgur
|
- Imgur *(out of support)*
|
||||||
- Gfycat
|
- Gfycat
|
||||||
- LPSG
|
- LPSG
|
||||||
- **PornHub**
|
- **PornHub**
|
||||||
@@ -109,7 +109,7 @@ First, the program downloads the full profile. After the program downloads only
|
|||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
- Windows 10, 11 with NET Framework 4.6.1 or higher (v4.6.1 must be installed). You can check version compatibility with this [tool](Tools/NET.FrameworkVersion.ps1).
|
- **Windows 10, 11** with NET Framework 4.6.1 or higher (v4.6.1 must be installed). You can check version compatibility with this [tool](Tools/NET.FrameworkVersion.ps1).
|
||||||
- **[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**
|
- **[SITES REQUIREMENTS](https://github.com/AAndyProgram/SCrawler/wiki/Settings#sites-requirements)**
|
||||||
|
|
||||||
# Guide
|
# Guide
|
||||||
@@ -157,7 +157,7 @@ First, the program downloads the full profile. After the program downloads only
|
|||||||
|
|
||||||
**Just download the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest), unzip the program archive to any folder and enjoy.** :blush:
|
**Just download the [latest release](https://github.com/AAndyProgram/SCrawler/releases/latest), unzip the program archive to any folder and enjoy.** :blush:
|
||||||
|
|
||||||
**Don't put program in the ```Program Files``` system folder (this is portable program and program settings are stored in the program folder)**
|
**Don't put program in the `Program Files` system folder (this is portable program and program settings are stored in the program folder)**
|
||||||
|
|
||||||
**I highly doubt you can run SCrawler on Linux or Mac. SCrawler is a program that is heavily dependent on Windows.**
|
**I highly doubt you can run SCrawler on Linux or Mac. SCrawler is a program that is heavily dependent on Windows.**
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ The program has an intuitive interface.
|
|||||||
|
|
||||||
[](https://www.youtube.com/watch?v=XDn7zG4I700)
|
[](https://www.youtube.com/watch?v=XDn7zG4I700)
|
||||||
|
|
||||||
Just add a user profile and **click the ```Download``` button**.
|
Just add a user profile and **click the `Download` button**.
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
stateDiagram
|
stateDiagram
|
||||||
|
|||||||
@@ -84,6 +84,11 @@ Namespace API.YouTube.Base
|
|||||||
Before = 1
|
Before = 1
|
||||||
After = 2
|
After = 2
|
||||||
End Enum
|
End Enum
|
||||||
|
Public Enum M3U8CreationMode As Integer
|
||||||
|
Relative = 0
|
||||||
|
Absolute = 1
|
||||||
|
Both = 2
|
||||||
|
End Enum
|
||||||
Public Structure MediaObject : Implements IIndexable, IComparable(Of MediaObject)
|
Public Structure MediaObject : Implements IIndexable, IComparable(Of MediaObject)
|
||||||
Public Type As Plugin.UserMediaTypes
|
Public Type As Plugin.UserMediaTypes
|
||||||
Public ID As String
|
Public ID As String
|
||||||
|
|||||||
@@ -131,22 +131,28 @@ Namespace API.YouTube.Base
|
|||||||
<Browsable(True), GridVisible(False), Category("EnvironmentFolder"), DisplayName("Open folders in another program"), DefaultValue(False)>
|
<Browsable(True), GridVisible(False), Category("EnvironmentFolder"), DisplayName("Open folders in another program"), DefaultValue(False)>
|
||||||
Private Property IDownloaderSettings_OpenFolderInOtherProgram As Boolean Implements IDownloaderSettings.OpenFolderInOtherProgram
|
Private Property IDownloaderSettings_OpenFolderInOtherProgram As Boolean Implements IDownloaderSettings.OpenFolderInOtherProgram
|
||||||
Get
|
Get
|
||||||
Return OpenFolderInOtherProgram.Use
|
Return OpenFolderInOtherProgram.Attribute.ValueTemp
|
||||||
End Get
|
End Get
|
||||||
Set(ByVal use As Boolean)
|
Set(ByVal use As Boolean)
|
||||||
OpenFolderInOtherProgram.Use = use
|
OpenFolderInOtherProgram.Attribute.ValueTemp = use
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
Private Function ShouldSerializeIDownloaderSettings_OpenFolderInOtherProgram() As Boolean
|
||||||
|
Return DirectCast(OpenFolderInOtherProgram.Attribute, IGridValue).ShouldSerializeValue
|
||||||
|
End Function
|
||||||
<Browsable(True), GridVisible(False), Category("EnvironmentFolder"), DisplayName("Open folders in another program (command)"),
|
<Browsable(True), GridVisible(False), Category("EnvironmentFolder"), DisplayName("Open folders in another program (command)"),
|
||||||
Description("The command to open a folder."), DefaultValue("")>
|
Description("The command to open a folder."), DefaultValue("")>
|
||||||
Private Property IDownloaderSettings_OpenFolderInOtherProgram_Command As String Implements IDownloaderSettings.OpenFolderInOtherProgram_Command
|
Private Property IDownloaderSettings_OpenFolderInOtherProgram_Command As String Implements IDownloaderSettings.OpenFolderInOtherProgram_Command
|
||||||
Get
|
Get
|
||||||
Return OpenFolderInOtherProgram
|
Return OpenFolderInOtherProgram.ValueTemp
|
||||||
End Get
|
End Get
|
||||||
Set(ByVal command As String)
|
Set(ByVal command As String)
|
||||||
OpenFolderInOtherProgram.Value = command
|
OpenFolderInOtherProgram.ValueTemp = command
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
Private Function ShouldSerializeIDownloaderSettings_OpenFolderInOtherProgram_Command() As Boolean
|
||||||
|
Return DirectCast(OpenFolderInOtherProgram, IGridValue).ShouldSerializeValue
|
||||||
|
End Function
|
||||||
<Browsable(True), GridVisible(False), XMLVN({"Environment"}, True), Category("Environment"), DisplayName("Check new version at start")>
|
<Browsable(True), GridVisible(False), XMLVN({"Environment"}, True), Category("Environment"), DisplayName("Check new version at start")>
|
||||||
Friend ReadOnly Property CheckUpdatesAtStart As XMLValue(Of Boolean)
|
Friend ReadOnly Property CheckUpdatesAtStart As XMLValue(Of Boolean)
|
||||||
#End Region
|
#End Region
|
||||||
@@ -305,6 +311,9 @@ Namespace API.YouTube.Base
|
|||||||
<Browsable(True), GridVisible, XMLVN({"DefaultsVideo"}, 1080), Category("Defaults Video"), DisplayName("Default definition"),
|
<Browsable(True), GridVisible, XMLVN({"DefaultsVideo"}, 1080), Category("Defaults Video"), DisplayName("Default definition"),
|
||||||
Description("The default maximum video resolution. -1 for max definition")>
|
Description("The default maximum video resolution. -1 for max definition")>
|
||||||
Public ReadOnly Property DefaultVideoDefinition As XMLValue(Of Integer)
|
Public ReadOnly Property DefaultVideoDefinition As XMLValue(Of Integer)
|
||||||
|
<Browsable(True), GridVisible, XMLVN({"DefaultsVideo"}), Category("Defaults Video"), DisplayName("Convert non-AVC codecs to AVC"),
|
||||||
|
Description("Convert non-AVC codecs (eg 'VP9') to AVC. Not recommended due to high CPU usage!")>
|
||||||
|
Public ReadOnly Property DefaultVideoConvertNonAVC As XMLValue(Of Boolean)
|
||||||
<Browsable(True), GridVisible, XMLVN({"DefaultsVideo"}, False), Category("Defaults Video"), DisplayName("Embed thumbnail (video)"),
|
<Browsable(True), GridVisible, XMLVN({"DefaultsVideo"}, False), Category("Defaults Video"), DisplayName("Embed thumbnail (video)"),
|
||||||
Description("Embed thumbnail in the video as cover art. Default: true.")>
|
Description("Embed thumbnail in the video as cover art. Default: true.")>
|
||||||
Public ReadOnly Property DefaultVideoEmbedThumbnail As XMLValue(Of Boolean)
|
Public ReadOnly Property DefaultVideoEmbedThumbnail As XMLValue(Of Boolean)
|
||||||
@@ -432,6 +441,9 @@ Namespace API.YouTube.Base
|
|||||||
<Browsable(True), GridVisible, XMLVN({"Playlists"}), Category("Music"), DisplayName("M3U8 Append file number"),
|
<Browsable(True), GridVisible, XMLVN({"Playlists"}), Category("Music"), DisplayName("M3U8 Append file number"),
|
||||||
Description("Add file number to file name. Default: false.")>
|
Description("Add file number to file name. Default: false.")>
|
||||||
Public ReadOnly Property MusicPlaylistCreate_M3U8_AppendNumber As XMLValue(Of Boolean)
|
Public ReadOnly Property MusicPlaylistCreate_M3U8_AppendNumber As XMLValue(Of Boolean)
|
||||||
|
<Browsable(True), GridVisible, XMLVN({"Playlists"}, M3U8CreationMode.Relative), Category("Music"), DisplayName("Create M3U8: creation mode"),
|
||||||
|
Description("Set the playlist creation mode: absolute links, relative links, or both. If 'Both' is selected, two playlists will be created. Default: 'Relative'.")>
|
||||||
|
Public ReadOnly Property MusicPlaylistCreate_CreationMode As XMLValue(Of M3U8CreationMode)
|
||||||
#End Region
|
#End Region
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Defaults Subtitles"
|
#Region "Defaults Subtitles"
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ Namespace API.YouTube.Controls
|
|||||||
Private Initialization As Boolean = True
|
Private Initialization As Boolean = True
|
||||||
Private ReadOnly InheritsFromContainer As Boolean
|
Private ReadOnly InheritsFromContainer As Boolean
|
||||||
Private ReadOnly M3U8Files As List(Of SFile)
|
Private ReadOnly M3U8Files As List(Of SFile)
|
||||||
|
Friend Property UseCookies As Boolean = False
|
||||||
Private ReadOnly Property M3U8FilesFull As List(Of SFile)
|
Private ReadOnly Property M3U8FilesFull As List(Of SFile)
|
||||||
Get
|
Get
|
||||||
Return ListAddList(Nothing, M3U8Files, LAP.NotContainsOnly).ListAddValue(CMB_PLS.Text, LAP.NotContainsOnly)
|
Return ListAddList(Nothing, M3U8Files, LAP.NotContainsOnly).ListAddValue(CMB_PLS.Text, LAP.NotContainsOnly)
|
||||||
@@ -65,6 +66,7 @@ Namespace API.YouTube.Controls
|
|||||||
CNT_PROCESSOR = New TableControlsProcessor(TP_CONTROLS)
|
CNT_PROCESSOR = New TableControlsProcessor(TP_CONTROLS)
|
||||||
Me.InheritsFromContainer = InheritsFromContainer
|
Me.InheritsFromContainer = InheritsFromContainer
|
||||||
MyFieldsChecker = New FieldsChecker
|
MyFieldsChecker = New FieldsChecker
|
||||||
|
UseCookies = MyYouTubeSettings.DefaultUseCookies
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Form handlers"
|
#Region "Form handlers"
|
||||||
@@ -227,7 +229,7 @@ Namespace API.YouTube.Controls
|
|||||||
Dim data As IEnumerable(Of Control)
|
Dim data As IEnumerable(Of Control)
|
||||||
|
|
||||||
If .HasElements Then
|
If .HasElements Then
|
||||||
data = .Elements.Select(Function(ee) New MediaItem(ee, True) With {.Dock = DockStyle.Fill, .Checked = ee.Checked})
|
data = .Elements.Select(Function(ee) New MediaItem(ee, True) With {.Dock = DockStyle.Fill, .Checked = ee.Checked, .UseCookies = UseCookies})
|
||||||
Else
|
Else
|
||||||
data = (From m As MediaObject In .Self.MediaObjects
|
data = (From m As MediaObject In .Self.MediaObjects
|
||||||
Where m.Type = __contentType
|
Where m.Type = __contentType
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ Namespace API.YouTube
|
|||||||
If Not f.IsEmptyString And Not f.Name.IsEmptyString Then
|
If Not f.IsEmptyString And Not f.Name.IsEmptyString Then
|
||||||
Dim ff As SFile = f
|
Dim ff As SFile = f
|
||||||
ff.Name = ff.Name.StringRemoveWinForbiddenSymbols.StringTrim
|
ff.Name = ff.Name.StringRemoveWinForbiddenSymbols.StringTrim
|
||||||
|
ff.Name = ff.Name.StringReplaceSymbols({vbLf, vbCr, vbCrLf}, String.Empty, EDP.ReturnValue)
|
||||||
ff.Name = ff.Name.StringTrimEnd(".")
|
ff.Name = ff.Name.StringTrimEnd(".")
|
||||||
If Not ff.Name.IsEmptyString And Not MyYouTubeSettings.FileRemoveCharacters.IsEmptyString Then _
|
If Not ff.Name.IsEmptyString And Not MyYouTubeSettings.FileRemoveCharacters.IsEmptyString Then _
|
||||||
ff.Name = ff.Name.StringReplaceSymbols(MyYouTubeSettings.FileRemoveCharacters.Value.AsList.ListCast(Of String).ToArray, String.Empty, EDP.ReturnValue)
|
ff.Name = ff.Name.StringReplaceSymbols(MyYouTubeSettings.FileRemoveCharacters.Value.AsList.ListCast(Of String).ToArray, String.Empty, EDP.ReturnValue)
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
Else
|
Else
|
||||||
RaiseEvent BeforeOpenEditor(Me, MyContainer)
|
RaiseEvent BeforeOpenEditor(Me, MyContainer)
|
||||||
End If
|
End If
|
||||||
Using f As New VideoOptionsForm(MyContainer, initProtected Or isFull)
|
Using f As New VideoOptionsForm(MyContainer, initProtected Or isFull) With {.UseCookies = UseCookies}
|
||||||
f.ShowDialog()
|
f.ShowDialog()
|
||||||
.Protected = IIf(f.DialogResult = DialogResult.OK, True, initProtected)
|
.Protected = IIf(f.DialogResult = DialogResult.OK, True, initProtected)
|
||||||
End Using
|
End Using
|
||||||
@@ -465,12 +465,12 @@ Namespace DownloadObjects.STDownloader
|
|||||||
If Not MyContainer Is Nothing Then
|
If Not MyContainer Is Nothing Then
|
||||||
Dim f As Form = Nothing
|
Dim f As Form = Nothing
|
||||||
Select Case MyContainer.ObjectType
|
Select Case MyContainer.ObjectType
|
||||||
Case Base.YouTubeMediaType.Single : f = New VideoOptionsForm(MyContainer, True)
|
Case Base.YouTubeMediaType.Single : f = New VideoOptionsForm(MyContainer, True) With {.UseCookies = UseCookies}
|
||||||
Case Base.YouTubeMediaType.Channel, Base.YouTubeMediaType.PlayList
|
Case Base.YouTubeMediaType.Channel, Base.YouTubeMediaType.PlayList
|
||||||
If MyContainer.IsMusic Then
|
If MyContainer.IsMusic Then
|
||||||
f = New MusicPlaylistsForm(MyContainer)
|
f = New MusicPlaylistsForm(MyContainer)
|
||||||
Else
|
Else
|
||||||
f = New VideoOptionsForm(MyContainer, True)
|
f = New VideoOptionsForm(MyContainer, True) With {.UseCookies = UseCookies}
|
||||||
End If
|
End If
|
||||||
End Select
|
End Select
|
||||||
If Not f Is Nothing Then
|
If Not f Is Nothing Then
|
||||||
|
|||||||
@@ -132,7 +132,8 @@ Namespace DownloadObjects.STDownloader
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "Controls"
|
#Region "Controls"
|
||||||
Protected Sub ControlCreateAndAdd(ByVal Container As IYouTubeMediaContainer, Optional ByVal DisableDownload As Boolean = False,
|
Protected Sub ControlCreateAndAdd(ByVal Container As IYouTubeMediaContainer, Optional ByVal DisableDownload As Boolean = False,
|
||||||
Optional ByVal PerformClick As Boolean = True, Optional ByVal IsLoading As Boolean = False)
|
Optional ByVal PerformClick As Boolean = True, Optional ByVal IsLoading As Boolean = False,
|
||||||
|
Optional ByVal UseCookies As Boolean = False)
|
||||||
ControlInvokeFast(TP_CONTROLS, Sub()
|
ControlInvokeFast(TP_CONTROLS, Sub()
|
||||||
With TP_CONTROLS
|
With TP_CONTROLS
|
||||||
.SuspendLayout()
|
.SuspendLayout()
|
||||||
@@ -142,7 +143,7 @@ Namespace DownloadObjects.STDownloader
|
|||||||
.RowStyles.Insert(0, New RowStyle(SizeType.Absolute, 60))
|
.RowStyles.Insert(0, New RowStyle(SizeType.Absolute, 60))
|
||||||
.RowCount = .RowStyles.Count
|
.RowCount = .RowStyles.Count
|
||||||
OffsetControls(0, True)
|
OffsetControls(0, True)
|
||||||
Dim cnt As New MediaItem(Container) With {.Dock = DockStyle.Fill, .Margin = New Padding(0)}
|
Dim cnt As New MediaItem(Container) With {.Dock = DockStyle.Fill, .Margin = New Padding(0), .UseCookies = UseCookies}
|
||||||
AddHandler cnt.FileDownloaded, AddressOf MediaControl_FileDownloaded
|
AddHandler cnt.FileDownloaded, AddressOf MediaControl_FileDownloaded
|
||||||
AddHandler cnt.Removal, AddressOf MediaControl_Removal
|
AddHandler cnt.Removal, AddressOf MediaControl_Removal
|
||||||
AddHandler cnt.DownloadAgain, AddressOf MediaControl_DownloadAgain
|
AddHandler cnt.DownloadAgain, AddressOf MediaControl_DownloadAgain
|
||||||
@@ -333,19 +334,19 @@ Namespace DownloadObjects.STDownloader
|
|||||||
If Not c Is Nothing Then
|
If Not c Is Nothing Then
|
||||||
Dim f As Form
|
Dim f As Form
|
||||||
Select Case c.ObjectType
|
Select Case c.ObjectType
|
||||||
Case YouTubeMediaType.Single : f = New VideoOptionsForm(c)
|
Case YouTubeMediaType.Single : f = New VideoOptionsForm(c) With {.UseCookies = useCookies}
|
||||||
Case YouTubeMediaType.Channel, YouTubeMediaType.PlayList
|
Case YouTubeMediaType.Channel, YouTubeMediaType.PlayList
|
||||||
If c.IsMusic Then
|
If c.IsMusic Then
|
||||||
f = New MusicPlaylistsForm(c)
|
f = New MusicPlaylistsForm(c)
|
||||||
Else
|
Else
|
||||||
f = New VideoOptionsForm(c)
|
f = New VideoOptionsForm(c) With {.UseCookies = useCookies}
|
||||||
End If
|
End If
|
||||||
Case Else : c.Dispose() : Throw New ArgumentException($"Object type {c.ObjectType} not implemented", "IYouTubeMediaContainer.ObjectType")
|
Case Else : c.Dispose() : Throw New ArgumentException($"Object type {c.ObjectType} not implemented", "IYouTubeMediaContainer.ObjectType")
|
||||||
End Select
|
End Select
|
||||||
If Not f Is Nothing Then
|
If Not f Is Nothing Then
|
||||||
If TypeOf f Is IDesignXMLContainer Then DirectCast(f, IDesignXMLContainer).DesignXML = DesignXML
|
If TypeOf f Is IDesignXMLContainer Then DirectCast(f, IDesignXMLContainer).DesignXML = DesignXML
|
||||||
f.ShowDialog()
|
f.ShowDialog()
|
||||||
If f.DialogResult = DialogResult.OK AndAlso ValidateContainerURL(c) Then ControlCreateAndAdd(c, disableDown)
|
If f.DialogResult = DialogResult.OK AndAlso ValidateContainerURL(c) Then ControlCreateAndAdd(c, disableDown,,, useCookies)
|
||||||
f.Dispose()
|
f.Dispose()
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -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("2024.6.10.0")>
|
<Assembly: AssemblyVersion("2024.8.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2024.6.10.0")>
|
<Assembly: AssemblyFileVersion("2024.8.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -899,10 +899,13 @@ Namespace API.YouTube.Objects
|
|||||||
Return Nothing
|
Return Nothing
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Private Function GetPlaylistRow(ByVal Element As YouTubeMediaContainerBase, Optional ByVal __file As SFile = Nothing) As String
|
Private Function GetPlaylistRow(ByVal Element As YouTubeMediaContainerBase, Optional ByVal __file As SFile = Nothing,
|
||||||
|
Optional ByVal Mode As M3U8CreationMode = M3U8CreationMode.Absolute) As String
|
||||||
Const m3u8DataRow$ = "#EXTINF:{0},{1}" & vbCrLf & "{2}"
|
Const m3u8DataRow$ = "#EXTINF:{0},{1}" & vbCrLf & "{2}"
|
||||||
With Element
|
With Element
|
||||||
Dim f As SFile = __file.IfNullOrEmpty(.File)
|
Dim f As SFile = __file.IfNullOrEmpty(.File)
|
||||||
|
Dim __f$ = SymbolsConverter.ASCII.EncodeSymbolsOnly(If(Mode = M3U8CreationMode.Absolute, f.ToString, f.File))
|
||||||
|
If Mode = M3U8CreationMode.Absolute Then __f = $"file:///{__f}"
|
||||||
Dim fName$ = .Title.IfNullOrEmpty(f.Name)
|
Dim fName$ = .Title.IfNullOrEmpty(f.Name)
|
||||||
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendNumber And .PlaylistIndex > 0 Then fName = $"{ .PlaylistIndex}. {fName}"
|
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendNumber And .PlaylistIndex > 0 Then fName = $"{ .PlaylistIndex}. {fName}"
|
||||||
If Not .UserTitle.IsEmptyString Then
|
If Not .UserTitle.IsEmptyString Then
|
||||||
@@ -910,10 +913,7 @@ Namespace API.YouTube.Objects
|
|||||||
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendArtist Then fName = $"{ .UserTitle} - {fName}"
|
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendArtist Then fName = $"{ .UserTitle} - {fName}"
|
||||||
End If
|
End If
|
||||||
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendExt Then fName &= $".{f.Extension}"
|
If MyYouTubeSettings.MusicPlaylistCreate_M3U8_AppendExt Then fName &= $".{f.Extension}"
|
||||||
Return String.Format(m3u8DataRow,
|
Return String.Format(m3u8DataRow, CInt(.Duration.TotalSeconds), fName, __f)
|
||||||
CInt(.Duration.TotalSeconds),
|
|
||||||
fName,
|
|
||||||
$"file:///{SymbolsConverter.ASCII.EncodeSymbolsOnly(f)}")
|
|
||||||
End With
|
End With
|
||||||
End Function
|
End Function
|
||||||
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)
|
||||||
@@ -954,23 +954,41 @@ Namespace API.YouTube.Objects
|
|||||||
Dim t As TextSaver = Nothing
|
Dim t As TextSaver = Nothing
|
||||||
Try
|
Try
|
||||||
Dim f As SFile
|
Dim f As SFile
|
||||||
If MyYouTubeSettings.MusicPlaylistCreate_M3U8 Then
|
Dim arr As M3U8CreationMode() = If(MyYouTubeSettings.MusicPlaylistCreate_CreationMode.Value = M3U8CreationMode.Both,
|
||||||
t = New TextSaver
|
{M3U8CreationMode.Relative, M3U8CreationMode.Absolute},
|
||||||
t.AppendLine("#EXTM3U")
|
{MyYouTubeSettings.MusicPlaylistCreate_CreationMode.Value})
|
||||||
Elements.ForEach(Sub(e) t.AppendLine(GetPlaylistRow(e)))
|
Dim postfix$
|
||||||
f = $"{Elements(0).File.PathWithSeparator}Playlist.m3u8"
|
Dim added As Boolean
|
||||||
t.SaveAs(f, EDP.SendToLog)
|
Dim checkFile As Func(Of IYouTubeMediaContainer, Boolean) = Function(ByVal e As IYouTubeMediaContainer) As Boolean
|
||||||
If f.Exists Then AddFile(f)
|
If e.File.Exists Then
|
||||||
t.Dispose()
|
added = True
|
||||||
End If
|
Return True
|
||||||
If MyYouTubeSettings.MusicPlaylistCreate_M3U Then
|
Else
|
||||||
t = New TextSaver
|
Return False
|
||||||
Elements.ForEach(Sub(e) t.AppendLine(e.File))
|
End If
|
||||||
f = $"{Elements(0).File.PathWithSeparator}Playlist.m3u"
|
End Function
|
||||||
t.SaveAs(f, EDP.SendToLog)
|
For Each cm As M3U8CreationMode In arr
|
||||||
If f.Exists Then AddFile(f)
|
If arr.Length > 1 AndAlso cm = M3U8CreationMode.Absolute Then postfix = "Abs" Else postfix = String.Empty
|
||||||
t.Dispose()
|
added = False
|
||||||
End If
|
If MyYouTubeSettings.MusicPlaylistCreate_M3U8 Then
|
||||||
|
t = New TextSaver
|
||||||
|
t.AppendLine("#EXTM3U")
|
||||||
|
Elements.ForEach(Sub(e) If checkFile(e) Then t.AppendLine(GetPlaylistRow(e,, cm)))
|
||||||
|
f = $"{Elements(0).File.PathWithSeparator}Playlist{postfix}.m3u8"
|
||||||
|
If added Then t.SaveAs(f, EDP.SendToLog)
|
||||||
|
If f.Exists Then AddFile(f)
|
||||||
|
t.Dispose()
|
||||||
|
End If
|
||||||
|
added = False
|
||||||
|
If MyYouTubeSettings.MusicPlaylistCreate_M3U Then
|
||||||
|
t = New TextSaver
|
||||||
|
Elements.ForEach(Sub(e) If checkFile(e) Then t.AppendLine(If(cm = M3U8CreationMode.Relative, e.File.File, e.File.ToString)))
|
||||||
|
f = $"{Elements(0).File.PathWithSeparator}Playlist{postfix}.m3u"
|
||||||
|
If added Then t.SaveAs(f, EDP.SendToLog)
|
||||||
|
If f.Exists Then AddFile(f)
|
||||||
|
t.Dispose()
|
||||||
|
End If
|
||||||
|
Next
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[YouTubeMediaContainerBase.Download.CreatePlaylist]")
|
ErrorsDescriber.Execute(EDP.SendToLog, ex, "[YouTubeMediaContainerBase.Download.CreatePlaylist]")
|
||||||
End Try
|
End Try
|
||||||
@@ -1194,7 +1212,7 @@ Namespace API.YouTube.Objects
|
|||||||
End With
|
End With
|
||||||
|
|
||||||
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 = "Downloading: post processing"
|
||||||
_ThumbnailFile = File
|
_ThumbnailFile = File
|
||||||
_ThumbnailFile.Name &= "_thumb"
|
_ThumbnailFile.Name &= "_thumb"
|
||||||
_ThumbnailFile.Extension = "jpg"
|
_ThumbnailFile.Extension = "jpg"
|
||||||
@@ -1354,15 +1372,29 @@ Namespace API.YouTube.Objects
|
|||||||
'Delete unrequsted files
|
'Delete unrequsted files
|
||||||
If tempFilesList.Count > 0 Then tempFilesList.ForEach(Sub(tfr) If Not tfr.Requested Then tfr.File.Delete(,, EDP.None)) : tempFilesList.Clear()
|
If tempFilesList.Count > 0 Then tempFilesList.ForEach(Sub(tfr) If Not tfr.Requested Then tfr.File.Delete(,, EDP.None)) : tempFilesList.Clear()
|
||||||
|
|
||||||
'Update video FPS
|
If SelectedVideoIndex >= 0 Then
|
||||||
If SelectedVideoIndex >= 0 AndAlso OutputVideoFPS > 0 AndAlso SelectedVideo.Bitrate <> OutputVideoFPS Then
|
Dim reencodeFile As Action(Of String) =
|
||||||
f = File
|
Sub(ByVal ffmpegCommand As String)
|
||||||
f.Name &= "tmp00"
|
f = File
|
||||||
.Execute($"ffmpeg -i ""{File}"" -filter:v fps={OutputVideoFPS.ToString.Replace(",", ".")} -c:a copy ""{f}""")
|
f.Name &= "tmp00"
|
||||||
If f.Exists Then
|
.Execute(String.Format(ffmpegCommand, File.ToString, f.ToString))
|
||||||
File.Delete()
|
If f.Exists Then
|
||||||
SFile.Rename(f, File,, EDP.LogMessageValue)
|
If f.Size > 0 Then
|
||||||
End If
|
File.Delete()
|
||||||
|
SFile.Rename(f, File,, EDP.LogMessageValue)
|
||||||
|
Else
|
||||||
|
f.Delete(, SFODelete.DeletePermanently, EDP.None)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
'Change video codec to AVC
|
||||||
|
If MyYouTubeSettings.DefaultVideoConvertNonAVC.Value AndAlso
|
||||||
|
Not SelectedVideo.Codec.IsEmptyString AndAlso Not SelectedVideo.Codec.Trim.ToLower.StartsWith("avc") Then _
|
||||||
|
reencodeFile("ffmpeg -i ""{0}"" -c:a copy -c:v libx264 ""{1}""")
|
||||||
|
|
||||||
|
'Update video FPS
|
||||||
|
If OutputVideoFPS > 0 AndAlso SelectedVideo.Bitrate <> OutputVideoFPS Then _
|
||||||
|
reencodeFile("ffmpeg -i ""{0}"" -filter:v fps=" & OutputVideoFPS.ToString.Replace(", ", ".") & " -c:a copy ""{1}""")
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -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("2024.6.10.0")>
|
<Assembly: AssemblyVersion("2024.8.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2024.6.10.0")>
|
<Assembly: AssemblyFileVersion("2024.8.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -443,14 +443,18 @@ Namespace API.Instagram
|
|||||||
UserRegex = RParams.DMS(String.Format(UserRegexDefaultPattern, "instagram.com/"), 1)
|
UserRegex = RParams.DMS(String.Format(UserRegexDefaultPattern, "instagram.com/"), 1)
|
||||||
ImageVideoContains = "instagram.com"
|
ImageVideoContains = "instagram.com"
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Const SettingsVersionCurrent As Integer = 2
|
||||||
Friend Overrides Sub EndInit()
|
Friend Overrides Sub EndInit()
|
||||||
Try : MyLastRequests.Add(LastDownloadDate.Value, LastRequestsCount.Value) : Catch : End Try
|
Try : MyLastRequests.Add(LastDownloadDate.Value, LastRequestsCount.Value) : Catch : End Try
|
||||||
If Not CBool(HH_IG_WWW_CLAIM_USE.Value) Then Responser.Headers.Remove(Header_IG_WWW_CLAIM)
|
If Not CBool(HH_IG_WWW_CLAIM_USE.Value) Then Responser.Headers.Remove(Header_IG_WWW_CLAIM)
|
||||||
If CInt(SettingsVersion.Value) < 2 Then
|
If CInt(SettingsVersion.Value) < SettingsVersionCurrent Then
|
||||||
SettingsVersion.Value = 2
|
SettingsVersion.Value = SettingsVersionCurrent
|
||||||
HH_IG_WWW_CLAIM_UPDATE_INTERVAL.Value = 120
|
HH_IG_WWW_CLAIM_UPDATE_INTERVAL.Value = 120
|
||||||
HH_IG_WWW_CLAIM_USE_DEFAULT_ALGO.Value = 1
|
HH_IG_WWW_CLAIM_ALWAYS_ZERO.Value = False
|
||||||
HH_IG_WWW_CLAIM_RESET_EACH_TARGET.Value = 0
|
HH_IG_WWW_CLAIM_RESET_EACH_SESSION.Value = True
|
||||||
|
HH_IG_WWW_CLAIM_RESET_EACH_TARGET.Value = True
|
||||||
|
HH_IG_WWW_CLAIM_USE.Value = True
|
||||||
|
HH_IG_WWW_CLAIM_USE_DEFAULT_ALGO.Value = True
|
||||||
End If
|
End If
|
||||||
MyBase.EndInit()
|
MyBase.EndInit()
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
@@ -11,15 +11,6 @@ Namespace API.OnlyFans
|
|||||||
Friend Module Declarations
|
Friend Module Declarations
|
||||||
Friend ReadOnly DateProvider As New ADateTime("O")
|
Friend ReadOnly DateProvider As New ADateTime("O")
|
||||||
Friend ReadOnly RegExPostID As RParams = RParams.DM("(?<=onlyfans\.com/)(\d+)", 0, EDP.ReturnValue)
|
Friend ReadOnly RegExPostID As RParams = RParams.DM("(?<=onlyfans\.com/)(\d+)", 0, EDP.ReturnValue)
|
||||||
Friend ReadOnly OFScraperConfigPatternFile As SFile = $"{SettingsFolderName}\OFScraperConfigPattern.json"
|
Friend Property Rules As DynamicRulesEnv
|
||||||
Friend Function CheckOFSConfig() As Boolean
|
|
||||||
If Not OFScraperConfigPatternFile.Exists Then
|
|
||||||
Dim t$ = Text.Encoding.UTF8.GetString(My.Resources.OFResources.OFScraperConfigPattern)
|
|
||||||
TextSaver.SaveTextToFile(t, OFScraperConfigPatternFile, True)
|
|
||||||
Return OFScraperConfigPatternFile.Exists
|
|
||||||
Else
|
|
||||||
Return True
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
End Module
|
End Module
|
||||||
End Namespace
|
End Namespace
|
||||||
7
SCrawler/API/OnlyFans/DynamicRules.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
https://github.com/datawhores/onlyfans-dynamic-rules/blob/main/dynamicRules.json
|
||||||
|
https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/main/dynamicRules.json
|
||||||
|
https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/patch-1/dynamicRules.json
|
||||||
|
https://github.com/DATAHOARDERS/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
https://github.com/DIGITALCRIMINAL/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
https://github.com/deviint/onlyfans-dynamic-rules/blob/main/dynamicRules.json
|
||||||
|
https://github.com/rafa-9/dynamic-rules/blob/main/rules.json
|
||||||
11
SCrawler/API/OnlyFans/DynamicRulesAll.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
https://github.com/datawhores/onlyfans-dynamic-rules/blob/main/dynamicRules.json
|
||||||
|
https://github.com/datawhores/onlyfans-dynamic-rules/blob/main/rules.json
|
||||||
|
https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/main/dynamicRules.json
|
||||||
|
https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/patch-1/dynamicRules.json
|
||||||
|
https://github.com/DATAHOARDERS/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
https://github.com/DIGITALCRIMINAL/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
https://github.com/deviint/onlyfans-dynamic-rules/blob/main/dynamicRules.json
|
||||||
|
https://github.com/rafa-9/dynamic-rules/blob/main/rules.json
|
||||||
|
|
||||||
|
https://github.com/SneakyOvis/onlyfans-dynamic-rules/blob/main/rules.json
|
||||||
|
https://github.com/Growik/onlyfans-dynamic-rules/blob/main/rules.json
|
||||||
753
SCrawler/API/OnlyFans/DynamicRulesEnv.vb
Normal file
@@ -0,0 +1,753 @@
|
|||||||
|
' Copyright (C) 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 PersonalUtilities.Functions.XML
|
||||||
|
Imports PersonalUtilities.Functions.XML.Base
|
||||||
|
Imports PersonalUtilities.Functions.RegularExpressions
|
||||||
|
Imports PersonalUtilities.Tools
|
||||||
|
Imports PersonalUtilities.Tools.Web.Clients
|
||||||
|
Imports PersonalUtilities.Tools.Web.Clients.Base
|
||||||
|
Imports PersonalUtilities.Tools.Web.Documents.JSON
|
||||||
|
Imports System.Text.RegularExpressions
|
||||||
|
Namespace API.OnlyFans
|
||||||
|
Friend Structure DynamicRulesValue : Implements IComparable(Of DynamicRulesValue), IEquatable(Of DynamicRulesValue), IEContainerProvider
|
||||||
|
#Region "XML names"
|
||||||
|
Private Const Name_UrlRepo As String = "UrlRepo"
|
||||||
|
Private Const Name_UrlRaw As String = "UrlRaw"
|
||||||
|
Private Const Name_UrlLatestCommit As String = "UrlLatestCommit"
|
||||||
|
Private Const Name_UpdatedAt As String = "UpdatedAt"
|
||||||
|
Private Const Name_Broken As String = "Broken"
|
||||||
|
Private Const Name_Exists As String = "Exists"
|
||||||
|
#End Region
|
||||||
|
#Region "Declarations"
|
||||||
|
Friend UrlRepo As String
|
||||||
|
Friend UrlRaw As String
|
||||||
|
Friend UrlLatestCommit As String
|
||||||
|
Friend UpdatedAt As Date
|
||||||
|
Friend Broken As Boolean
|
||||||
|
Friend Exists As Boolean
|
||||||
|
Friend ReadOnly Property Valid As Boolean
|
||||||
|
Get
|
||||||
|
Return Not UrlRepo.IsEmptyString And Not UrlRaw.IsEmptyString
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
#End Region
|
||||||
|
#Region "Initializers"
|
||||||
|
Friend Sub New(ByVal e As EContainer)
|
||||||
|
UrlRepo = e.Value(Name_UrlRepo)
|
||||||
|
UrlRaw = e.Value(Name_UrlRaw)
|
||||||
|
UrlLatestCommit = e.Value(Name_UrlLatestCommit)
|
||||||
|
UpdatedAt = e.Value(Name_UpdatedAt).ToDateDef(Now.AddYears(-10))
|
||||||
|
Broken = e.Value(Name_Broken).FromXML(Of Boolean)(False)
|
||||||
|
Exists = e.Value(Name_Exists).FromXML(Of Boolean)(True)
|
||||||
|
End Sub
|
||||||
|
Public Shared Widening Operator CType(ByVal e As EContainer) As DynamicRulesValue
|
||||||
|
Return New DynamicRulesValue(e)
|
||||||
|
End Operator
|
||||||
|
Public Shared Widening Operator CType(ByVal rule As DynamicRulesValue) As String
|
||||||
|
Return rule.ToString
|
||||||
|
End Operator
|
||||||
|
#End Region
|
||||||
|
#Region "Base functions"
|
||||||
|
Public Overrides Function GetHashCode() As Integer
|
||||||
|
Return ToString.GetHashCode
|
||||||
|
End Function
|
||||||
|
Public Overrides Function ToString() As String
|
||||||
|
Return UrlRaw
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IComparable Support"
|
||||||
|
Private Function CompareTo(ByVal Other As DynamicRulesValue) As Integer Implements IComparable(Of DynamicRulesValue).CompareTo
|
||||||
|
Return UpdatedAt.CompareTo(Other.UpdatedAt) * -1
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IEquatable Support"
|
||||||
|
Public Overloads Overrides Function Equals(ByVal Obj As Object) As Boolean
|
||||||
|
If Not IsNothing(Obj) Then
|
||||||
|
If TypeOf Obj Is String Then
|
||||||
|
Dim _obj$ = CStr(Obj).StringTrim.StringToLower
|
||||||
|
Return UrlRepo = _obj Or UrlRaw = _obj
|
||||||
|
Else
|
||||||
|
Return Equals(DirectCast(Obj, DynamicRulesValue))
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
Friend Overloads Function Equals(ByVal Other As DynamicRulesValue) As Boolean Implements IEquatable(Of DynamicRulesValue).Equals
|
||||||
|
Return UrlRepo = Other.UrlRepo Or UrlRaw = Other.UrlRaw
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IEContainerProvider Support"
|
||||||
|
Private Function ToEContainer(Optional ByVal e As ErrorsDescriber = Nothing) As EContainer Implements IEContainerProvider.ToEContainer
|
||||||
|
Return New EContainer("Rule") From {
|
||||||
|
New EContainer(Name_UrlRepo, UrlRepo),
|
||||||
|
New EContainer(Name_UrlRaw, UrlRaw),
|
||||||
|
New EContainer(Name_UrlLatestCommit, UrlLatestCommit),
|
||||||
|
New EContainer(Name_UpdatedAt, UpdatedAt.ToStringDateDef),
|
||||||
|
New EContainer(Name_Broken, Broken.BoolToInteger),
|
||||||
|
New EContainer(Name_Exists, Exists.BoolToInteger)
|
||||||
|
}
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
End Structure
|
||||||
|
Friend Class DynamicRulesEnv : Implements ICopier, IEnumerable(Of DynamicRulesValue), IMyEnumerator(Of DynamicRulesValue), IDisposable
|
||||||
|
Friend Enum Modes As Integer
|
||||||
|
List = 0
|
||||||
|
Personal = 1
|
||||||
|
End Enum
|
||||||
|
#Region "Constants"
|
||||||
|
Friend Const UpdateIntervalDefault As Integer = 1440 '60 * 24
|
||||||
|
Friend Const DynamicRulesConfigNodeName_URL As String = "DYNAMIC_GENERIC_URL"
|
||||||
|
Friend Const DynamicRulesConfigNodeName_RULES As String = "DYNAMIC_RULE"
|
||||||
|
|
||||||
|
Friend Const DynamicRulesConfig_Mode_NodeName As String = "dynamic-mode-default"
|
||||||
|
'Friend Const DynamicRulesConfig_Mode_NodeValue As String = "generic"
|
||||||
|
|
||||||
|
Friend Const DynamicRulesConfigNodeName_URL_CONST_NAME As String = "RULE_VALUE"
|
||||||
|
#End Region
|
||||||
|
#Region "XML names"
|
||||||
|
Private Const Name_LastUpdateTimeFile As String = "LastUpdateTimeFile"
|
||||||
|
Private Const Name_LastUpdateTimeRules As String = "LastUpdateTimeRules"
|
||||||
|
Private Const Name_ProtectFile As String = "ProtectFile"
|
||||||
|
Private Const Name_UpdateInterval As String = "UpdateInterval"
|
||||||
|
Private Const Name_Mode As String = "Mode"
|
||||||
|
Private Const Name_PersonalRule As String = "PersonalRule"
|
||||||
|
Private Const Name_RulesForceUpdateRequired As String = "RulesForceUpdateRequired"
|
||||||
|
Private Const Name_AddErrorsToLog As String = "AddErrorsToLog"
|
||||||
|
Private Const Name_ConfigLastDateUpdate As String = "ConfigLastDateUpdate"
|
||||||
|
Private Const Name_ConfigAutoUpdate As String = "ConfigAutoUpdate"
|
||||||
|
Private Const Name_RulesConfigManualMode As String = "RulesConfigManualMode"
|
||||||
|
Private Const Name_RulesUpdateConst As String = "RulesUpdateConst"
|
||||||
|
Private Const Name_RulesReplaceConfig As String = "RulesReplaceConfig"
|
||||||
|
#End Region
|
||||||
|
#Region "Declarations"
|
||||||
|
Private ReadOnly Rules As List(Of DynamicRulesValue)
|
||||||
|
Friend ReadOnly Property RulesConstants As Dictionary(Of String, String)
|
||||||
|
#Region "Regex patterns"
|
||||||
|
Private ReadOnly ReplacePattern_RepoToRaw As RParams
|
||||||
|
Private ReadOnly ReplacePattern_RawToRepo As RParams
|
||||||
|
Private ReadOnly ReplacePattern_JsonInfo As RParams
|
||||||
|
Private ReadOnly ConfigRulesExtract As RParams
|
||||||
|
#End Region
|
||||||
|
#Region "Dates"
|
||||||
|
Private LastUpdateTimeFile As Date = Now.AddYears(-1)
|
||||||
|
Private LastUpdateTimeRules As Date = Now.AddYears(-1)
|
||||||
|
#End Region
|
||||||
|
#Region "Files"
|
||||||
|
Friend ReadOnly OFScraperConfigPatternFile As SFile = $"{SettingsFolderName}\OFScraperConfigPattern.json"
|
||||||
|
Friend ReadOnly OFScraperConfigPatternFileConst As SFile = $"{SettingsFolderName}\OFScraperConfigPatternConstants.txt"
|
||||||
|
Friend ReadOnly Property AuthFile As New SFile($"{SettingsFolderName}\OnlyFans_Auth.json")
|
||||||
|
Private ReadOnly DynamicRulesFile As SFile
|
||||||
|
Private ReadOnly DynamicRulesXml As SFile
|
||||||
|
Private Shared ReadOnly Property DynamicRulesFileImpl As SFile
|
||||||
|
Get
|
||||||
|
Return $"{SettingsFolderName}\OnlyFansDynamicRules.txt"
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend Shared Sub ValidateRulesFile()
|
||||||
|
Dim f As SFile = DynamicRulesFileImpl
|
||||||
|
If Not f.Exists Then TextSaver.SaveTextToFile(My.Resources.OFResources.DynamicRules, DynamicRulesFileImpl, True)
|
||||||
|
End Sub
|
||||||
|
Friend Property ProtectFile As Boolean = False
|
||||||
|
#End Region
|
||||||
|
Friend Property UpdateInterval As Integer = UpdateIntervalDefault
|
||||||
|
Friend Property Mode As Modes = Modes.List
|
||||||
|
Friend Property PersonalRule As String = String.Empty
|
||||||
|
Friend Property RulesForceUpdateRequired As Boolean = False
|
||||||
|
Friend Property RulesUpdateConst As Boolean = True
|
||||||
|
Friend Property RulesReplaceConfig As Boolean = True
|
||||||
|
Private ReadOnly Responser As New Responser With {.Accept = "application/json"}
|
||||||
|
Private ReadOnly RulesLinesComparer As New FComparer(Of String)(Function(x, y) x.StringToLower = y.StringToLower)
|
||||||
|
Private ReadOnly OFLOG As TextSaver
|
||||||
|
Private ReadOnly OFError As ErrorsDescriber
|
||||||
|
Friend Property AddErrorsToLog As Boolean = True
|
||||||
|
Friend Property NeedToSave As Boolean = False
|
||||||
|
Private ReadOnly Property ConfigAddress As DynamicRulesValue
|
||||||
|
Private ReadOnly Property ConfigConstAddress As DynamicRulesValue
|
||||||
|
Private Property ConfigLastDateUpdate As Date = Now.AddYears(-1)
|
||||||
|
Friend Property ConfigAutoUpdate As Boolean = True
|
||||||
|
Friend Property RulesConfigManualMode As Boolean = True
|
||||||
|
#End Region
|
||||||
|
#Region "Current, Item, Count"
|
||||||
|
Private _CurrentRule As DynamicRulesValue
|
||||||
|
Private _CurrentContainer As EContainer
|
||||||
|
Private _CurrentContainerRulesText As String = String.Empty
|
||||||
|
Friend ReadOnly Property CurrentRule As DynamicRulesValue
|
||||||
|
Get
|
||||||
|
Return _CurrentRule
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend ReadOnly Property CurrentContainer As EContainer
|
||||||
|
Get
|
||||||
|
Return _CurrentContainer
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend ReadOnly Property CurrentContainerRulesText As String
|
||||||
|
Get
|
||||||
|
If _CurrentContainerRulesText.IsEmptyString AndAlso AuthFile.Exists Then _
|
||||||
|
_CurrentContainerRulesText = AuthFile.GetText(OFError).StringTrim
|
||||||
|
Return _CurrentContainerRulesText
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend ReadOnly Property Exists As Boolean
|
||||||
|
Get
|
||||||
|
Return CurrentContainer.ListExists
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Default Friend ReadOnly Property Item(ByVal Index As Integer) As DynamicRulesValue Implements IMyEnumerator(Of DynamicRulesValue).MyEnumeratorObject
|
||||||
|
Get
|
||||||
|
Return Rules(Index)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Friend ReadOnly Property Count As Integer Implements IMyEnumerator(Of DynamicRulesValue).MyEnumeratorCount
|
||||||
|
Get
|
||||||
|
Return Rules.Count
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
#End Region
|
||||||
|
#Region "Initializer"
|
||||||
|
Friend Sub New()
|
||||||
|
Rules = New List(Of DynamicRulesValue)
|
||||||
|
DynamicRulesFile = DynamicRulesFileImpl
|
||||||
|
DynamicRulesXml = DynamicRulesFile
|
||||||
|
DynamicRulesXml.Extension = "xml"
|
||||||
|
ReplacePattern_RepoToRaw = New RParams("(.*github.com/([^/]+)/([^/]+)/blob/(.+))", Nothing, 0,
|
||||||
|
RegexReturn.ReplaceChangeListMatch, EDP.ReturnValue) With {
|
||||||
|
.PatternReplacement = "https://raw.githubusercontent.com/{2}/{3}/{4}"}
|
||||||
|
ReplacePattern_JsonInfo = ReplacePattern_RepoToRaw.Copy
|
||||||
|
ReplacePattern_JsonInfo.PatternReplacement = "https://github.com/{2}/{3}/latest-commit/{4}"
|
||||||
|
ReplacePattern_RawToRepo = ReplacePattern_RepoToRaw.Copy
|
||||||
|
ReplacePattern_RawToRepo.Pattern = "(.*raw.githubusercontent.com/([^/]+)/([^/]+)/([^/]+)/(.+))"
|
||||||
|
ReplacePattern_RawToRepo.PatternReplacement = "https://github.com/{2}/{3}/blob/{4}/{5}"
|
||||||
|
ConfigRulesExtract = RParams.DMS("DYNAMIC_RULE"":(\{.+?\}[\r\n]+)", 1, RegexOptions.Singleline, EDP.ReturnValue)
|
||||||
|
OFLOG = New TextSaver($"LOGs\OF_{Now:yyyyMMdd_HHmmss}.txt") With {.LogMode = True, .AutoSave = True, .AutoClear = True}
|
||||||
|
AddHandler OFLOG.TextSaved, AddressOf OFLOG_TextSaved
|
||||||
|
OFError = New ErrorsDescriber(EDP.SendToLog + EDP.ReturnValue) With {.DeclaredMessage = New MMessage With {.Loggers = {OFLOG}, .Exists = True}}
|
||||||
|
Responser.DeclaredError = OFError
|
||||||
|
Responser.ProcessExceptionDecision =
|
||||||
|
Function(ByVal Status As IResponserStatus, ByVal NullArg As Object, ByVal CurrentError As ErrorsDescriber) As ErrorsDescriber
|
||||||
|
If Status.StatusCode = Net.HttpStatusCode.NotFound Then
|
||||||
|
CurrentError.SendToLogOnlyMessage = True
|
||||||
|
Dim m As MMessage = CurrentError.DeclaredMessage.Clone
|
||||||
|
m.Text = $"Nothing found at URL: {Responser.LatestUrlString}"
|
||||||
|
CurrentError.DeclaredMessage = m
|
||||||
|
Status.ErrorException = New ErrorsDescriberException(m.Text,,, Status.ErrorException) With {.ReplaceMainMessage = True}
|
||||||
|
End If
|
||||||
|
Return CurrentError
|
||||||
|
End Function
|
||||||
|
ConfigAddress = ParseURL("https://github.com/AAndyProgram/SCrawler/blob/main/SCrawler/API/OnlyFans/OFScraperConfigPattern.json")
|
||||||
|
ConfigConstAddress = ParseURL("https://github.com/AAndyProgram/SCrawler/blob/main/SCrawler/API/OnlyFans/OFScraperConfigPatternConstants.txt")
|
||||||
|
RulesConstants = New Dictionary(Of String, String)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Log handlers"
|
||||||
|
Private _OFLOG_ProcessNotify As Boolean = True
|
||||||
|
Private Sub OFLOG_TextSaved(sender As Object, e As EventArgs)
|
||||||
|
If _OFLOG_ProcessNotify And AddErrorsToLog Then _OFLOG_ProcessNotify = False : MyMainLOG = $"The OnlyFans log contains errors: {OFLOG.File}"
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "ParseURL"
|
||||||
|
Private Const SiteGitHub As String = "github.com"
|
||||||
|
Private Const SiteGitHubRaw As String = "raw.githubusercontent.com"
|
||||||
|
Friend Function ParseURL(ByVal URL As String) As DynamicRulesValue
|
||||||
|
URL = URL.StringTrim
|
||||||
|
If Not URL.IsEmptyString Then
|
||||||
|
Dim r As New DynamicRulesValue
|
||||||
|
Dim rGet As Func(Of String, RParams, String) = Function(__url, pattern) DirectCast(RegexReplace(__url, pattern), IEnumerable(Of String)).FirstOrDefault
|
||||||
|
If URL.ToLower.Contains(SiteGitHubRaw) Then
|
||||||
|
r.UrlRaw = URL
|
||||||
|
r.UrlRepo = rGet(URL, ReplacePattern_RawToRepo)
|
||||||
|
ElseIf URL.ToLower.Contains(SiteGitHub) Then
|
||||||
|
r.UrlRepo = URL
|
||||||
|
r.UrlRaw = rGet(URL, ReplacePattern_RepoToRaw)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If r.Valid Then
|
||||||
|
r.UpdatedAt = Now.AddYears(-1)
|
||||||
|
r.UrlLatestCommit = rGet(r.UrlRepo, ReplacePattern_JsonInfo)
|
||||||
|
r.Exists = True
|
||||||
|
Return r
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return Nothing
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "GetFormat"
|
||||||
|
Private Shared ReadOnly Property ConfigNodes As String()
|
||||||
|
Get
|
||||||
|
Return {"advanced_options", "DYNAMIC_RULE"}
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
Private Const FormatMidPart As String = ":{0}:{1:x}:"
|
||||||
|
Private ReadOnly FormatExtract As RParams = RParams.DM("(\S+)\s*:\s*\{\s*\d?\s*\}\s*:\s*\{\s*\d?\s*:\s*x\s*\}\s*:\s*(\S+)", 0, RegexReturn.ListByMatch, EDP.ReturnValue)
|
||||||
|
Private ReadOnly ContainerStrConv As New CustomProvider(Function(input) If(ACheck(Of Integer)(input), input, $"""{input}"""))
|
||||||
|
Private ReadOnly ContainerConv As New CustomProvider(Function(ByVal e As Object) As Object
|
||||||
|
With DirectCast(e, EContainer)
|
||||||
|
Dim value$ = String.Empty
|
||||||
|
If .ListExists Then
|
||||||
|
value = .Select(Function(ee) ee(0).Value).ListToStringE(",", ContainerStrConv, False, String.Empty, EDP.ReturnValue)
|
||||||
|
If Not value.IsEmptyString Then value = $"[{value}]"
|
||||||
|
Else
|
||||||
|
value = AConvert(Of String)(.Value, ContainerStrConv, String.Empty, EDP.SendToLog, EDP.ReturnValue)
|
||||||
|
End If
|
||||||
|
If Not value.IsEmptyString Then
|
||||||
|
value = $"""{ .Name}"": {value}"
|
||||||
|
Else
|
||||||
|
value = $"""{ .Name}"": """""
|
||||||
|
End If
|
||||||
|
Return value
|
||||||
|
End With
|
||||||
|
End Function)
|
||||||
|
Friend Shared Function GetFormat(ByVal j As EContainer, Optional ByVal Check As Boolean = False,
|
||||||
|
Optional ByRef CheckResult As Boolean = False,
|
||||||
|
Optional ByVal TryConfig As Boolean = False, Optional ByRef IsConfig As Boolean = False) As String
|
||||||
|
Dim pattern$ = String.Empty
|
||||||
|
With If(TryConfig, j(ConfigNodes), j)
|
||||||
|
If .ListExists Then
|
||||||
|
If Not .Value("format").IsEmptyString Then
|
||||||
|
pattern = .Value("format").Replace("{}", "{0}").Replace("{:x}", "{1:x}")
|
||||||
|
ElseIf Not .Value("prefix").IsEmptyString And Not .Value("suffix").IsEmptyString Then
|
||||||
|
pattern = .Value("prefix") & FormatMidPart & .Value("suffix")
|
||||||
|
ElseIf Not .Value("start").IsEmptyString And Not .Value("end").IsEmptyString Then
|
||||||
|
pattern = .Value("start") & FormatMidPart & .Value("end")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim result As Boolean = Not pattern.IsEmptyString And .Item("checksum_indexes").ListExists And
|
||||||
|
Not .Value("static_param").IsEmptyString And Not .Value("checksum_constant").IsEmptyString
|
||||||
|
If Check Then CheckResult = result
|
||||||
|
If Not result And Not TryConfig Then Return GetFormat(j, Check, CheckResult, True, IsConfig)
|
||||||
|
End If
|
||||||
|
End With
|
||||||
|
Return pattern
|
||||||
|
End Function
|
||||||
|
Private Function ConvertAuthText() As String
|
||||||
|
Dim result$ = String.Empty
|
||||||
|
With CurrentContainer
|
||||||
|
If .ListExists Then
|
||||||
|
Dim f$ = GetFormat(.Self)
|
||||||
|
If Not f.IsEmptyString Then
|
||||||
|
Dim l As List(Of String) = RegexReplace(f, FormatExtract)
|
||||||
|
If l.ListExists(3) Then
|
||||||
|
Dim s$ = l(1), e$ = l(2)
|
||||||
|
.Value("format") = s & FormatMidPart & e
|
||||||
|
.Value("prefix") = s
|
||||||
|
.Value("suffix") = e
|
||||||
|
.Value("start") = s
|
||||||
|
.Value("end") = e
|
||||||
|
Dim t$ = .ListToStringE(",", ContainerConv, False)
|
||||||
|
If Not t.IsEmptyString Then t = "{" & t & "}"
|
||||||
|
Return t
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End With
|
||||||
|
Return String.Empty
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "Load, Save"
|
||||||
|
Private Function GetTextLines(ByVal Input As String) As List(Of String)
|
||||||
|
If Not Input.IsEmptyString Then
|
||||||
|
Return ListAddList(Nothing, Input.StringTrim.Split(vbLf), LAP.NotContainsOnly, EDP.ReturnValue,
|
||||||
|
CType(Function(inp$) inp.StringTrim, Func(Of Object, Object)))
|
||||||
|
Else
|
||||||
|
Return New List(Of String)
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
Private Sub ParseConsts(ByVal Source As String)
|
||||||
|
If Not Source.IsEmptyString Then
|
||||||
|
Dim l As List(Of String) = GetTextLines(Source)
|
||||||
|
Dim v$()
|
||||||
|
If l.ListExists Then
|
||||||
|
RulesConstants.Clear()
|
||||||
|
For Each value$ In l
|
||||||
|
If Not value.IsEmptyString Then
|
||||||
|
v = value.Split("=")
|
||||||
|
If v.ListExists(2) Then RulesConstants.Add(v(0), v(1))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Private Const RulesNode As String = "Rules"
|
||||||
|
Private _InitialValuesLoaded As Boolean = False
|
||||||
|
Private Sub LoadInitialValues()
|
||||||
|
If Not _InitialValuesLoaded Then
|
||||||
|
_InitialValuesLoaded = True
|
||||||
|
|
||||||
|
If Not OFScraperConfigPatternFile.Exists Then
|
||||||
|
Dim t$ = Text.Encoding.UTF8.GetString(My.Resources.OFResources.OFScraperConfigPattern)
|
||||||
|
TextSaver.SaveTextToFile(t, OFScraperConfigPatternFile, True)
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not OFScraperConfigPatternFileConst.Exists Then _
|
||||||
|
TextSaver.SaveTextToFile(My.Resources.OFResources.OFScraperConfigPatternConstants, OFScraperConfigPatternFileConst, True)
|
||||||
|
|
||||||
|
If OFScraperConfigPatternFileConst.Exists Then ParseConsts(OFScraperConfigPatternFileConst.GetText(OFError))
|
||||||
|
|
||||||
|
If DynamicRulesXml.Exists Then
|
||||||
|
Rules.Clear()
|
||||||
|
Using x As New XmlFile(DynamicRulesXml, Protector.Modes.All, False) With {.XmlReadOnly = True, .AllowSameNames = True}
|
||||||
|
x.LoadData(OFError)
|
||||||
|
Dim dNull As Date = Now.AddYears(-1)
|
||||||
|
LastUpdateTimeFile = x.Value(Name_LastUpdateTimeFile).ToDateDef(dNull)
|
||||||
|
LastUpdateTimeRules = x.Value(Name_LastUpdateTimeRules).ToDateDef(dNull)
|
||||||
|
ProtectFile = x.Value(Name_ProtectFile).FromXML(Of Boolean)(False)
|
||||||
|
Mode = x.Value(Name_Mode).FromXML(Of Integer)(Modes.List)
|
||||||
|
UpdateInterval = x.Value(Name_UpdateInterval).FromXML(Of Integer)(UpdateIntervalDefault)
|
||||||
|
PersonalRule = x.Value(Name_PersonalRule)
|
||||||
|
RulesForceUpdateRequired = x.Value(Name_RulesForceUpdateRequired).FromXML(Of Boolean)(False)
|
||||||
|
RulesUpdateConst = x.Value(Name_RulesUpdateConst).FromXML(Of Boolean)(True)
|
||||||
|
RulesReplaceConfig = x.Value(Name_RulesReplaceConfig).FromXML(Of Boolean)(True)
|
||||||
|
AddErrorsToLog = x.Value(Name_AddErrorsToLog).FromXML(Of Boolean)(False)
|
||||||
|
ConfigAutoUpdate = x.Value(Name_ConfigAutoUpdate).FromXML(Of Boolean)(True)
|
||||||
|
RulesConfigManualMode = x.Value(Name_RulesConfigManualMode).FromXML(Of Boolean)(True)
|
||||||
|
ConfigLastDateUpdate = x.Value(Name_ConfigLastDateUpdate).ToDateDef(Now.AddYears(-1))
|
||||||
|
If x.Contains(RulesNode) Then Rules.ListAddList(x({RulesNode}), LAP.IgnoreICopier, OFError)
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Friend Sub Save()
|
||||||
|
Using x As New XmlFile With {.AllowSameNames = True, .Name = "DynamicRules"}
|
||||||
|
x.Add(Name_LastUpdateTimeFile, LastUpdateTimeFile.ToStringDateDef)
|
||||||
|
x.Add(Name_LastUpdateTimeRules, LastUpdateTimeRules.ToStringDateDef)
|
||||||
|
x.Add(Name_ProtectFile, ProtectFile.BoolToInteger)
|
||||||
|
x.Add(Name_Mode, CInt(Mode))
|
||||||
|
x.Add(Name_UpdateInterval, UpdateInterval)
|
||||||
|
x.Add(Name_PersonalRule, PersonalRule)
|
||||||
|
x.Add(Name_RulesForceUpdateRequired, RulesForceUpdateRequired.BoolToInteger)
|
||||||
|
x.Add(Name_RulesUpdateConst, RulesUpdateConst.BoolToInteger)
|
||||||
|
x.Add(Name_RulesReplaceConfig, RulesReplaceConfig.BoolToInteger)
|
||||||
|
x.Add(Name_AddErrorsToLog, AddErrorsToLog.BoolToInteger)
|
||||||
|
x.Add(Name_ConfigAutoUpdate, ConfigAutoUpdate.BoolToInteger)
|
||||||
|
x.Add(Name_RulesConfigManualMode, RulesConfigManualMode.BoolToInteger)
|
||||||
|
x.Add(Name_ConfigLastDateUpdate, ConfigLastDateUpdate.ToStringDateDef)
|
||||||
|
If Count > 0 Then
|
||||||
|
Rules.Sort()
|
||||||
|
x.Add(New EContainer(RulesNode))
|
||||||
|
x.Last.AddRange(Rules)
|
||||||
|
End If
|
||||||
|
x.Save(DynamicRulesXml, OFError)
|
||||||
|
End Using
|
||||||
|
If Count > 0 Then
|
||||||
|
Using t As New TextSaver(DynamicRulesFile)
|
||||||
|
Rules.ForEach(Sub(r) If Not r.UrlRepo.IsEmptyString Then t.AppendLine(r.UrlRepo))
|
||||||
|
t.Save(OFError)
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Update"
|
||||||
|
Private _UpdateInProgress As Boolean = False
|
||||||
|
Private _ForcedUpdate As Boolean = False
|
||||||
|
Friend Function Update(ByVal Force As Boolean, Optional ByVal LoadListOnly As Boolean = False) As Boolean
|
||||||
|
Dim skip As Boolean = _UpdateInProgress
|
||||||
|
If skip And _ForcedUpdate Then Force = False
|
||||||
|
_ForcedUpdate = Force
|
||||||
|
While _UpdateInProgress : Threading.Thread.Sleep(200) : End While
|
||||||
|
If Not skip Or Force Then UpdateImpl(Force Or RulesForceUpdateRequired, LoadListOnly)
|
||||||
|
Return Exists
|
||||||
|
End Function
|
||||||
|
Private Sub UpdateImpl(ByVal Force As Boolean, Optional ByVal LoadListOnly As Boolean = False)
|
||||||
|
Try
|
||||||
|
If Not _UpdateInProgress Then
|
||||||
|
_UpdateInProgress = True
|
||||||
|
|
||||||
|
LoadInitialValues()
|
||||||
|
|
||||||
|
Dim r$
|
||||||
|
Dim process As Boolean = False, updated As Boolean = False
|
||||||
|
Dim forceSave As Boolean = RulesForceUpdateRequired Or Not DynamicRulesFile.Exists Or Not DynamicRulesXml.Exists
|
||||||
|
Dim textLocal As List(Of String)
|
||||||
|
Dim i%
|
||||||
|
Dim rule As DynamicRulesValue
|
||||||
|
Dim e As EContainer
|
||||||
|
Dim errDate As Date = Now.AddYears(-1)
|
||||||
|
Dim d As Date?
|
||||||
|
'2024-06-12T12:44:06.000-05:00
|
||||||
|
Dim dateProvider As New ADateTime("yyyy-MM-ddTHH:mm:ss.fff%K")
|
||||||
|
|
||||||
|
RulesForceUpdateRequired = False
|
||||||
|
|
||||||
|
If Not DynamicRulesFile.Exists Then process = True : ValidateRulesFile()
|
||||||
|
|
||||||
|
'update rules list
|
||||||
|
If Not LoadListOnly And (LastUpdateTimeFile.AddMinutes(UpdateInterval) < Now Or process Or Force) Then
|
||||||
|
LastUpdateTimeFile = Now
|
||||||
|
r = Responser.GetResponse("https://raw.githubusercontent.com/AAndyProgram/SCrawler/main/SCrawler/API/OnlyFans/DynamicRules.txt")
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
Dim textWeb As List(Of String) = GetTextLines(r)
|
||||||
|
Dim fileText$
|
||||||
|
If textWeb.ListExists Then
|
||||||
|
Using t As New TextSaver(DynamicRulesFile)
|
||||||
|
If ProtectFile Then
|
||||||
|
fileText = DynamicRulesFile.GetText(OFError)
|
||||||
|
t.Append(fileText)
|
||||||
|
textLocal = GetTextLines(fileText)
|
||||||
|
If textLocal.ListExists Then _
|
||||||
|
textLocal.ForEach(Sub(tt) If Not tt.IsEmptyString AndAlso Not textWeb.Contains(tt, RulesLinesComparer) Then _
|
||||||
|
t.AppendLine(tt) : updated = True) : textLocal.Clear()
|
||||||
|
Else
|
||||||
|
t.Append(r)
|
||||||
|
updated = True
|
||||||
|
End If
|
||||||
|
t.Save(OFError)
|
||||||
|
End Using
|
||||||
|
textWeb.Clear()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
'update config and consts
|
||||||
|
If Not LoadListOnly AndAlso ConfigAutoUpdate AndAlso ConfigLastDateUpdate.AddMinutes(UpdateInterval) < Now Then
|
||||||
|
Dim __upConf As Boolean = False
|
||||||
|
Dim __dConf As Date = ConfigLastDateUpdate
|
||||||
|
Dim parseConfigFiles As Action(Of DynamicRulesValue, SFile, Boolean) =
|
||||||
|
Sub(ByVal __rule As DynamicRulesValue, ByVal __fileSave As SFile, ByVal isConstFile As Boolean)
|
||||||
|
r = Responser.GetResponse(__rule.UrlLatestCommit)
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
e = JsonDocument.Parse(r, OFError)
|
||||||
|
If e.ListExists Then
|
||||||
|
d = AConvert(Of Date)(e.Value("date"), dateProvider, Nothing)
|
||||||
|
Dim dConf As Date = If(d, errDate)
|
||||||
|
If dConf > __dConf Then
|
||||||
|
__dConf = dConf
|
||||||
|
__upConf = True
|
||||||
|
updated = True
|
||||||
|
r = Responser.GetResponse(__rule.UrlRaw)
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
TextSaver.SaveTextToFile(r, __fileSave, True, False, OFError)
|
||||||
|
If isConstFile Then ParseConsts(r)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
e.Dispose()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
'Update consts
|
||||||
|
If RulesUpdateConst Then parseConfigFiles(ConfigConstAddress, OFScraperConfigPatternFileConst, True)
|
||||||
|
'Update config
|
||||||
|
parseConfigFiles(ConfigAddress, OFScraperConfigPatternFile, False)
|
||||||
|
If __upConf Then ConfigLastDateUpdate = Now
|
||||||
|
End If
|
||||||
|
|
||||||
|
'generate rules, update rules dates
|
||||||
|
If LastUpdateTimeRules.AddMinutes(UpdateInterval) < Now Or updated Or Force Or LoadListOnly Then
|
||||||
|
process = True
|
||||||
|
If Mode = Modes.Personal And Not PersonalRule.IsEmptyString Then
|
||||||
|
If Not LoadListOnly Then LastUpdateTimeRules = Now : updated = True
|
||||||
|
Else
|
||||||
|
If Not LoadListOnly Then LastUpdateTimeRules = Now : updated = True
|
||||||
|
textLocal = GetTextLines(DynamicRulesFile.GetText(OFError))
|
||||||
|
If textLocal.ListExists Then
|
||||||
|
If Not LoadListOnly And Count > 0 Then
|
||||||
|
For i = 0 To Count - 1
|
||||||
|
rule = Rules(i)
|
||||||
|
rule.Exists = False
|
||||||
|
Rules(i) = rule
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
For Each url$ In textLocal
|
||||||
|
url = url.StringTrim
|
||||||
|
If Not url.IsEmptyString Then
|
||||||
|
i = IndexOf(url)
|
||||||
|
If i >= 0 Then
|
||||||
|
rule = Rules(i)
|
||||||
|
Else
|
||||||
|
rule = ParseURL(url)
|
||||||
|
If rule.Valid Then
|
||||||
|
i = Add(rule, False, False)
|
||||||
|
Else
|
||||||
|
rule = Nothing
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not LoadListOnly Then
|
||||||
|
If i >= 0 And rule.Valid And Not rule.UrlLatestCommit.IsEmptyString Then
|
||||||
|
rule.Exists = True
|
||||||
|
r = Responser.GetResponse(rule.UrlLatestCommit)
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
e = JsonDocument.Parse(r, OFError)
|
||||||
|
If e.ListExists Then
|
||||||
|
d = AConvert(Of Date)(e.Value("date"), dateProvider, Nothing)
|
||||||
|
rule.UpdatedAt = If(d, errDate)
|
||||||
|
e.Dispose()
|
||||||
|
Else
|
||||||
|
rule.Broken = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
rule.Broken = True
|
||||||
|
End If
|
||||||
|
Rules(i) = rule
|
||||||
|
End If
|
||||||
|
If Rules.RemoveAll(Function(rr) Not rr.Exists) > 0 Then updated = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Count > 0 Then Rules.Sort()
|
||||||
|
|
||||||
|
'download and load the rule
|
||||||
|
If (LoadListOnly And AuthFile.Exists) Or (Not LoadListOnly And ((updated And Count > 0) Or Not AuthFile.Exists)) Then
|
||||||
|
_CurrentRule = Nothing
|
||||||
|
_CurrentContainer.DisposeIfReady
|
||||||
|
_CurrentContainer = Nothing
|
||||||
|
Dim processRule As Func(Of DynamicRulesValue, Boolean, DialogResult) =
|
||||||
|
Function(ByVal __rule As DynamicRulesValue, ByVal reparseAuth As Boolean) As DialogResult
|
||||||
|
Dim fromAuthFile As Boolean = (LoadListOnly Or reparseAuth) AndAlso AuthFile.Exists
|
||||||
|
If fromAuthFile Then
|
||||||
|
r = AuthFile.GetText(OFError)
|
||||||
|
Else
|
||||||
|
r = GetWebString(__rule.UrlRaw,, OFError)
|
||||||
|
End If
|
||||||
|
Dim j As EContainer = JsonDocument.Parse(r, OFError)
|
||||||
|
Dim checkResult As Boolean = False
|
||||||
|
Dim isConfig As Boolean = False
|
||||||
|
Dim textToSave As String = r
|
||||||
|
If j.ListExists AndAlso Not GetFormat(j, True, checkResult,, isConfig).IsEmptyString AndAlso checkResult Then
|
||||||
|
If isConfig Then textToSave = RegexReplace(r, ConfigRulesExtract)
|
||||||
|
If textToSave.IsEmptyString Then
|
||||||
|
Return DialogResult.Retry
|
||||||
|
Else
|
||||||
|
_CurrentRule = __rule
|
||||||
|
_CurrentContainer = If(isConfig, j(ConfigNodes), j)
|
||||||
|
textToSave = ConvertAuthText()
|
||||||
|
_CurrentContainerRulesText = textToSave
|
||||||
|
If (Not fromAuthFile Or Not textToSave.StringTrim = r.StringTrim) And Not textToSave.IsEmptyString Then
|
||||||
|
TextSaver.SaveTextToFile(textToSave, AuthFile, True, False, OFError)
|
||||||
|
If Not reparseAuth Then processRule(__rule, True)
|
||||||
|
End If
|
||||||
|
Return DialogResult.OK
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return DialogResult.No
|
||||||
|
End Function
|
||||||
|
If Mode = Modes.Personal And Not PersonalRule.IsEmptyString Then
|
||||||
|
processRule(New DynamicRulesValue With {.UrlRepo = PersonalRule, .UrlRaw = PersonalRule}, False)
|
||||||
|
Else
|
||||||
|
For Each rule In Rules
|
||||||
|
If rule.Valid And Not rule.Broken Then
|
||||||
|
Select Case processRule(rule, False)
|
||||||
|
Case DialogResult.Retry : Continue For
|
||||||
|
Case DialogResult.OK : Exit For
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If updated Or forceSave Then Save()
|
||||||
|
|
||||||
|
_UpdateInProgress = False
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
ErrorsDescriber.Execute(OFError, ex, "[OnlyFans.DynamicRulesEnv.UpdateImpl]")
|
||||||
|
_UpdateInProgress = False
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Add, IndexOf"
|
||||||
|
Friend Function Add(ByVal Rule As DynamicRulesValue, Optional ByVal AutoSort As Boolean = True, Optional ByVal AutoSave As Boolean = False) As Integer
|
||||||
|
If Rule.Valid Then
|
||||||
|
Dim i% = IndexOf(Rule)
|
||||||
|
If i = -1 Then
|
||||||
|
Rules.Add(Rule)
|
||||||
|
i = Count - 1
|
||||||
|
If AutoSort Then Rules.Sort() : i = IndexOf(Rule)
|
||||||
|
If AutoSave Then Save()
|
||||||
|
End If
|
||||||
|
Return i
|
||||||
|
Else
|
||||||
|
Return -1
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
Friend Function RemoveAt(ByVal Index As Integer) As Boolean
|
||||||
|
If Index.ValueBetween(0, Count - 1) Then
|
||||||
|
Rules.RemoveAt(Index)
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
Friend Function IndexOf(ByVal URL As String) As Integer
|
||||||
|
If Count > 0 Then
|
||||||
|
URL = URL.StringToLower.Trim
|
||||||
|
Return Rules.FindIndex(Function(r) r.UrlRepo.StringToLower = URL Or r.UrlRaw.StringToLower = URL Or r.UrlLatestCommit.StringToLower = URL)
|
||||||
|
Else
|
||||||
|
Return -1
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "ICopier Support"
|
||||||
|
Friend Overloads Function Copy() As Object Implements ICopier.Copy
|
||||||
|
Return (New DynamicRulesEnv).Copy(Me)
|
||||||
|
End Function
|
||||||
|
Friend Overloads Function Copy(ByVal Source As Object) As Object Implements ICopier.Copy
|
||||||
|
Return Copy(Source, False)
|
||||||
|
End Function
|
||||||
|
Friend Overloads Function Copy(ByVal Source As Object, ByVal UpdateForceProperty As Boolean) As Object
|
||||||
|
If Not Source Is Nothing Then
|
||||||
|
With DirectCast(Source, DynamicRulesEnv)
|
||||||
|
If Not RulesForceUpdateRequired And UpdateForceProperty Then _
|
||||||
|
RulesForceUpdateRequired = Not Rules.ListEquals(.Rules) Or Not Mode = .Mode Or
|
||||||
|
(.Mode = Modes.Personal And Not PersonalRule = .PersonalRule)
|
||||||
|
ProtectFile = .ProtectFile
|
||||||
|
Mode = .Mode
|
||||||
|
UpdateInterval = .UpdateInterval
|
||||||
|
PersonalRule = .PersonalRule
|
||||||
|
If Not RulesForceUpdateRequired Then RulesForceUpdateRequired = .RulesForceUpdateRequired
|
||||||
|
RulesUpdateConst = .RulesUpdateConst
|
||||||
|
RulesReplaceConfig = .RulesReplaceConfig
|
||||||
|
AddErrorsToLog = .AddErrorsToLog
|
||||||
|
ConfigAutoUpdate = .ConfigAutoUpdate
|
||||||
|
RulesConfigManualMode = .RulesConfigManualMode
|
||||||
|
Rules.Clear()
|
||||||
|
If .Count > 0 Then Rules.AddRange(.Rules)
|
||||||
|
End With
|
||||||
|
Return Me
|
||||||
|
Else
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IEnumerable Support"
|
||||||
|
Private Function GetEnumerator() As IEnumerator(Of DynamicRulesValue) Implements IEnumerable(Of DynamicRulesValue).GetEnumerator
|
||||||
|
Return New MyEnumerator(Of DynamicRulesValue)(Me)
|
||||||
|
End Function
|
||||||
|
Private Function IEnumerable_GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
|
||||||
|
Return GetEnumerator()
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
#Region "IDisposable Support"
|
||||||
|
Private disposedValue As Boolean = False
|
||||||
|
Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
If Not disposedValue Then
|
||||||
|
If disposing Then
|
||||||
|
Rules.Clear()
|
||||||
|
_CurrentContainer.DisposeIfReady
|
||||||
|
Responser.DisposeIfReady
|
||||||
|
End If
|
||||||
|
_CurrentContainer = Nothing
|
||||||
|
disposedValue = True
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Protected Overrides Sub Finalize()
|
||||||
|
Dispose(False)
|
||||||
|
MyBase.Finalize()
|
||||||
|
End Sub
|
||||||
|
Friend Overloads Sub Dispose() Implements IDisposable.Dispose
|
||||||
|
Dispose(True)
|
||||||
|
GC.SuppressFinalize(Me)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
24
SCrawler/API/OnlyFans/OFResources.Designer.vb
generated
@@ -64,6 +64,20 @@ Namespace My.Resources
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to https://github.com/datawhores/onlyfans-dynamic-rules/blob/main/dynamicRules.json
|
||||||
|
'''https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/main/dynamicRules.json
|
||||||
|
'''https://github.com/riley-access-labs/onlyfans-dynamic-rules-1/blob/patch-1/dynamicRules.json
|
||||||
|
'''https://github.com/DATAHOARDERS/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
'''https://github.com/DIGITALCRIMINAL/dynamic-rules/blob/main/onlyfans.json
|
||||||
|
'''https://github.com/deviint/onlyfans-dynamic-rules/blob/main/dynamicRules.json.
|
||||||
|
'''</summary>
|
||||||
|
Friend Shared ReadOnly Property DynamicRules() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("DynamicRules", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
'''<summary>
|
'''<summary>
|
||||||
''' Looks up a localized resource of type System.Byte[].
|
''' Looks up a localized resource of type System.Byte[].
|
||||||
'''</summary>
|
'''</summary>
|
||||||
@@ -73,5 +87,15 @@ Namespace My.Resources
|
|||||||
Return CType(obj,Byte())
|
Return CType(obj,Byte())
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized string similar to dynamic-mode-default=generic
|
||||||
|
'''RULE_VALUE=DYNAMIC_GENERIC_URL.
|
||||||
|
'''</summary>
|
||||||
|
Friend Shared ReadOnly Property OFScraperConfigPatternConstants() As String
|
||||||
|
Get
|
||||||
|
Return ResourceManager.GetString("OFScraperConfigPatternConstants", resourceCulture)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
|
|||||||
@@ -118,7 +118,13 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="DynamicRules" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>DynamicRules.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||||
|
</data>
|
||||||
<data name="OFScraperConfigPattern" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="OFScraperConfigPattern" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>OFScraperConfigPattern.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>OFScraperConfigPattern.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OFScraperConfigPatternConstants" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>OFScraperConfigPatternConstants.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -1,65 +1,63 @@
|
|||||||
{
|
{
|
||||||
"config": {
|
"main_profile": "main_profile",
|
||||||
"main_profile": "main_profile",
|
"metadata": "{configpath}/{profile}/.data/{model_username}_{model_id}",
|
||||||
"metadata": "{configpath}/{profile}/.data/{model_username}_{model_id}",
|
"discord": "",
|
||||||
"discord": "",
|
"file_options": {
|
||||||
"file_options": {
|
"save_location": "",
|
||||||
"save_location": "",
|
"dir_format": "",
|
||||||
"dir_format": "",
|
"file_format": "{filename}.{ext}",
|
||||||
"file_format": "{filename}.{ext}",
|
"textlength": 0,
|
||||||
"textlength": 0,
|
"space_replacer": " ",
|
||||||
"space-replacer": " ",
|
"date": "YYYY-MM-DD"
|
||||||
"date": "YYYY-MM-DD"
|
},
|
||||||
},
|
"download_options": {
|
||||||
"download_options": {
|
"file_size_max": 0,
|
||||||
"file_size_limit": 0,
|
"file_size_min": 0,
|
||||||
"file_size_min": 0,
|
"filter": [
|
||||||
"filter": [
|
"Images",
|
||||||
"Images",
|
"Audios",
|
||||||
"Audios",
|
"Videos"
|
||||||
"Videos"
|
],
|
||||||
],
|
"auto_resume": false
|
||||||
"auto_resume": false
|
},
|
||||||
},
|
"binary_options": {
|
||||||
"binary_options": {
|
"mp4decrypt": "",
|
||||||
"mp4decrypt": "",
|
"ffmpeg": ""
|
||||||
"ffmpeg": ""
|
},
|
||||||
},
|
"cdm_options": {
|
||||||
"cdm_options": {
|
"private-key": null,
|
||||||
"private-key": null,
|
"client-id": null,
|
||||||
"client-id": null,
|
"key-mode-default": "cdrm",
|
||||||
"key-mode-default": "cdrm",
|
"keydb_api": ""
|
||||||
"keydb_api": ""
|
},
|
||||||
},
|
"performance_options": {
|
||||||
"performance_options": {
|
"download-sems": 6,
|
||||||
"download-sems": 6,
|
"maxfile-sem": 0,
|
||||||
"maxfile-sem": 0,
|
"threads": 5
|
||||||
"threads": 5
|
},
|
||||||
},
|
"advanced_options": {
|
||||||
"advanced_options": {
|
"code-execution": false,
|
||||||
"code-execution": false,
|
"dynamic-mode-default": "generic",
|
||||||
"dynamic-mode-default": "sneaky",
|
"backend": "aio",
|
||||||
"backend": "aio",
|
"downloadbars": false,
|
||||||
"downloadbars": false,
|
"cache-mode": "sqlite",
|
||||||
"cache-mode": "sqlite",
|
"appendlog": true,
|
||||||
"appendlog": true,
|
"custom": null,
|
||||||
"custom": null,
|
"sanitize_text": false,
|
||||||
"sanitize_text": false,
|
"avatar": true,
|
||||||
"avatar": true,
|
"custom_values": {
|
||||||
"custom_values": {
|
"DYNAMIC_GENERIC_URL": "https://raw.githubusercontent.com/datawhores/onlyfans-dynamic-rules/main/dynamicRules.json",
|
||||||
"SNEAKY": "https://raw.githubusercontent.com/Growik/onlyfans-dynamic-rules/main/rules.json",
|
"CDRM": "https://old.cdrm-project.com/wv"
|
||||||
"CDRM": "https://old.cdrm-project.com/wv"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"responsetype": {
|
|
||||||
"timeline": "Posts",
|
|
||||||
"message": "Messages",
|
|
||||||
"archived": "Archived",
|
|
||||||
"paid": "Messages",
|
|
||||||
"stories": "Stories",
|
|
||||||
"highlights": "Stories",
|
|
||||||
"profile": "Profile",
|
|
||||||
"pinned": "Posts"
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"responsetype": {
|
||||||
|
"timeline": "Posts",
|
||||||
|
"message": "Messages",
|
||||||
|
"archived": "Archived",
|
||||||
|
"paid": "Messages",
|
||||||
|
"stories": "Stories",
|
||||||
|
"highlights": "Stories",
|
||||||
|
"profile": "Profile",
|
||||||
|
"pinned": "Posts"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
dynamic-mode-default=generic
|
||||||
|
RULE_VALUE=DYNAMIC_GENERIC_URL
|
||||||
361
SCrawler/API/OnlyFans/OnlyFansAdvancedSettingsForm.Designer.vb
generated
Normal file
@@ -0,0 +1,361 @@
|
|||||||
|
' Copyright (C) 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
|
||||||
|
Namespace API.OnlyFans
|
||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||||
|
Partial Friend Class OnlyFansAdvancedSettingsForm : Inherits System.Windows.Forms.Form
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()>
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.components = New System.ComponentModel.Container()
|
||||||
|
Dim CONTAINER_MAIN As System.Windows.Forms.ToolStripContainer
|
||||||
|
Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
|
||||||
|
Dim ActionButton7 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(OnlyFansAdvancedSettingsForm))
|
||||||
|
Dim ActionButton8 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
|
Dim ActionButton9 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
|
Dim TP_RULES_LIST As System.Windows.Forms.TableLayoutPanel
|
||||||
|
Dim TP_RULES_LIST_LEFT As System.Windows.Forms.TableLayoutPanel
|
||||||
|
Dim TT_MAIN As System.Windows.Forms.ToolTip
|
||||||
|
Me.TXT_UP_INTERVAL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
|
Me.TXT_PERSONAL_RULE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
|
Me.CONTAINER_LIST = New System.Windows.Forms.ToolStripContainer()
|
||||||
|
Me.LIST_RULES = New System.Windows.Forms.ListBox()
|
||||||
|
Me.OPT_RULES_LIST = New System.Windows.Forms.RadioButton()
|
||||||
|
Me.CH_PROTECTED = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_FORCE_UPDATE = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_LOG_ERR = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_UPDATE_CONF = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_UPDATE_RULES_CONST = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE = New System.Windows.Forms.CheckBox()
|
||||||
|
CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
|
||||||
|
TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
TP_RULES_LIST = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
TP_RULES_LIST_LEFT = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
TT_MAIN = New System.Windows.Forms.ToolTip(Me.components)
|
||||||
|
CONTAINER_MAIN.ContentPanel.SuspendLayout()
|
||||||
|
CONTAINER_MAIN.SuspendLayout()
|
||||||
|
TP_MAIN.SuspendLayout()
|
||||||
|
CType(Me.TXT_UP_INTERVAL, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.TXT_PERSONAL_RULE, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
TP_RULES_LIST.SuspendLayout()
|
||||||
|
Me.CONTAINER_LIST.ContentPanel.SuspendLayout()
|
||||||
|
Me.CONTAINER_LIST.SuspendLayout()
|
||||||
|
TP_RULES_LIST_LEFT.SuspendLayout()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'CONTAINER_MAIN
|
||||||
|
'
|
||||||
|
'
|
||||||
|
'CONTAINER_MAIN.ContentPanel
|
||||||
|
'
|
||||||
|
CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN)
|
||||||
|
CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(464, 341)
|
||||||
|
CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
CONTAINER_MAIN.LeftToolStripPanelVisible = False
|
||||||
|
CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
|
CONTAINER_MAIN.Name = "CONTAINER_MAIN"
|
||||||
|
CONTAINER_MAIN.RightToolStripPanelVisible = False
|
||||||
|
CONTAINER_MAIN.Size = New System.Drawing.Size(464, 341)
|
||||||
|
CONTAINER_MAIN.TabIndex = 1
|
||||||
|
CONTAINER_MAIN.TopToolStripPanelVisible = False
|
||||||
|
'
|
||||||
|
'TP_MAIN
|
||||||
|
'
|
||||||
|
TP_MAIN.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
|
||||||
|
TP_MAIN.ColumnCount = 1
|
||||||
|
TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_MAIN.Controls.Add(Me.TXT_UP_INTERVAL, 0, 5)
|
||||||
|
TP_MAIN.Controls.Add(Me.TXT_PERSONAL_RULE, 0, 6)
|
||||||
|
TP_MAIN.Controls.Add(TP_RULES_LIST, 0, 7)
|
||||||
|
TP_MAIN.Controls.Add(Me.CH_LOG_ERR, 0, 0)
|
||||||
|
TP_MAIN.Controls.Add(Me.CH_RULES_REPLACE_CONFIG, 0, 1)
|
||||||
|
TP_MAIN.Controls.Add(Me.CH_UPDATE_CONF, 0, 4)
|
||||||
|
TP_MAIN.Controls.Add(Me.CH_UPDATE_RULES_CONST, 0, 2)
|
||||||
|
TP_MAIN.Controls.Add(Me.CH_CONFIG_MANUAL_MODE, 0, 3)
|
||||||
|
TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
|
TP_MAIN.Name = "TP_MAIN"
|
||||||
|
TP_MAIN.RowCount = 8
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_MAIN.Size = New System.Drawing.Size(464, 341)
|
||||||
|
TP_MAIN.TabIndex = 0
|
||||||
|
'
|
||||||
|
'TXT_UP_INTERVAL
|
||||||
|
'
|
||||||
|
ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image)
|
||||||
|
ActionButton7.Name = "Refresh"
|
||||||
|
ActionButton7.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
|
ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image)
|
||||||
|
ActionButton8.Name = "Clear"
|
||||||
|
ActionButton8.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
|
Me.TXT_UP_INTERVAL.Buttons.Add(ActionButton7)
|
||||||
|
Me.TXT_UP_INTERVAL.Buttons.Add(ActionButton8)
|
||||||
|
Me.TXT_UP_INTERVAL.CaptionText = "Dynamic rules update"
|
||||||
|
Me.TXT_UP_INTERVAL.CaptionToolTipEnabled = True
|
||||||
|
Me.TXT_UP_INTERVAL.CaptionToolTipText = "'Dynamic rules' update interval (minutes). Default: 1440"
|
||||||
|
Me.TXT_UP_INTERVAL.CaptionWidth = 120.0R
|
||||||
|
Me.TXT_UP_INTERVAL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.TXT_UP_INTERVAL.Location = New System.Drawing.Point(4, 134)
|
||||||
|
Me.TXT_UP_INTERVAL.Name = "TXT_UP_INTERVAL"
|
||||||
|
Me.TXT_UP_INTERVAL.Size = New System.Drawing.Size(456, 22)
|
||||||
|
Me.TXT_UP_INTERVAL.TabIndex = 5
|
||||||
|
'
|
||||||
|
'TXT_PERSONAL_RULE
|
||||||
|
'
|
||||||
|
Me.TXT_PERSONAL_RULE.AutoShowClearButton = True
|
||||||
|
ActionButton9.BackgroundImage = CType(resources.GetObject("ActionButton9.BackgroundImage"), System.Drawing.Image)
|
||||||
|
ActionButton9.Enabled = False
|
||||||
|
ActionButton9.Name = "Clear"
|
||||||
|
ActionButton9.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
|
ActionButton9.Visible = False
|
||||||
|
Me.TXT_PERSONAL_RULE.Buttons.Add(ActionButton9)
|
||||||
|
Me.TXT_PERSONAL_RULE.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.RadioButton
|
||||||
|
Me.TXT_PERSONAL_RULE.CaptionText = "Dynamic rules URL"
|
||||||
|
Me.TXT_PERSONAL_RULE.CaptionToolTipEnabled = True
|
||||||
|
Me.TXT_PERSONAL_RULE.CaptionToolTipText = "Overwrite 'Dynamic rules' with this URL." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Change this value only if you know what" &
|
||||||
|
" you are doing."
|
||||||
|
Me.TXT_PERSONAL_RULE.CaptionWidth = 120.0R
|
||||||
|
Me.TXT_PERSONAL_RULE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.TXT_PERSONAL_RULE.LeaveDefaultButtons = True
|
||||||
|
Me.TXT_PERSONAL_RULE.Location = New System.Drawing.Point(4, 163)
|
||||||
|
Me.TXT_PERSONAL_RULE.Name = "TXT_PERSONAL_RULE"
|
||||||
|
Me.TXT_PERSONAL_RULE.Size = New System.Drawing.Size(456, 22)
|
||||||
|
Me.TXT_PERSONAL_RULE.TabIndex = 6
|
||||||
|
'
|
||||||
|
'TP_RULES_LIST
|
||||||
|
'
|
||||||
|
TP_RULES_LIST.ColumnCount = 2
|
||||||
|
TP_RULES_LIST.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 120.0!))
|
||||||
|
TP_RULES_LIST.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_RULES_LIST.Controls.Add(Me.CONTAINER_LIST, 1, 0)
|
||||||
|
TP_RULES_LIST.Controls.Add(TP_RULES_LIST_LEFT, 0, 0)
|
||||||
|
TP_RULES_LIST.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
TP_RULES_LIST.Location = New System.Drawing.Point(4, 192)
|
||||||
|
TP_RULES_LIST.Name = "TP_RULES_LIST"
|
||||||
|
TP_RULES_LIST.RowCount = 1
|
||||||
|
TP_RULES_LIST.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_RULES_LIST.Size = New System.Drawing.Size(456, 145)
|
||||||
|
TP_RULES_LIST.TabIndex = 7
|
||||||
|
'
|
||||||
|
'CONTAINER_LIST
|
||||||
|
'
|
||||||
|
Me.CONTAINER_LIST.BottomToolStripPanelVisible = False
|
||||||
|
'
|
||||||
|
'CONTAINER_LIST.ContentPanel
|
||||||
|
'
|
||||||
|
Me.CONTAINER_LIST.ContentPanel.Controls.Add(Me.LIST_RULES)
|
||||||
|
Me.CONTAINER_LIST.ContentPanel.Size = New System.Drawing.Size(330, 114)
|
||||||
|
Me.CONTAINER_LIST.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CONTAINER_LIST.LeftToolStripPanelVisible = False
|
||||||
|
Me.CONTAINER_LIST.Location = New System.Drawing.Point(123, 3)
|
||||||
|
Me.CONTAINER_LIST.Name = "CONTAINER_LIST"
|
||||||
|
Me.CONTAINER_LIST.RightToolStripPanelVisible = False
|
||||||
|
Me.CONTAINER_LIST.Size = New System.Drawing.Size(330, 139)
|
||||||
|
Me.CONTAINER_LIST.TabIndex = 1
|
||||||
|
'
|
||||||
|
'LIST_RULES
|
||||||
|
'
|
||||||
|
Me.LIST_RULES.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.LIST_RULES.FormattingEnabled = True
|
||||||
|
Me.LIST_RULES.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.LIST_RULES.Name = "LIST_RULES"
|
||||||
|
Me.LIST_RULES.Size = New System.Drawing.Size(330, 114)
|
||||||
|
Me.LIST_RULES.TabIndex = 0
|
||||||
|
'
|
||||||
|
'TP_RULES_LIST_LEFT
|
||||||
|
'
|
||||||
|
TP_RULES_LIST_LEFT.ColumnCount = 1
|
||||||
|
TP_RULES_LIST_LEFT.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_RULES_LIST_LEFT.Controls.Add(Me.OPT_RULES_LIST, 0, 0)
|
||||||
|
TP_RULES_LIST_LEFT.Controls.Add(Me.CH_PROTECTED, 0, 1)
|
||||||
|
TP_RULES_LIST_LEFT.Controls.Add(Me.CH_FORCE_UPDATE, 0, 2)
|
||||||
|
TP_RULES_LIST_LEFT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
TP_RULES_LIST_LEFT.Location = New System.Drawing.Point(0, 0)
|
||||||
|
TP_RULES_LIST_LEFT.Margin = New System.Windows.Forms.Padding(0)
|
||||||
|
TP_RULES_LIST_LEFT.Name = "TP_RULES_LIST_LEFT"
|
||||||
|
TP_RULES_LIST_LEFT.RowCount = 4
|
||||||
|
TP_RULES_LIST_LEFT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_RULES_LIST_LEFT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_RULES_LIST_LEFT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_RULES_LIST_LEFT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_RULES_LIST_LEFT.Size = New System.Drawing.Size(120, 145)
|
||||||
|
TP_RULES_LIST_LEFT.TabIndex = 0
|
||||||
|
'
|
||||||
|
'OPT_RULES_LIST
|
||||||
|
'
|
||||||
|
Me.OPT_RULES_LIST.AutoSize = True
|
||||||
|
Me.OPT_RULES_LIST.CheckAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
Me.OPT_RULES_LIST.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.OPT_RULES_LIST.Location = New System.Drawing.Point(3, 3)
|
||||||
|
Me.OPT_RULES_LIST.Margin = New System.Windows.Forms.Padding(3, 3, 0, 3)
|
||||||
|
Me.OPT_RULES_LIST.Name = "OPT_RULES_LIST"
|
||||||
|
Me.OPT_RULES_LIST.Size = New System.Drawing.Size(117, 19)
|
||||||
|
Me.OPT_RULES_LIST.TabIndex = 0
|
||||||
|
Me.OPT_RULES_LIST.TabStop = True
|
||||||
|
Me.OPT_RULES_LIST.Text = "Dynamic rules list"
|
||||||
|
Me.OPT_RULES_LIST.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
TT_MAIN.SetToolTip(Me.OPT_RULES_LIST, "List of dynamic rules sources." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "If selected, the most recently updated source wil" &
|
||||||
|
"l be selected.")
|
||||||
|
Me.OPT_RULES_LIST.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_PROTECTED
|
||||||
|
'
|
||||||
|
Me.CH_PROTECTED.AutoSize = True
|
||||||
|
Me.CH_PROTECTED.CheckAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
Me.CH_PROTECTED.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_PROTECTED.Location = New System.Drawing.Point(3, 28)
|
||||||
|
Me.CH_PROTECTED.Margin = New System.Windows.Forms.Padding(3, 3, 0, 3)
|
||||||
|
Me.CH_PROTECTED.Name = "CH_PROTECTED"
|
||||||
|
Me.CH_PROTECTED.Size = New System.Drawing.Size(117, 19)
|
||||||
|
Me.CH_PROTECTED.TabIndex = 1
|
||||||
|
Me.CH_PROTECTED.Text = "Protected list"
|
||||||
|
Me.CH_PROTECTED.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_PROTECTED, "If checked, the new source will be added, but the rules list will not be overwrit" &
|
||||||
|
"ten by the updated one.")
|
||||||
|
Me.CH_PROTECTED.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_FORCE_UPDATE
|
||||||
|
'
|
||||||
|
Me.CH_FORCE_UPDATE.AutoSize = True
|
||||||
|
Me.CH_FORCE_UPDATE.CheckAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
Me.CH_FORCE_UPDATE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_FORCE_UPDATE.Location = New System.Drawing.Point(3, 53)
|
||||||
|
Me.CH_FORCE_UPDATE.Margin = New System.Windows.Forms.Padding(3, 3, 0, 3)
|
||||||
|
Me.CH_FORCE_UPDATE.Name = "CH_FORCE_UPDATE"
|
||||||
|
Me.CH_FORCE_UPDATE.Size = New System.Drawing.Size(117, 19)
|
||||||
|
Me.CH_FORCE_UPDATE.TabIndex = 2
|
||||||
|
Me.CH_FORCE_UPDATE.Text = "Force update"
|
||||||
|
Me.CH_FORCE_UPDATE.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_FORCE_UPDATE, "Check this if you want to force the rules to update.")
|
||||||
|
Me.CH_FORCE_UPDATE.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_LOG_ERR
|
||||||
|
'
|
||||||
|
Me.CH_LOG_ERR.AutoSize = True
|
||||||
|
Me.CH_LOG_ERR.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_LOG_ERR.Location = New System.Drawing.Point(4, 4)
|
||||||
|
Me.CH_LOG_ERR.Name = "CH_LOG_ERR"
|
||||||
|
Me.CH_LOG_ERR.Size = New System.Drawing.Size(456, 19)
|
||||||
|
Me.CH_LOG_ERR.TabIndex = 0
|
||||||
|
Me.CH_LOG_ERR.Text = "Add dynamic rules errors to the log"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_LOG_ERR, "OnlyFans errors will be added to a separate log." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "A checked checkbox means that e" &
|
||||||
|
"rror notification will be added to the main log.")
|
||||||
|
Me.CH_LOG_ERR.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_RULES_REPLACE_CONFIG
|
||||||
|
'
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.AutoSize = True
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.Location = New System.Drawing.Point(4, 30)
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.Name = "CH_RULES_REPLACE_CONFIG"
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.Size = New System.Drawing.Size(456, 19)
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.TabIndex = 1
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.Text = "Replace rules in OF-Scraper configuration file"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_RULES_REPLACE_CONFIG, "If checked, the dynamic rules (in the config) will be replaced with actual values" &
|
||||||
|
".")
|
||||||
|
Me.CH_RULES_REPLACE_CONFIG.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_UPDATE_CONF
|
||||||
|
'
|
||||||
|
Me.CH_UPDATE_CONF.AutoSize = True
|
||||||
|
Me.CH_UPDATE_CONF.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_UPDATE_CONF.Location = New System.Drawing.Point(4, 108)
|
||||||
|
Me.CH_UPDATE_CONF.Name = "CH_UPDATE_CONF"
|
||||||
|
Me.CH_UPDATE_CONF.Size = New System.Drawing.Size(456, 19)
|
||||||
|
Me.CH_UPDATE_CONF.TabIndex = 4
|
||||||
|
Me.CH_UPDATE_CONF.Text = "Update configuration file during update"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_UPDATE_CONF, "Update the configuration pattern from the site during update.")
|
||||||
|
Me.CH_UPDATE_CONF.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_UPDATE_RULES_CONST
|
||||||
|
'
|
||||||
|
Me.CH_UPDATE_RULES_CONST.AutoSize = True
|
||||||
|
Me.CH_UPDATE_RULES_CONST.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_UPDATE_RULES_CONST.Location = New System.Drawing.Point(4, 56)
|
||||||
|
Me.CH_UPDATE_RULES_CONST.Name = "CH_UPDATE_RULES_CONST"
|
||||||
|
Me.CH_UPDATE_RULES_CONST.Size = New System.Drawing.Size(456, 19)
|
||||||
|
Me.CH_UPDATE_RULES_CONST.TabIndex = 2
|
||||||
|
Me.CH_UPDATE_RULES_CONST.Text = "Update rules constants file during update"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_UPDATE_RULES_CONST, "Update rules constants from the site during update")
|
||||||
|
Me.CH_UPDATE_RULES_CONST.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_CONFIG_MANUAL_MODE
|
||||||
|
'
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.AutoSize = True
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.Location = New System.Drawing.Point(4, 82)
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.Name = "CH_CONFIG_MANUAL_MODE"
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.Size = New System.Drawing.Size(456, 19)
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.TabIndex = 3
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.Text = "Dynamic rules 'Manual' mode"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_CONFIG_MANUAL_MODE, "The rules will be added to the config as is, without using a link.")
|
||||||
|
Me.CH_CONFIG_MANUAL_MODE.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'OnlyFansAdvancedSettingsForm
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(464, 341)
|
||||||
|
Me.Controls.Add(CONTAINER_MAIN)
|
||||||
|
Me.Icon = Global.SCrawler.My.Resources.SiteResources.OnlyFansIcon_32
|
||||||
|
Me.KeyPreview = True
|
||||||
|
Me.MinimizeBox = False
|
||||||
|
Me.MinimumSize = New System.Drawing.Size(480, 380)
|
||||||
|
Me.Name = "OnlyFansAdvancedSettingsForm"
|
||||||
|
Me.ShowInTaskbar = False
|
||||||
|
Me.Text = "Settings"
|
||||||
|
CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
|
||||||
|
CONTAINER_MAIN.ResumeLayout(False)
|
||||||
|
CONTAINER_MAIN.PerformLayout()
|
||||||
|
TP_MAIN.ResumeLayout(False)
|
||||||
|
TP_MAIN.PerformLayout()
|
||||||
|
CType(Me.TXT_UP_INTERVAL, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.TXT_PERSONAL_RULE, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
TP_RULES_LIST.ResumeLayout(False)
|
||||||
|
Me.CONTAINER_LIST.ContentPanel.ResumeLayout(False)
|
||||||
|
Me.CONTAINER_LIST.ResumeLayout(False)
|
||||||
|
Me.CONTAINER_LIST.PerformLayout()
|
||||||
|
TP_RULES_LIST_LEFT.ResumeLayout(False)
|
||||||
|
TP_RULES_LIST_LEFT.PerformLayout()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private WithEvents TXT_UP_INTERVAL As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
|
Private WithEvents TXT_PERSONAL_RULE As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
|
Private WithEvents CONTAINER_LIST As ToolStripContainer
|
||||||
|
Private WithEvents LIST_RULES As ListBox
|
||||||
|
Private WithEvents OPT_RULES_LIST As RadioButton
|
||||||
|
Private WithEvents CH_PROTECTED As CheckBox
|
||||||
|
Private WithEvents CH_FORCE_UPDATE As CheckBox
|
||||||
|
Private WithEvents CH_LOG_ERR As CheckBox
|
||||||
|
Private WithEvents CH_RULES_REPLACE_CONFIG As CheckBox
|
||||||
|
Private WithEvents CH_UPDATE_CONF As CheckBox
|
||||||
|
Private WithEvents CH_UPDATE_RULES_CONST As CheckBox
|
||||||
|
Private WithEvents CH_CONFIG_MANUAL_MODE As CheckBox
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
186
SCrawler/API/OnlyFans/OnlyFansAdvancedSettingsForm.resx
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="CONTAINER_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_MAIN.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="ActionButton7.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
|
QVQ4T2P4//8/QczOJyyqHpzfiE0OQwAZC8iqszAzs7CJ69o4BR768V/W2jcGXQ0KB4aFNS3dDQtnrbCb
|
||||||
|
ePCK48wTN1wXXXzge/jXf/clV55zC4hIIatF0cjIyMikElzc57z0wX+XHd/+2+//99/ywP//xlu//tdb
|
||||||
|
+eK/4Zp3/1WTOhYzARViNUAluKjTdf37/0ZTTn9TbdhwXblhwwW1/qOP1Ja9+K8w+95/6cm3/6v2Xvkv
|
||||||
|
qKjniGGAoIqRpW3/4e8S9uGdzFz82gwMDFxAzCxm4ZegtuLDf+VJ1/8rZM25IqLvnM/CximCYYCic1QN
|
||||||
|
v7x2JIwPwyrJ3XNUylddE9G2TWNmZOBDl4czmJiZMSRBmFdSyYyJgUEQmxwIYxWEYXZBCUls4sgYq6CA
|
||||||
|
prWNbtG8nXKeaVPR5XiVjSxEzf0yYXy4BBMLO6eQjoOXZvrkbbazrv53Xf/2v4CSbjBMXkhBl1/CMyNZ
|
||||||
|
qWnvGy5pNQ+YONwAfjXzAOupl/47LLr333L50/96q9/8l23YdES6cO5KuYqVW+R7Tj6SnfP0v4hryjyY
|
||||||
|
HhQDmFjYeHVKFp7WX/Xuv9Kq9/+Vd/z7r7rv/3+l7f//y676DEwDN/9L+BVvYkKLCTgDhNkkVUyVlr74
|
||||||
|
qbbz73/VOTc/qsy89kWx+9h7qbQpJwS1bbOAscGGrB6EUTggLOqf16C55ft/HlnNAFZOXgVWdi4FRgYG
|
||||||
|
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="ActionButton8.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
|
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
|
||||||
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="ActionButton9.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
|
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
|
||||||
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="TP_RULES_LIST.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_RULES_LIST_LEFT.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>
|
||||||
|
<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>
|
||||||
|
<metadata name="TP_RULES_LIST_LEFT.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>
|
||||||
|
</root>
|
||||||
165
SCrawler/API/OnlyFans/OnlyFansAdvancedSettingsForm.vb
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
' Copyright (C) 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 PersonalUtilities.Forms
|
||||||
|
Imports PersonalUtilities.Forms.Controls.Base
|
||||||
|
Imports PersonalUtilities.Forms.Toolbars
|
||||||
|
Namespace API.OnlyFans
|
||||||
|
Friend Class OnlyFansAdvancedSettingsForm
|
||||||
|
#Region "Declarations"
|
||||||
|
Private WithEvents MyDefs As DefaultFormOptions
|
||||||
|
Friend Property CurrentRulesEnv As DynamicRulesEnv
|
||||||
|
Private ReadOnly Property CurrentRulesEnv_LIST As DynamicRulesEnv
|
||||||
|
#End Region
|
||||||
|
#Region "Initializer"
|
||||||
|
Friend Sub New(ByVal rules As DynamicRulesEnv)
|
||||||
|
InitializeComponent()
|
||||||
|
MyDefs = New DefaultFormOptions(Me, Settings.Design)
|
||||||
|
CurrentRulesEnv = rules
|
||||||
|
CurrentRulesEnv_LIST = New DynamicRulesEnv
|
||||||
|
CurrentRulesEnv_LIST.Copy(rules, False)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Form handlers"
|
||||||
|
Private Sub OnlyFansAdvancedSettingsForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
|
With MyDefs
|
||||||
|
.MyViewInitialize()
|
||||||
|
.AddOkCancelToolbar()
|
||||||
|
|
||||||
|
.MyEditToolbar = New EditToolbar(Me,, CONTAINER_LIST.TopToolStripPanel) With {.Buttons = Nothing}
|
||||||
|
.MyEditToolbar.AddThisToolbar()
|
||||||
|
|
||||||
|
With CurrentRulesEnv
|
||||||
|
Select Case .Mode
|
||||||
|
Case DynamicRulesEnv.Modes.List : OPT_RULES_LIST.Checked = True
|
||||||
|
Case DynamicRulesEnv.Modes.Personal : TXT_PERSONAL_RULE.Checked = True
|
||||||
|
End Select
|
||||||
|
CH_LOG_ERR.Checked = .AddErrorsToLog
|
||||||
|
CH_RULES_REPLACE_CONFIG.Checked = .RulesReplaceConfig
|
||||||
|
CH_UPDATE_RULES_CONST.Checked = .RulesUpdateConst
|
||||||
|
CH_CONFIG_MANUAL_MODE.Checked = .RulesConfigManualMode
|
||||||
|
CH_UPDATE_CONF.Checked = .ConfigAutoUpdate
|
||||||
|
TXT_UP_INTERVAL.Text = .UpdateInterval
|
||||||
|
If Not .PersonalRule.IsEmptyString Then TXT_PERSONAL_RULE.Text = .PersonalRule
|
||||||
|
Refill()
|
||||||
|
CH_PROTECTED.Checked = .ProtectFile
|
||||||
|
CH_FORCE_UPDATE.Checked = .RulesForceUpdateRequired
|
||||||
|
End With
|
||||||
|
|
||||||
|
.MyFieldsCheckerE = New FieldsChecker
|
||||||
|
.MyFieldsCheckerE.AddControl(Of Integer)(TXT_UP_INTERVAL, TXT_UP_INTERVAL.CaptionText,,
|
||||||
|
New FieldsCheckerProviderSimple(Function(v) IIf(AConvert(Of Integer)(v, 0, EDP.ReturnValue) > 0, v, Nothing),
|
||||||
|
"The value of [{0}] field must be greater than 0"))
|
||||||
|
.MyFieldsCheckerE.EndLoaderOperations()
|
||||||
|
|
||||||
|
.EndLoaderOperations()
|
||||||
|
End With
|
||||||
|
End Sub
|
||||||
|
Private Sub OnlyFansAdvancedSettingsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
||||||
|
CurrentRulesEnv_LIST.Dispose()
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Refill"
|
||||||
|
Private Sub Refill()
|
||||||
|
With CurrentRulesEnv_LIST
|
||||||
|
Dim ls% = _LatestSelected
|
||||||
|
LIST_RULES.Items.Clear()
|
||||||
|
If .Count > 0 Then LIST_RULES.Items.AddRange(.Select(Function(r) r.UrlRepo).Cast(Of Object).ToArray)
|
||||||
|
Dim lim% = LIST_RULES.Items.Count - 1
|
||||||
|
If (ls - 1).ValueBetween(0, lim) Then
|
||||||
|
ls -= 1
|
||||||
|
ElseIf (ls + 1).ValueBetween(0, lim) Then
|
||||||
|
ls += 1
|
||||||
|
End If
|
||||||
|
If ls.ValueBetween(0, lim) Then LIST_RULES.SelectedIndex = ls Else ls = -1
|
||||||
|
_LatestSelected = ls
|
||||||
|
End With
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "OK, Cancel"
|
||||||
|
Private Sub MyDefs_ButtonOkClick(ByVal Sender As Object, ByVal e As KeyHandleEventArgs) Handles MyDefs.ButtonOkClick
|
||||||
|
If MyDefs.MyFieldsChecker.AllParamsOK Then
|
||||||
|
With CurrentRulesEnv
|
||||||
|
.Copy(CurrentRulesEnv_LIST, True)
|
||||||
|
.ProtectFile = CH_PROTECTED.Checked
|
||||||
|
.UpdateInterval = AConvert(Of Integer)(TXT_UP_INTERVAL.Text, DynamicRulesEnv.UpdateIntervalDefault)
|
||||||
|
.Mode = If(TXT_PERSONAL_RULE.Checked, DynamicRulesEnv.Modes.Personal, DynamicRulesEnv.Modes.List)
|
||||||
|
.PersonalRule = TXT_PERSONAL_RULE.Text
|
||||||
|
.RulesReplaceConfig = CH_RULES_REPLACE_CONFIG.Checked
|
||||||
|
.RulesUpdateConst = CH_UPDATE_RULES_CONST.Checked
|
||||||
|
.RulesConfigManualMode = CH_CONFIG_MANUAL_MODE.Checked
|
||||||
|
.ConfigAutoUpdate = CH_UPDATE_CONF.Checked
|
||||||
|
.AddErrorsToLog = CH_LOG_ERR.Checked
|
||||||
|
If CH_FORCE_UPDATE.Checked Then .RulesForceUpdateRequired = True
|
||||||
|
.NeedToSave = True
|
||||||
|
End With
|
||||||
|
MyDefs.CloseForm()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Add, Delete"
|
||||||
|
Private Sub MyDefs_ButtonAddClick(ByVal Sender As Object, ByVal e As EditToolbarEventArgs) Handles MyDefs.ButtonAddClick
|
||||||
|
Const msgTitle$ = "Add a rule"
|
||||||
|
Dim i%
|
||||||
|
Dim rule As DynamicRulesValue
|
||||||
|
Dim r$ = InputBoxE("Enter a valid rules URL:", msgTitle)
|
||||||
|
If Not r.IsEmptyString Then
|
||||||
|
rule = Rules.ParseURL(r)
|
||||||
|
If rule.Valid Then
|
||||||
|
i = CurrentRulesEnv_LIST.IndexOf(r)
|
||||||
|
If i >= 0 Then
|
||||||
|
MsgBoxE({$"The rule you entered already exists:{vbCr}{rule.UrlRepo}", msgTitle}, vbCritical)
|
||||||
|
Else
|
||||||
|
CurrentRulesEnv_LIST.Add(rule, False, False)
|
||||||
|
Refill()
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
MsgBoxE({$"The rule you entered has an incompatible format:{vbCr}{r}", msgTitle}, vbCritical)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Private Sub MyDefs_ButtonDeleteClickE(ByVal Sender As Object, ByVal e As EditToolbarEventArgs) Handles MyDefs.ButtonDeleteClickE
|
||||||
|
If _LatestSelected.ValueBetween(0, LIST_RULES.Items.Count - 1) Then
|
||||||
|
Dim r$ = LIST_RULES.Items(_LatestSelected)
|
||||||
|
If MsgBoxE({$"Are you sure you want to delete the following rule?{vbCr}{r}", "Delete a rule"}, vbExclamation,,, {"Process", "Cancel"}) = 0 Then
|
||||||
|
If CurrentRulesEnv_LIST.RemoveAt(_LatestSelected) Then
|
||||||
|
LIST_RULES.Items.RemoveAt(_LatestSelected)
|
||||||
|
Refill()
|
||||||
|
Else
|
||||||
|
MsgBoxE({$"The following rule cannot be deleted:{vbCr}{r}", "Delete a rule"}, vbCritical)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "Options"
|
||||||
|
Private Sub TXT_UP_INTERVAL_ActionOnButtonClick(ByVal Sender As Object, ByVal e As ActionButtonEventArgs) Handles TXT_UP_INTERVAL.ActionOnButtonClick
|
||||||
|
If e.DefaultButton = ActionButton.DefaultButtons.Refresh Then TXT_UP_INTERVAL.Text = DynamicRulesEnv.UpdateIntervalDefault
|
||||||
|
End Sub
|
||||||
|
Private Sub TXT_PERSONAL_RULE_ActionOnCheckedChange(ByVal Sender As Object, ByVal e As EventArgs, ByVal Checked As Boolean) Handles TXT_PERSONAL_RULE.ActionOnCheckedChange
|
||||||
|
Mode_CheckedChanged()
|
||||||
|
End Sub
|
||||||
|
Private Sub OPT_RULES_LIST_CheckedChanged(sender As Object, e As EventArgs)
|
||||||
|
Mode_CheckedChanged()
|
||||||
|
End Sub
|
||||||
|
Private Sub Mode_CheckedChanged()
|
||||||
|
Dim e As Boolean = TXT_PERSONAL_RULE.Checked
|
||||||
|
TXT_PERSONAL_RULE.Enabled(False) = e
|
||||||
|
CONTAINER_LIST.Enabled = Not e
|
||||||
|
CH_PROTECTED.Enabled = Not e
|
||||||
|
CH_FORCE_UPDATE.Enabled = Not e
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
#Region "List handlers"
|
||||||
|
Private _LatestSelected As Integer = -1
|
||||||
|
Private Sub LIST_RULES_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LIST_RULES.SelectedIndexChanged
|
||||||
|
_LatestSelected = LIST_RULES.SelectedIndex
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
@@ -9,13 +9,12 @@
|
|||||||
Imports SCrawler.API.Base
|
Imports SCrawler.API.Base
|
||||||
Imports SCrawler.Plugin
|
Imports SCrawler.Plugin
|
||||||
Imports SCrawler.Plugin.Attributes
|
Imports SCrawler.Plugin.Attributes
|
||||||
Imports PersonalUtilities.Forms
|
|
||||||
Imports PersonalUtilities.Tools.Web.Clients
|
Imports PersonalUtilities.Tools.Web.Clients
|
||||||
Imports PersonalUtilities.Tools.Web.Cookies
|
Imports PersonalUtilities.Tools.Web.Cookies
|
||||||
Imports PersonalUtilities.Functions.RegularExpressions
|
Imports PersonalUtilities.Functions.RegularExpressions
|
||||||
Imports DN = SCrawler.API.Base.DeclaredNames
|
Imports DN = SCrawler.API.Base.DeclaredNames
|
||||||
Namespace API.OnlyFans
|
Namespace API.OnlyFans
|
||||||
<Manifest("AndyProgram_OnlyFans"), SavedPosts, SpecialForm(False), SeparatedTasks(1)>
|
<Manifest("AndyProgram_OnlyFans"), SavedPosts, SpecialForm(False), SpecialForm(True), SeparatedTasks(1)>
|
||||||
Friend Class SiteSettings : Inherits SiteSettingsBase
|
Friend Class SiteSettings : Inherits SiteSettingsBase
|
||||||
#Region "Declarations"
|
#Region "Declarations"
|
||||||
#Region "Categories"
|
#Region "Categories"
|
||||||
@@ -74,30 +73,6 @@ Namespace API.OnlyFans
|
|||||||
Return String.Empty
|
Return String.Empty
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Rules"
|
|
||||||
<PXML("LastDateUpdated")> Private ReadOnly Property LastDateUpdated_XML As PropertyValue
|
|
||||||
Friend Property LastDateUpdated As Date
|
|
||||||
Get
|
|
||||||
Return LastDateUpdated_XML.Value
|
|
||||||
End Get
|
|
||||||
Set(ByVal d As Date)
|
|
||||||
LastDateUpdated_XML.Value = d
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
<PropertyOption(ControlText:="Use old authorization rules",
|
|
||||||
ControlToolTip:="Use old dynamic rules (from 'DATAHOARDERS') or new ones (from 'DIGITALCRIMINALS')." & vbCr &
|
|
||||||
"Change this value only if you know what you are doing.", IsAuth:=True), PXML, PClonable>
|
|
||||||
Friend ReadOnly Property UseOldAuthRules As PropertyValue
|
|
||||||
<PropertyOption(ControlText:="Dynamic rules update", ControlToolTip:="'Dynamic rules' update interval (minutes). Default: 1440",
|
|
||||||
LeftOffset:=110, IsAuth:=True), PXML, PClonable>
|
|
||||||
Friend ReadOnly Property DynamicRulesUpdateInterval As PropertyValue
|
|
||||||
<Provider(NameOf(DynamicRulesUpdateInterval), FieldsChecker:=True)>
|
|
||||||
Private ReadOnly Property DynamicRulesUpdateIntervalProvider As IFormatProvider
|
|
||||||
<PropertyOption(ControlText:="Dynamic rules",
|
|
||||||
ControlToolTip:="Overwrite 'Dynamic rules' with this URL" & vbCr &
|
|
||||||
"Change this value only if you know what you are doing.", IsAuth:=True), PXML, PClonable>
|
|
||||||
Friend ReadOnly Property DynamicRules As PropertyValue
|
|
||||||
#End Region
|
|
||||||
#Region "OFScraper"
|
#Region "OFScraper"
|
||||||
<PClonable, PXML("OFScraperPath")> Private ReadOnly Property OFScraperPath_XML As PropertyValue
|
<PClonable, PXML("OFScraperPath")> Private ReadOnly Property OFScraperPath_XML As PropertyValue
|
||||||
<PropertyOption(ControlText:="OF-Scraper path", ControlToolTip:="The path to the 'ofscraper.exe'", Category:=CAT_OFS)>
|
<PropertyOption(ControlText:="OF-Scraper path", ControlToolTip:="The path to the 'ofscraper.exe'", Category:=CAT_OFS)>
|
||||||
@@ -150,7 +125,10 @@ Namespace API.OnlyFans
|
|||||||
Friend Sub New(ByVal AccName As String, ByVal Temp As Boolean)
|
Friend Sub New(ByVal AccName As String, ByVal Temp As Boolean)
|
||||||
MyBase.New("OnlyFans", ".onlyfans.com", AccName, Temp, My.Resources.SiteResources.OnlyFansIcon_32, My.Resources.SiteResources.OnlyFansPic_32)
|
MyBase.New("OnlyFans", ".onlyfans.com", AccName, Temp, My.Resources.SiteResources.OnlyFansIcon_32, My.Resources.SiteResources.OnlyFansPic_32)
|
||||||
|
|
||||||
CheckOFSConfig()
|
If Rules Is Nothing Then
|
||||||
|
Rules = New DynamicRulesEnv
|
||||||
|
Rules.Update(False, True)
|
||||||
|
End If
|
||||||
|
|
||||||
_AllowUserAgentUpdate = False
|
_AllowUserAgentUpdate = False
|
||||||
|
|
||||||
@@ -184,13 +162,6 @@ Namespace API.OnlyFans
|
|||||||
DownloadHighlights = New PropertyValue(True)
|
DownloadHighlights = New PropertyValue(True)
|
||||||
DownloadChatMedia = New PropertyValue(True)
|
DownloadChatMedia = New PropertyValue(True)
|
||||||
|
|
||||||
LastDateUpdated_XML = New PropertyValue(Now.AddYears(-1), GetType(Date))
|
|
||||||
'URGENT: OF [UseOldAuthRules = True]
|
|
||||||
UseOldAuthRules = New PropertyValue(True)
|
|
||||||
DynamicRulesUpdateInterval = New PropertyValue(60 * 24)
|
|
||||||
DynamicRulesUpdateIntervalProvider = New FieldsCheckerProviderSimple(Function(v) IIf(AConvert(Of Integer)(v, 0) > 0, v, Nothing),
|
|
||||||
"The value of [{0}] field must be greater than 0")
|
|
||||||
DynamicRules = New PropertyValue(String.Empty, GetType(String))
|
|
||||||
OFScraperPath_XML = New PropertyValue(String.Empty, GetType(String))
|
OFScraperPath_XML = New PropertyValue(String.Empty, GetType(String))
|
||||||
If ACheck(OFScraperPath_XML.Value) Then
|
If ACheck(OFScraperPath_XML.Value) Then
|
||||||
Dim f As SFile = OFScraperPath_XML.Value
|
Dim f As SFile = OFScraperPath_XML.Value
|
||||||
@@ -218,21 +189,28 @@ Namespace API.OnlyFans
|
|||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Update"
|
#Region "Update"
|
||||||
Private __UseOldAuthRules As Boolean = True
|
|
||||||
Private __DynamicRules As String = String.Empty
|
|
||||||
Friend Overrides Sub BeginUpdate()
|
Friend Overrides Sub BeginUpdate()
|
||||||
__UseOldAuthRules = UseOldAuthRules.Value
|
_TempSettingsEnv.DisposeIfReady
|
||||||
__DynamicRules = AConvert(Of String)(DynamicRules.Value, String.Empty)
|
_TempSettingsEnv = Nothing
|
||||||
MyBase.BeginUpdate()
|
MyBase.BeginUpdate()
|
||||||
End Sub
|
End Sub
|
||||||
Friend Overrides Sub Update()
|
Friend Overrides Sub Update()
|
||||||
If _SiteEditorFormOpened Then
|
If _SiteEditorFormOpened Then
|
||||||
If Not __UseOldAuthRules = CBool(UseOldAuthRules.Value) Or Not AEquals(Of String)(__DynamicRules, DynamicRules.Value) Then _
|
|
||||||
LastDateUpdated = Now.AddYears(-1)
|
|
||||||
Responser.Cookies.Changed = False
|
Responser.Cookies.Changed = False
|
||||||
|
If If(_TempSettingsEnv?.NeedToSave, False) Then Rules.Copy(_TempSettingsEnv, True) : Rules.Save()
|
||||||
End If
|
End If
|
||||||
MyBase.Update()
|
MyBase.Update()
|
||||||
End Sub
|
End Sub
|
||||||
|
Friend Overrides Sub EndUpdate()
|
||||||
|
_TempSettingsEnv.DisposeIfReady
|
||||||
|
_TempSettingsEnv = Nothing
|
||||||
|
MyBase.EndUpdate()
|
||||||
|
End Sub
|
||||||
|
Private _TempSettingsEnv As DynamicRulesEnv = Nothing
|
||||||
|
Friend Overrides Sub OpenSettingsForm()
|
||||||
|
If _TempSettingsEnv Is Nothing Then _TempSettingsEnv = New DynamicRulesEnv : _TempSettingsEnv.Copy(Rules, False)
|
||||||
|
Using f As New OnlyFansAdvancedSettingsForm(_TempSettingsEnv) : f.ShowDialog() : End Using
|
||||||
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Download"
|
#Region "Download"
|
||||||
Friend Overrides Function BaseAuthExists() As Boolean
|
Friend Overrides Function BaseAuthExists() As Boolean
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ Namespace API.OnlyFans
|
|||||||
End Sub
|
End Sub
|
||||||
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
|
||||||
Try
|
Try
|
||||||
|
_DownloadingException_AuthFileUpdate = False
|
||||||
If Not MySettings.SessionAborted Then
|
If Not MySettings.SessionAborted Then
|
||||||
ValidateOFScraper()
|
ValidateOFScraper()
|
||||||
_AbsMediaIndex = 0
|
_AbsMediaIndex = 0
|
||||||
@@ -537,45 +538,16 @@ Namespace API.OnlyFans
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Auth"
|
#Region "Auth"
|
||||||
Private ReadOnly Property AuthFile As SFile
|
Private Function UpdateSignature(ByVal Path As String) As Boolean
|
||||||
Get
|
|
||||||
Dim f As SFile = MySettings.Responser.File
|
|
||||||
f.Name &= "_Auth"
|
|
||||||
f.Extension = "json"
|
|
||||||
Return f
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
Private Function UpdateSignature(ByVal Path As String, Optional ByVal ForceUpdateAuth As Boolean = False,
|
|
||||||
Optional ByVal Round As Integer = 0) As Boolean
|
|
||||||
Try
|
Try
|
||||||
If UpdateAuthFile(ForceUpdateAuth) Then
|
If Not Rules.Update(False) Then Rules.Update(True)
|
||||||
|
If Rules.Exists Then
|
||||||
Const nullMsg$ = "The auth parameter(s) is null"
|
Const nullMsg$ = "The auth parameter(s) is null"
|
||||||
Const formatMidPart$ = ":{0}:{1:x}:"
|
Dim j As EContainer = Rules.CurrentContainer
|
||||||
Dim j As EContainer
|
|
||||||
Try
|
|
||||||
j = JsonDocument.Parse(AuthFile.GetText)
|
|
||||||
Catch jex As Exception
|
|
||||||
If Round = 0 Then
|
|
||||||
AuthFile.Delete()
|
|
||||||
UpdateAuthFile(True)
|
|
||||||
Return UpdateSignature(Path, ForceUpdateAuth, Round + 1)
|
|
||||||
Else
|
|
||||||
MySettings.SessionAborted = True
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
End Try
|
|
||||||
If Not j Is Nothing Then
|
If Not j Is Nothing Then
|
||||||
Dim pattern$ = j.Value("format")
|
Dim pattern$ = DynamicRulesEnv.GetFormat(j)
|
||||||
|
|
||||||
If Not pattern.IsEmptyString Then
|
If pattern.IsEmptyString Then Throw New ArgumentNullException("format", nullMsg)
|
||||||
pattern = pattern.Replace("{}", "{0}").Replace("{:x}", "{1:x}")
|
|
||||||
ElseIf Not j.Value("prefix").IsEmptyString And Not j.Value("suffix").IsEmptyString Then
|
|
||||||
pattern = j.Value("prefix") & formatMidPart & j.Value("suffix")
|
|
||||||
ElseIf Not j.Value("start").IsEmptyString And Not j.Value("end").IsEmptyString Then
|
|
||||||
pattern = j.Value("start") & formatMidPart & j.Value("end")
|
|
||||||
Else
|
|
||||||
Throw New ArgumentNullException("format", nullMsg)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim li%() = j("checksum_indexes").Select(Function(e) CInt(e(0).Value)).ToArray
|
Dim li%() = j("checksum_indexes").Select(Function(e) CInt(e(0).Value)).ToArray
|
||||||
|
|
||||||
@@ -599,42 +571,16 @@ Namespace API.OnlyFans
|
|||||||
Responser.Headers.Add(HeaderSign, sign)
|
Responser.Headers.Add(HeaderSign, sign)
|
||||||
Responser.Headers.Add(HeaderTime, t)
|
Responser.Headers.Add(HeaderTime, t)
|
||||||
|
|
||||||
j.Dispose()
|
|
||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
MySettings.SessionAborted = True
|
||||||
End If
|
End If
|
||||||
Return False
|
Return False
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, $"{ToStringForLog()}: UpdateSignature", False)
|
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, $"{ToStringForLog()}: UpdateSignature", False)
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Private Function UpdateAuthFile(ByVal Force As Boolean) As Boolean
|
|
||||||
Const urlOld$ = "https://raw.githubusercontent.com/DATAHOARDERS/dynamic-rules/main/onlyfans.json"
|
|
||||||
Const urlNew$ = "https://raw.githubusercontent.com/DIGITALCRIMINALS/dynamic-rules/main/onlyfans.json"
|
|
||||||
Try
|
|
||||||
If MySettings.LastDateUpdated.AddMinutes(CInt(MySettings.DynamicRulesUpdateInterval.Value)) < Now Or Not AuthFile.Exists Or Force Then
|
|
||||||
Dim r$ = GetWebString(If(ACheck(Of String)(MySettings.DynamicRules.Value),
|
|
||||||
CStr(MySettings.DynamicRules.Value),
|
|
||||||
IIf(MySettings.UseOldAuthRules.Value, urlOld, urlNew)),, EDP.ReturnValue)
|
|
||||||
Dim checkFormat As Func(Of EContainer, Boolean) =
|
|
||||||
Function(jj) Not jj.Value("format").IsEmptyString OrElse
|
|
||||||
(Not jj.Value("prefix").IsEmptyString And Not jj.Value("suffix").IsEmptyString) OrElse
|
|
||||||
(Not jj.Value("start").IsEmptyString And Not jj.Value("end").IsEmptyString)
|
|
||||||
If Not r.IsEmptyString Then
|
|
||||||
Using j As EContainer = JsonDocument.Parse(r, EDP.ReturnValue)
|
|
||||||
If j.ListExists Then
|
|
||||||
If checkFormat(j) And j("checksum_indexes").ListExists And
|
|
||||||
Not j.Value("static_param").IsEmptyString And Not j.Value("checksum_constant").IsEmptyString Then _
|
|
||||||
TextSaver.SaveTextToFile(r, AuthFile, True, False, EDP.ThrowException) : MySettings.LastDateUpdated = Now
|
|
||||||
End If
|
|
||||||
End Using
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Return AuthFile.Exists
|
|
||||||
Catch ex As Exception
|
|
||||||
Return ErrorsDescriber.Execute(EDP.SendToLog + EDP.ReturnValue, ex, $"{ToStringForLog()}: UpdateAuthFile", False)
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
Private Function GetHashSha1(ByVal Input As String) As String
|
Private Function GetHashSha1(ByVal Input As String) As String
|
||||||
Dim s As New Security.Cryptography.SHA1CryptoServiceProvider
|
Dim s As New Security.Cryptography.SHA1CryptoServiceProvider
|
||||||
Dim inputBytes() As Byte = System.Text.Encoding.UTF8.GetBytes(Input)
|
Dim inputBytes() As Byte = System.Text.Encoding.UTF8.GetBytes(Input)
|
||||||
@@ -666,35 +612,51 @@ Namespace API.OnlyFans
|
|||||||
Private Function OFS_CreateConfig() As SFile
|
Private Function OFS_CreateConfig() As SFile
|
||||||
Try
|
Try
|
||||||
Const confMainPattern$ = "{0}"": ""([^""]*)"""
|
Const confMainPattern$ = "{0}"": ""([^""]*)"""
|
||||||
|
Const confMainPatternRulesManual$ = "DYNAMIC_RULE"": (""[^""]*"")"
|
||||||
If OFSCache Is Nothing Then OFSCache = If(IsSingleObjectDownload, Settings.Cache.NewInstance, CreateCache())
|
If OFSCache Is Nothing Then OFSCache = If(IsSingleObjectDownload, Settings.Cache.NewInstance, CreateCache())
|
||||||
Dim currentCache As CacheKeeper = OFSCache.NewInstance
|
Dim currentCache As CacheKeeper = OFSCache.NewInstance
|
||||||
currentCache.Validate()
|
currentCache.Validate()
|
||||||
Dim cacheRoot As SFile = currentCache.NewPath
|
Dim cacheRoot As SFile = currentCache.NewPath
|
||||||
cacheRoot.Exists(SFO.Path, True, EDP.ThrowException)
|
cacheRoot.Exists(SFO.Path, True, EDP.ThrowException)
|
||||||
Dim f As SFile = OFScraperConfigPatternFile
|
Dim f As SFile = Rules.OFScraperConfigPatternFile
|
||||||
Dim configText$
|
Dim configText$
|
||||||
CheckOFSConfig()
|
|
||||||
If f.Exists Then
|
If f.Exists Then
|
||||||
Dim replaceValue$ = String.Empty
|
Dim replaceValue$ = String.Empty
|
||||||
Dim rp As RParams = RParams.DMS(String.Empty, 1, RegexReturn.Replace, RegexOptions.IgnoreCase,
|
Dim rp As RParams = RParams.DMS(String.Empty, 1, RegexReturn.Replace, RegexOptions.IgnoreCase,
|
||||||
CType(Function(input) replaceValue, Func(Of String, String)), String.Empty, EDP.ReturnValue)
|
CType(Function(input) replaceValue, Func(Of String, String)), String.Empty, EDP.ReturnValue)
|
||||||
Dim ff As SFile
|
Dim ff As SFile
|
||||||
configText = f.GetText
|
configText = f.GetText
|
||||||
Dim updateConf As Action(Of String, String) = Sub(ByVal patternValue As String, ByVal __replaceValue As String)
|
Dim updateConf As Action(Of String, String, Boolean) =
|
||||||
rp.Pattern = String.Format(confMainPattern, patternValue)
|
Sub(ByVal patternValue As String, ByVal __replaceValue As String, ByVal __isRules As Boolean)
|
||||||
rp.Nothing = configText
|
rp.Pattern = String.Format(IIf(__isRules, confMainPatternRulesManual, confMainPattern), patternValue)
|
||||||
replaceValue = __replaceValue
|
rp.Nothing = configText
|
||||||
configText = RegexReplace(configText, rp)
|
replaceValue = __replaceValue
|
||||||
End Sub
|
configText = RegexReplace(configText, rp)
|
||||||
|
End Sub
|
||||||
If Not configText.IsEmptyString Then
|
If Not configText.IsEmptyString Then
|
||||||
updateConf("save_location", cacheRoot.PathNoSeparator.Replace("\", "/"))
|
updateConf("save_location", cacheRoot.PathNoSeparator.Replace("\", "/"), False)
|
||||||
If ACheck(MySettings.OFScraperMP4decrypt.Value) Then
|
If ACheck(MySettings.OFScraperMP4decrypt.Value) Then
|
||||||
ff = CStr(MySettings.OFScraperMP4decrypt.Value)
|
ff = CStr(MySettings.OFScraperMP4decrypt.Value)
|
||||||
If ff.Exists Then updateConf("mp4decrypt", ff.ToString.Replace("\", "/"))
|
If ff.Exists Then updateConf("mp4decrypt", ff.ToString.Replace("\", "/"), False)
|
||||||
|
End If
|
||||||
|
If Settings.FfmpegFile.Exists Then updateConf("ffmpeg", Settings.FfmpegFile.File.ToString.Replace("\", "/"), False)
|
||||||
|
updateConf("key-mode-default", CStr(MySettings.KeyModeDefault.Value).IfNullOrEmpty(SiteSettings.KeyModeDefault_Default), False)
|
||||||
|
updateConf("keydb_api", CStr(MySettings.Keydb_Api.Value), False)
|
||||||
|
If Rules.RulesReplaceConfig Then
|
||||||
|
If Rules.RulesConfigManualMode Then
|
||||||
|
updateConf(DynamicRulesEnv.DynamicRulesConfig_Mode_NodeName, "manual", False)
|
||||||
|
configText = configText.Replace(DynamicRulesEnv.DynamicRulesConfigNodeName_URL, DynamicRulesEnv.DynamicRulesConfigNodeName_RULES)
|
||||||
|
updateConf(DynamicRulesEnv.DynamicRulesConfigNodeName_RULES, Rules.CurrentContainerRulesText, True)
|
||||||
|
Else
|
||||||
|
Dim confUrlNode$ = If(Rules.RulesConstants.ContainsKey(DynamicRulesEnv.DynamicRulesConfigNodeName_URL_CONST_NAME),
|
||||||
|
Rules.RulesConstants(DynamicRulesEnv.DynamicRulesConfigNodeName_URL_CONST_NAME),
|
||||||
|
DynamicRulesEnv.DynamicRulesConfigNodeName_URL)
|
||||||
|
updateConf(DynamicRulesEnv.DynamicRulesConfigNodeName_URL, Rules.CurrentRule.UrlRaw, False)
|
||||||
|
configText = configText.Replace(DynamicRulesEnv.DynamicRulesConfigNodeName_URL, confUrlNode)
|
||||||
|
If Rules.RulesConstants.ContainsKey(DynamicRulesEnv.DynamicRulesConfig_Mode_NodeName) Then _
|
||||||
|
updateConf(DynamicRulesEnv.DynamicRulesConfig_Mode_NodeName, Rules.RulesConstants(DynamicRulesEnv.DynamicRulesConfig_Mode_NodeName), False)
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
If Settings.FfmpegFile.Exists Then updateConf("ffmpeg", Settings.FfmpegFile.File.ToString.Replace("\", "/"))
|
|
||||||
updateConf("key-mode-default", CStr(MySettings.KeyModeDefault.Value).IfNullOrEmpty(SiteSettings.KeyModeDefault_Default))
|
|
||||||
updateConf("keydb_api", CStr(MySettings.Keydb_Api.Value))
|
|
||||||
f = currentCache
|
f = currentCache
|
||||||
f.Name = "config"
|
f.Name = "config"
|
||||||
f.Extension = "json"
|
f.Extension = "json"
|
||||||
@@ -788,7 +750,7 @@ Namespace API.OnlyFans
|
|||||||
Protected Overrides Function DownloadingException(ByVal ex As Exception, ByVal Message As String, Optional ByVal FromPE As Boolean = False,
|
Protected Overrides Function DownloadingException(ByVal ex As Exception, ByVal Message As String, Optional ByVal FromPE As Boolean = False,
|
||||||
Optional ByVal EObj As Object = Nothing) As Integer
|
Optional ByVal EObj As Object = Nothing) As Integer
|
||||||
If Responser.StatusCode = Net.HttpStatusCode.BadRequest Then '400
|
If Responser.StatusCode = Net.HttpStatusCode.BadRequest Then '400
|
||||||
If Not _DownloadingException_AuthFileUpdate AndAlso UpdateAuthFile(True) Then
|
If Not _DownloadingException_AuthFileUpdate AndAlso Rules.Update(True) Then
|
||||||
_DownloadingException_AuthFileUpdate = True
|
_DownloadingException_AuthFileUpdate = True
|
||||||
Return 2
|
Return 2
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ Namespace API.Reddit
|
|||||||
ApiClientSecret = New PropertyValue(String.Empty, GetType(String))
|
ApiClientSecret = New PropertyValue(String.Empty, GetType(String))
|
||||||
BearerToken = New PropertyValue(token, GetType(String), Sub(v) Responser.Headers.Add(DeclaredNames.Header_Authorization, v))
|
BearerToken = New PropertyValue(token, GetType(String), Sub(v) Responser.Headers.Add(DeclaredNames.Header_Authorization, v))
|
||||||
BearerTokenUseCurl = New PropertyValue(True)
|
BearerTokenUseCurl = New PropertyValue(True)
|
||||||
TokenUpdateInterval = New PropertyValue(60 * 12)
|
TokenUpdateInterval = New PropertyValue(360)
|
||||||
TokenUpdateIntervalProvider = New TokenRefreshIntervalProvider
|
TokenUpdateIntervalProvider = New TokenRefreshIntervalProvider
|
||||||
BearerTokenDateUpdate = New PropertyValue(Now.AddYears(-1))
|
BearerTokenDateUpdate = New PropertyValue(Now.AddYears(-1))
|
||||||
UseTokenForTimelines = New PropertyValue(False)
|
UseTokenForTimelines = New PropertyValue(False)
|
||||||
@@ -101,6 +101,14 @@ Namespace API.Reddit
|
|||||||
ImageVideoContains = "reddit.com"
|
ImageVideoContains = "reddit.com"
|
||||||
UserRegex = RParams.DM("[htps:/]{7,8}.*?reddit.com/([user]{1,4})/([^/\?&]+)", 0, RegexReturn.ListByMatch, EDP.ReturnValue)
|
UserRegex = RParams.DM("[htps:/]{7,8}.*?reddit.com/([user]{1,4})/([^/\?&]+)", 0, RegexReturn.ListByMatch, EDP.ReturnValue)
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Const SettingsVersionCurrent As Integer = 1
|
||||||
|
Friend Overrides Sub EndInit()
|
||||||
|
If CInt(SettingsVersion.Value) < SettingsVersionCurrent Then
|
||||||
|
SettingsVersion.Value = SettingsVersionCurrent
|
||||||
|
TokenUpdateInterval.Value = 360
|
||||||
|
End If
|
||||||
|
MyBase.EndInit()
|
||||||
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "GetInstance"
|
#Region "GetInstance"
|
||||||
Friend Overrides Function GetInstance(ByVal What As Download) As IPluginContentProvider
|
Friend Overrides Function GetInstance(ByVal What As Download) As IPluginContentProvider
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Imports PersonalUtilities.Functions.RegularExpressions
|
|||||||
Imports IG = SCrawler.API.Instagram.SiteSettings
|
Imports IG = SCrawler.API.Instagram.SiteSettings
|
||||||
Imports DN = SCrawler.API.Base.DeclaredNames
|
Imports DN = SCrawler.API.Base.DeclaredNames
|
||||||
Namespace API.ThreadsNet
|
Namespace API.ThreadsNet
|
||||||
<Manifest("AndyProgram_ThreadsNet"), SeparatedTasks(1)>
|
<Manifest("AndyProgram_ThreadsNet"), SavedPosts, SeparatedTasks(1)>
|
||||||
Friend Class SiteSettings : Inherits SiteSettingsBase
|
Friend Class SiteSettings : Inherits SiteSettingsBase
|
||||||
#Region "Declarations"
|
#Region "Declarations"
|
||||||
#Region "Authorization"
|
#Region "Authorization"
|
||||||
|
|||||||
@@ -101,7 +101,12 @@ Namespace API.ThreadsNet
|
|||||||
Else
|
Else
|
||||||
DefaultParser_SkipPost = AddressOf SkipPost
|
DefaultParser_SkipPost = AddressOf SkipPost
|
||||||
End If
|
End If
|
||||||
DownloadData(String.Empty, Token)
|
If IsSavedPosts Then
|
||||||
|
DefaultParser_ElemNode = {"node", "thread_items", 0, "post"}
|
||||||
|
DownloadSavedPosts(String.Empty, Token)
|
||||||
|
Else
|
||||||
|
DownloadData(String.Empty, Token)
|
||||||
|
End If
|
||||||
If _TempMediaList.Count > 0 Then FirstLoadingDone = True : setMaxPostDate.Invoke(_TempMediaList)
|
If _TempMediaList.Count > 0 Then FirstLoadingDone = True : setMaxPostDate.Invoke(_TempMediaList)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
errorFound = True
|
errorFound = True
|
||||||
@@ -116,11 +121,15 @@ Namespace API.ThreadsNet
|
|||||||
End Sub
|
End Sub
|
||||||
Private Function IsPinnedPost(ByVal Items As IEnumerable(Of EContainer), ByVal Index As Integer) As Boolean
|
Private Function IsPinnedPost(ByVal Items As IEnumerable(Of EContainer), ByVal Index As Integer) As Boolean
|
||||||
Try
|
Try
|
||||||
If MaxLastDownDate.HasValue Then
|
If IsSavedPosts Then
|
||||||
Dim d As Date? = AConvert(Of Date)(Items(Index).ItemF(DefaultParser_ElemNode_Default).Value("taken_at"), UnixDate32Provider, Nothing)
|
Return False
|
||||||
If d.HasValue Then Return d.Value < MaxLastDownDate.Value
|
Else
|
||||||
|
If MaxLastDownDate.HasValue Then
|
||||||
|
Dim d As Date? = AConvert(Of Date)(Items(Index).ItemF(DefaultParser_ElemNode_Default).Value("taken_at"), UnixDate32Provider, Nothing)
|
||||||
|
If d.HasValue Then Return d.Value < MaxLastDownDate.Value
|
||||||
|
End If
|
||||||
|
Return Not FirstLoadingDone
|
||||||
End If
|
End If
|
||||||
Return Not FirstLoadingDone
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LogError(ex, "IsPinnedPost")
|
LogError(ex, "IsPinnedPost")
|
||||||
Return Not FirstLoadingDone
|
Return Not FirstLoadingDone
|
||||||
@@ -141,22 +150,32 @@ Namespace API.ThreadsNet
|
|||||||
Responser.Headers.Add(IGS.Header_CSRF_TOKEN, csrf)
|
Responser.Headers.Add(IGS.Header_CSRF_TOKEN, csrf)
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Const GQL_Q As String = "https://www.threads.net/api/graphql?lsd={0}&fb_dtsg={1}&doc_id={2}&fb_api_req_friendly_name={3}&server_timestamps=true&variables={4}"
|
||||||
|
Private Const GQL_P_DOC_ID As String = "6371597506283707"
|
||||||
|
Private Const GQL_P_NAME As String = "BarcelonaProfileThreadsTabRefetchableQuery"
|
||||||
|
Private Const GQL_S_DOC_ID_1 As String = "7758166704280174"
|
||||||
|
Private Const GQL_S_NAME_1 As String = "BarcelonaSavedPageViewerQuery"
|
||||||
|
Private Const GQL_S_DOC_ID_2 As String = "8617275414954442"
|
||||||
|
Private Const GQL_S_NAME_2 As String = "BarcelonaSavedPageRefetchableQuery"
|
||||||
|
Private Sub DownloadCheckCredentials()
|
||||||
|
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 DisableDownload() : Throw New Plugin.ExitException("Some credentials are missing")
|
||||||
|
End Sub
|
||||||
Private Overloads Sub DownloadData(ByVal Cursor As String, ByVal Token As CancellationToken)
|
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_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"
|
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
|
Dim URL$ = String.Empty
|
||||||
Try
|
Try
|
||||||
If Not Valid Then
|
DownloadCheckCredentials()
|
||||||
Dim idIsNull As Boolean = ID.IsEmptyString
|
|
||||||
UpdateCredentials()
|
|
||||||
If idIsNull And Not ID.IsEmptyString Then _ForceSaveUserInfo = True
|
|
||||||
End If
|
|
||||||
If Not Valid Then DisableDownload() : Throw New Plugin.ExitException("Some credentials are missing")
|
|
||||||
|
|
||||||
Responser.Method = "POST"
|
Responser.Method = "POST"
|
||||||
Responser.Referer = $"https://www.threads.net/@{NameTrue}"
|
Responser.Referer = $"https://www.threads.net/@{NameTrue}"
|
||||||
Responser.Headers.Add(GQL_HEADER_FB_LSD, Token_lsd)
|
Responser.Headers.Add(GQL_HEADER_FB_LSD, Token_lsd)
|
||||||
|
Responser.Headers.Add(GQL_HEADER_FB_FRINDLY_NAME, GQL_P_NAME)
|
||||||
|
|
||||||
Dim nextCursor$ = String.Empty
|
Dim nextCursor$ = String.Empty
|
||||||
Dim dataFound As Boolean = False
|
Dim dataFound As Boolean = False
|
||||||
@@ -169,7 +188,7 @@ Namespace API.ThreadsNet
|
|||||||
End If
|
End If
|
||||||
vars = SymbolsConverter.ASCII.EncodeSymbolsOnly("{" & vars & "}")
|
vars = SymbolsConverter.ASCII.EncodeSymbolsOnly("{" & vars & "}")
|
||||||
|
|
||||||
URL = String.Format(urlPattern, Token_lsd, vars, Token_dtsg_Var)
|
URL = String.Format(GQL_Q, Token_lsd, Token_dtsg_Var, GQL_P_DOC_ID, GQL_P_NAME, vars)
|
||||||
|
|
||||||
Using j As EContainer = GetDocument(URL, Token)
|
Using j As EContainer = GetDocument(URL, Token)
|
||||||
If j.ListExists Then
|
If j.ListExists Then
|
||||||
@@ -189,6 +208,47 @@ Namespace API.ThreadsNet
|
|||||||
ProcessException(ex, Token, $"data downloading error [{URL}]")
|
ProcessException(ex, Token, $"data downloading error [{URL}]")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
Private Sub DownloadSavedPosts(ByVal Cursor As String, ByVal Token As CancellationToken)
|
||||||
|
Const var_init$ = """__relay_internal__pv__BarcelonaIsLoggedInrelayprovider"":true,""__relay_internal__pv__BarcelonaIsInlineReelsEnabledrelayprovider"":false,""__relay_internal__pv__BarcelonaUseCometVideoPlaybackEnginerelayprovider"":false,""__relay_internal__pv__BarcelonaOptionalCookiesEnabledrelayprovider"":true,""__relay_internal__pv__BarcelonaIsTextFragmentsEnabledForPostCaptionsrelayprovider"":true,""__relay_internal__pv__BarcelonaShouldShowFediverseM075Featuresrelayprovider"":true"
|
||||||
|
Const var_cursor$ = """after"":""{0}"",""first"":25,""__relay_internal__pv__BarcelonaIsLoggedInrelayprovider"":true,""__relay_internal__pv__BarcelonaIsInlineReelsEnabledrelayprovider"":false,""__relay_internal__pv__BarcelonaUseCometVideoPlaybackEnginerelayprovider"":false,""__relay_internal__pv__BarcelonaOptionalCookiesEnabledrelayprovider"":true,""__relay_internal__pv__BarcelonaIsTextFragmentsEnabledForPostCaptionsrelayprovider"":true,""__relay_internal__pv__BarcelonaShouldShowFediverseM075Featuresrelayprovider"":true"
|
||||||
|
Dim URL$ = String.Empty
|
||||||
|
Try
|
||||||
|
DownloadCheckCredentials()
|
||||||
|
|
||||||
|
Responser.Method = "POST"
|
||||||
|
Responser.Referer = "https://www.threads.net/"
|
||||||
|
Responser.Headers.Add(GQL_HEADER_FB_LSD, Token_lsd)
|
||||||
|
Responser.Headers.Add(GQL_HEADER_FB_FRINDLY_NAME, If(Cursor.IsEmptyString, GQL_S_NAME_1, GQL_S_NAME_2))
|
||||||
|
|
||||||
|
Dim nextCursor$ = String.Empty
|
||||||
|
Dim dataFound As Boolean = False
|
||||||
|
|
||||||
|
Dim vars$ = SymbolsConverter.ASCII.EncodeSymbolsOnly("{" & If(Cursor.IsEmptyString, var_init, String.Format(var_cursor, Cursor)) & "}")
|
||||||
|
|
||||||
|
If Cursor.IsEmptyString Then
|
||||||
|
URL = String.Format(GQL_Q, Token_lsd, Token_dtsg_Var, GQL_S_DOC_ID_1, GQL_S_NAME_1, vars)
|
||||||
|
Else
|
||||||
|
URL = String.Format(GQL_Q, Token_lsd, Token_dtsg_Var, GQL_S_DOC_ID_2, GQL_S_NAME_2, vars)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Using j As EContainer = GetDocument(URL, Token)
|
||||||
|
If j.ListExists Then
|
||||||
|
With j({"data", "xdt_viewer", "text_app_saved_media"})
|
||||||
|
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 DownloadSavedPosts(nextCursor, Token)
|
||||||
|
Catch ex As Exception
|
||||||
|
ProcessException(ex, Token, $"saved posts 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
|
Private Function GetDocument(ByVal URL As String, ByVal Token As CancellationToken, Optional ByVal Round As Integer = 0) As EContainer
|
||||||
Try
|
Try
|
||||||
ThrowAny(Token)
|
ThrowAny(Token)
|
||||||
@@ -206,7 +266,7 @@ Namespace API.ThreadsNet
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Private Function UpdateCredentials(Optional ByVal e As ErrorsDescriber = Nothing) As Boolean
|
Private Function UpdateCredentials(Optional ByVal e As ErrorsDescriber = Nothing) As Boolean
|
||||||
Dim URL$ = $"https://www.threads.net/@{NameTrue}"
|
Dim URL$ = If(IsSavedPosts, "https://www.threads.net/", $"https://www.threads.net/@{NameTrue}")
|
||||||
ResetBaseTokens()
|
ResetBaseTokens()
|
||||||
Dim headers As New HttpHeaderCollection
|
Dim headers As New HttpHeaderCollection
|
||||||
headers.AddRange(Responser.Headers)
|
headers.AddRange(Responser.Headers)
|
||||||
|
|||||||
@@ -454,7 +454,6 @@ Namespace API.Twitter
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
'TODO: Twitter: is this line needed?
|
|
||||||
If ExistsDetected And i = 1 Then Exit For Else ExistsDetected = False
|
If ExistsDetected And i = 1 Then Exit For Else ExistsDetected = False
|
||||||
End If
|
End If
|
||||||
j.Dispose()
|
j.Dispose()
|
||||||
|
|||||||
@@ -379,10 +379,7 @@ Namespace DownloadObjects
|
|||||||
Friend Sub New(ByVal x As EContainer)
|
Friend Sub New(ByVal x As EContainer)
|
||||||
Me.New
|
Me.New
|
||||||
Initialization = True
|
Initialization = True
|
||||||
'URGENT: replace this line
|
Mode = x.Value(Name_Mode).FromXML(Of Integer)(Modes.None)
|
||||||
Dim m% = x.Value(Name_Mode).FromXML(Of Integer)(Modes.None)
|
|
||||||
If m = 1 Or m = 2 Then m = Modes.Specified
|
|
||||||
Mode = m
|
|
||||||
Import(x)
|
Import(x)
|
||||||
If Name.IsEmptyString Then Name = "Default"
|
If Name.IsEmptyString Then Name = "Default"
|
||||||
Groups.ListAddList(x.Value(Name_Groups).StringToList(Of String)("|"), LAP.NotContainsOnly)
|
Groups.ListAddList(x.Value(Name_Groups).StringToList(Of String)("|"), LAP.NotContainsOnly)
|
||||||
|
|||||||
@@ -230,6 +230,8 @@ Namespace DownloadObjects
|
|||||||
PlansWaiter.Invoke(PlanDownloading)
|
PlansWaiter.Invoke(PlanDownloading)
|
||||||
ElseIf .DownloadReady Then
|
ElseIf .DownloadReady Then
|
||||||
.Download()
|
.Download()
|
||||||
|
If Settings.AutomationScript.Use AndAlso Not Settings.AutomationScript.Value.IsEmptyString AndAlso
|
||||||
|
(Not .IsManual Or Not Settings.AutomationScript_ExcludeManual) Then ExecuteCommand(Settings.AutomationScript)
|
||||||
End If
|
End If
|
||||||
End With
|
End With
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
77
SCrawler/Download/Feed/DownloadFeedForm.Designer.vb
generated
@@ -45,6 +45,8 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_LOAD_SESSION_CHOOSE = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_LOAD_SESSION_CHOOSE = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_COPY_SPEC_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_MOVE_SPEC_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_LOAD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_LOAD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_LOAD_SPEC = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_LOAD_SPEC = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
@@ -61,6 +63,7 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_CURR_SESSION_SET = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CURR_SESSION_SET = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_MERGE_SESSIONS = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_MERGE_SESSIONS = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CLEAR_DAILY = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CLEAR_DAILY = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.BTT_RESET_DAILY = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_MERGE_FEEDS = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_MERGE_FEEDS = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CHECK_ALL = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CHECK_ALL = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CHECK_NONE = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CHECK_NONE = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
@@ -72,9 +75,7 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_DOWN_SELECTED = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_DOWN_SELECTED = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_REFRESH = New System.Windows.Forms.ToolStripButton()
|
Me.BTT_REFRESH = New System.Windows.Forms.ToolStripButton()
|
||||||
Me.TP_DATA = New System.Windows.Forms.TableLayoutPanel()
|
Me.TP_DATA = New System.Windows.Forms.TableLayoutPanel()
|
||||||
Me.BTT_COPY_SPEC_TO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CURR_SESSION_SET_LAST = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_MOVE_SPEC_TO = New System.Windows.Forms.ToolStripMenuItem()
|
|
||||||
Me.BTT_RESET_DAILY = 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()
|
||||||
@@ -168,6 +169,11 @@ Namespace DownloadObjects
|
|||||||
MENU_LOAD_SEP_8.Name = "MENU_LOAD_SEP_8"
|
MENU_LOAD_SEP_8.Name = "MENU_LOAD_SEP_8"
|
||||||
MENU_LOAD_SEP_8.Size = New System.Drawing.Size(349, 6)
|
MENU_LOAD_SEP_8.Size = New System.Drawing.Size(349, 6)
|
||||||
'
|
'
|
||||||
|
'MENU_LOAD_SEP_9
|
||||||
|
'
|
||||||
|
MENU_LOAD_SEP_9.Name = "MENU_LOAD_SEP_9"
|
||||||
|
MENU_LOAD_SEP_9.Size = New System.Drawing.Size(349, 6)
|
||||||
|
'
|
||||||
'ToolbarTOP
|
'ToolbarTOP
|
||||||
'
|
'
|
||||||
Me.ToolbarTOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
|
Me.ToolbarTOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
|
||||||
@@ -181,7 +187,7 @@ Namespace DownloadObjects
|
|||||||
'
|
'
|
||||||
Me.MENU_LOAD_SESSION.AutoToolTip = False
|
Me.MENU_LOAD_SESSION.AutoToolTip = False
|
||||||
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_CURRENT, Me.BTT_LOAD_SESSION_LAST, Me.BTT_LOAD_SESSION_CHOOSE, MENU_LOAD_SEP_0, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, MENU_LOAD_SEP_1, Me.BTT_COPY_SPEC_TO, Me.BTT_MOVE_SPEC_TO, MENU_LOAD_SEP_2, Me.BTT_LOAD_FAV, Me.BTT_LOAD_SPEC, MENU_LOAD_SEP_3, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_REMOVE_FAV, MENU_LOAD_SEP_4, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_SPEC, MENU_LOAD_SEP_5, Me.BTT_FEED_CLEAR_FAV, Me.BTT_FEED_CLEAR_SPEC, Me.BTT_FEED_DELETE_SPEC, Me.BTT_FEED_DELETE_DAILY_LIST, Me.BTT_FEED_DELETE_DAILY_DATE, MENU_LOAD_SEP_6, Me.BTT_CURR_SESSION_SET, Me.BTT_MERGE_SESSIONS, Me.BTT_CLEAR_DAILY, Me.BTT_RESET_DAILY, MENU_LOAD_SEP_7, Me.BTT_MERGE_FEEDS, MENU_LOAD_SEP_8, Me.BTT_CHECK_ALL, Me.BTT_CHECK_NONE, MENU_LOAD_SEP_9, Me.BTT_VIEW_SAVE, Me.BTT_VIEW_LOAD})
|
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, MENU_LOAD_SEP_0, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, MENU_LOAD_SEP_1, Me.BTT_COPY_SPEC_TO, Me.BTT_MOVE_SPEC_TO, MENU_LOAD_SEP_2, Me.BTT_LOAD_FAV, Me.BTT_LOAD_SPEC, MENU_LOAD_SEP_3, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_REMOVE_FAV, MENU_LOAD_SEP_4, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_SPEC, MENU_LOAD_SEP_5, Me.BTT_FEED_CLEAR_FAV, Me.BTT_FEED_CLEAR_SPEC, Me.BTT_FEED_DELETE_SPEC, Me.BTT_FEED_DELETE_DAILY_LIST, Me.BTT_FEED_DELETE_DAILY_DATE, MENU_LOAD_SEP_6, Me.BTT_CURR_SESSION_SET, Me.BTT_CURR_SESSION_SET_LAST, Me.BTT_MERGE_SESSIONS, Me.BTT_CLEAR_DAILY, Me.BTT_RESET_DAILY, MENU_LOAD_SEP_7, Me.BTT_MERGE_FEEDS, MENU_LOAD_SEP_8, Me.BTT_CHECK_ALL, Me.BTT_CHECK_NONE, MENU_LOAD_SEP_9, Me.BTT_VIEW_SAVE, Me.BTT_VIEW_LOAD})
|
||||||
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"
|
||||||
@@ -223,6 +229,24 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_MOVE_TO.Size = New System.Drawing.Size(352, 22)
|
Me.BTT_MOVE_TO.Size = New System.Drawing.Size(352, 22)
|
||||||
Me.BTT_MOVE_TO.Text = "Move checked to..."
|
Me.BTT_MOVE_TO.Text = "Move checked to..."
|
||||||
'
|
'
|
||||||
|
'BTT_COPY_SPEC_TO
|
||||||
|
'
|
||||||
|
Me.BTT_COPY_SPEC_TO.AutoToolTip = True
|
||||||
|
Me.BTT_COPY_SPEC_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32
|
||||||
|
Me.BTT_COPY_SPEC_TO.Name = "BTT_COPY_SPEC_TO"
|
||||||
|
Me.BTT_COPY_SPEC_TO.Size = New System.Drawing.Size(352, 22)
|
||||||
|
Me.BTT_COPY_SPEC_TO.Text = "Copy feed/session files to..."
|
||||||
|
Me.BTT_COPY_SPEC_TO.ToolTipText = "Copy all the files of the loaded feed/session to..."
|
||||||
|
'
|
||||||
|
'BTT_MOVE_SPEC_TO
|
||||||
|
'
|
||||||
|
Me.BTT_MOVE_SPEC_TO.AutoToolTip = True
|
||||||
|
Me.BTT_MOVE_SPEC_TO.Image = Global.SCrawler.My.Resources.Resources.CutPic_48
|
||||||
|
Me.BTT_MOVE_SPEC_TO.Name = "BTT_MOVE_SPEC_TO"
|
||||||
|
Me.BTT_MOVE_SPEC_TO.Size = New System.Drawing.Size(352, 22)
|
||||||
|
Me.BTT_MOVE_SPEC_TO.Text = "Move feed/session files to..."
|
||||||
|
Me.BTT_MOVE_SPEC_TO.ToolTipText = "Move all the files of the loaded feed/session to..."
|
||||||
|
'
|
||||||
'BTT_LOAD_FAV
|
'BTT_LOAD_FAV
|
||||||
'
|
'
|
||||||
Me.BTT_LOAD_FAV.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32
|
Me.BTT_LOAD_FAV.Image = Global.SCrawler.My.Resources.Resources.HeartPic_32
|
||||||
@@ -342,6 +366,15 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_CLEAR_DAILY.Text = "Clear session"
|
Me.BTT_CLEAR_DAILY.Text = "Clear session"
|
||||||
Me.BTT_CLEAR_DAILY.ToolTipText = "Clear current session"
|
Me.BTT_CLEAR_DAILY.ToolTipText = "Clear current session"
|
||||||
'
|
'
|
||||||
|
'BTT_RESET_DAILY
|
||||||
|
'
|
||||||
|
Me.BTT_RESET_DAILY.AutoToolTip = True
|
||||||
|
Me.BTT_RESET_DAILY.Image = Global.SCrawler.My.Resources.Resources.RefreshPic_24
|
||||||
|
Me.BTT_RESET_DAILY.Name = "BTT_RESET_DAILY"
|
||||||
|
Me.BTT_RESET_DAILY.Size = New System.Drawing.Size(352, 22)
|
||||||
|
Me.BTT_RESET_DAILY.Text = "Reset current session"
|
||||||
|
Me.BTT_RESET_DAILY.ToolTipText = "A new file will be created for the current session"
|
||||||
|
'
|
||||||
'BTT_MERGE_FEEDS
|
'BTT_MERGE_FEEDS
|
||||||
'
|
'
|
||||||
Me.BTT_MERGE_FEEDS.AutoToolTip = True
|
Me.BTT_MERGE_FEEDS.AutoToolTip = True
|
||||||
@@ -443,37 +476,12 @@ 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
|
||||||
'
|
'
|
||||||
'MENU_LOAD_SEP_9
|
'BTT_CURR_SESSION_SET_LAST
|
||||||
'
|
'
|
||||||
MENU_LOAD_SEP_9.Name = "MENU_LOAD_SEP_9"
|
Me.BTT_CURR_SESSION_SET_LAST.Image = Global.SCrawler.My.Resources.Resources.ArrowDownPic_Blue_24
|
||||||
MENU_LOAD_SEP_9.Size = New System.Drawing.Size(349, 6)
|
Me.BTT_CURR_SESSION_SET_LAST.Name = "BTT_CURR_SESSION_SET_LAST"
|
||||||
'
|
Me.BTT_CURR_SESSION_SET_LAST.Size = New System.Drawing.Size(352, 22)
|
||||||
'BTT_COPY_SPEC_TO
|
Me.BTT_CURR_SESSION_SET_LAST.Text = "Set last download session as current session"
|
||||||
'
|
|
||||||
Me.BTT_COPY_SPEC_TO.AutoToolTip = True
|
|
||||||
Me.BTT_COPY_SPEC_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32
|
|
||||||
Me.BTT_COPY_SPEC_TO.Name = "BTT_COPY_SPEC_TO"
|
|
||||||
Me.BTT_COPY_SPEC_TO.Size = New System.Drawing.Size(352, 22)
|
|
||||||
Me.BTT_COPY_SPEC_TO.Text = "Copy feed/session files to..."
|
|
||||||
Me.BTT_COPY_SPEC_TO.ToolTipText = "Copy all the files of the loaded feed/session to..."
|
|
||||||
'
|
|
||||||
'BTT_MOVE_SPEC_TO
|
|
||||||
'
|
|
||||||
Me.BTT_MOVE_SPEC_TO.AutoToolTip = True
|
|
||||||
Me.BTT_MOVE_SPEC_TO.Image = Global.SCrawler.My.Resources.Resources.CutPic_48
|
|
||||||
Me.BTT_MOVE_SPEC_TO.Name = "BTT_MOVE_SPEC_TO"
|
|
||||||
Me.BTT_MOVE_SPEC_TO.Size = New System.Drawing.Size(352, 22)
|
|
||||||
Me.BTT_MOVE_SPEC_TO.Text = "Move feed/session files to..."
|
|
||||||
Me.BTT_MOVE_SPEC_TO.ToolTipText = "Move all the files of the loaded feed/session to..."
|
|
||||||
'
|
|
||||||
'BTT_RESET_DAILY
|
|
||||||
'
|
|
||||||
Me.BTT_RESET_DAILY.AutoToolTip = True
|
|
||||||
Me.BTT_RESET_DAILY.Image = Global.SCrawler.My.Resources.Resources.RefreshPic_24
|
|
||||||
Me.BTT_RESET_DAILY.Name = "BTT_RESET_DAILY"
|
|
||||||
Me.BTT_RESET_DAILY.Size = New System.Drawing.Size(352, 22)
|
|
||||||
Me.BTT_RESET_DAILY.Text = "Reset current session"
|
|
||||||
Me.BTT_RESET_DAILY.ToolTipText = "A new file will be created for the current session"
|
|
||||||
'
|
'
|
||||||
'DownloadFeedForm
|
'DownloadFeedForm
|
||||||
'
|
'
|
||||||
@@ -534,5 +542,6 @@ Namespace DownloadObjects
|
|||||||
Private WithEvents BTT_COPY_SPEC_TO As ToolStripMenuItem
|
Private WithEvents BTT_COPY_SPEC_TO As ToolStripMenuItem
|
||||||
Private WithEvents BTT_MOVE_SPEC_TO As ToolStripMenuItem
|
Private WithEvents BTT_MOVE_SPEC_TO As ToolStripMenuItem
|
||||||
Private WithEvents BTT_RESET_DAILY As ToolStripMenuItem
|
Private WithEvents BTT_RESET_DAILY As ToolStripMenuItem
|
||||||
|
Private WithEvents BTT_CURR_SESSION_SET_LAST As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -162,10 +162,10 @@
|
|||||||
<metadata name="MENU_LOAD_SEP_8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="MENU_LOAD_SEP_8.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="ToolbarTOP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="MENU_LOAD_SEP_9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="MENU_LOAD_SEP_9.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="ToolbarTOP.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
@@ -190,7 +190,6 @@ Namespace DownloadObjects
|
|||||||
DataList.Clear()
|
DataList.Clear()
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub DownloadFeedForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
Private Sub DownloadFeedForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
|
||||||
'If e.KeyCode = Keys.F5 Then RefillList() : e.Handled = True
|
|
||||||
If Not e.Handled Then
|
If Not e.Handled Then
|
||||||
Dim b As Boolean = False
|
Dim b As Boolean = False
|
||||||
If e = GoToButton Then
|
If e = GoToButton Then
|
||||||
@@ -207,6 +206,8 @@ Namespace DownloadObjects
|
|||||||
Case Keys.Down, Keys.Right, Keys.PageDown : changePage = 1
|
Case Keys.Down, Keys.Right, Keys.PageDown : changePage = 1
|
||||||
Case Keys.Home : gotoHome = True
|
Case Keys.Home : gotoHome = True
|
||||||
Case Keys.End : gotoHome = False
|
Case Keys.End : gotoHome = False
|
||||||
|
Case Keys.Escape : If Settings.FeedEscToClose Then Close()
|
||||||
|
Case Else : If e.Control And e.KeyCode = Keys.W Then Close()
|
||||||
End Select
|
End Select
|
||||||
If changePage.HasValue Then
|
If changePage.HasValue Then
|
||||||
b = True
|
b = True
|
||||||
@@ -515,17 +516,21 @@ Namespace DownloadObjects
|
|||||||
f = Downloader.FilesSessionActual(False)
|
f = Downloader.FilesSessionActual(False)
|
||||||
End If
|
End If
|
||||||
If f.Exists Then
|
If f.Exists Then
|
||||||
If SelectedMode >= 0 Then
|
If GetSessionFile Then
|
||||||
If SelectedMode = FeedModes.Saved Then LoadedSessionName = f.Name
|
If Not Downloader.FilesSessionActual(False) = f Then SessionFile = f
|
||||||
FeedChangeMode(SelectedMode)
|
Else
|
||||||
|
If SelectedMode >= 0 Then
|
||||||
|
If SelectedMode = FeedModes.Saved Then LoadedSessionName = f.Name
|
||||||
|
FeedChangeMode(SelectedMode)
|
||||||
|
End If
|
||||||
|
DataList.Clear()
|
||||||
|
x = New XmlFile(f,, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
||||||
|
x.LoadData()
|
||||||
|
If x.Count > 0 Then DataList.ListAddList(x, lcr)
|
||||||
|
x.Dispose()
|
||||||
|
CleanDataList()
|
||||||
|
RefillList(False, False)
|
||||||
End If
|
End If
|
||||||
DataList.Clear()
|
|
||||||
x = New XmlFile(f,, False) With {.AllowSameNames = True, .XmlReadOnly = True}
|
|
||||||
x.LoadData()
|
|
||||||
If x.Count > 0 Then DataList.ListAddList(x, lcr)
|
|
||||||
x.Dispose()
|
|
||||||
CleanDataList()
|
|
||||||
RefillList(False, False)
|
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
m.Text = "Saved sessions not found"
|
m.Text = "Saved sessions not found"
|
||||||
@@ -553,6 +558,7 @@ Namespace DownloadObjects
|
|||||||
Dim data As IEnumerable(Of UserMediaD) = Nothing
|
Dim data As IEnumerable(Of UserMediaD) = Nothing
|
||||||
Dim dd As UserMediaD
|
Dim dd As UserMediaD
|
||||||
Dim __user As UserInfo
|
Dim __user As UserInfo
|
||||||
|
Dim __isSavedPosts As Boolean
|
||||||
Dim data_files As IEnumerable(Of SFile) = Nothing
|
Dim data_files As IEnumerable(Of SFile) = Nothing
|
||||||
Dim new_files As New List(Of SFile)
|
Dim new_files As New List(Of SFile)
|
||||||
Dim mm As UserMediaD
|
Dim mm As UserMediaD
|
||||||
@@ -568,6 +574,7 @@ Namespace DownloadObjects
|
|||||||
Dim sesFilesReplaced As Boolean = False
|
Dim sesFilesReplaced As Boolean = False
|
||||||
Dim filesReplace As New List(Of KeyValuePair(Of SFile, SFile))
|
Dim filesReplace As New List(Of KeyValuePair(Of SFile, SFile))
|
||||||
Dim updateFileLocations As Boolean = Settings.FeedMoveCopyUpdateFileLocationOnMove
|
Dim updateFileLocations As Boolean = Settings.FeedMoveCopyUpdateFileLocationOnMove
|
||||||
|
Dim postUrl$
|
||||||
Dim result As Boolean = False
|
Dim result As Boolean = False
|
||||||
|
|
||||||
If FeedMediaData Is Nothing Then
|
If FeedMediaData Is Nothing Then
|
||||||
@@ -671,8 +678,13 @@ Namespace DownloadObjects
|
|||||||
__user = mm.UserInfo
|
__user = mm.UserInfo
|
||||||
mm_data = mm.Data
|
mm_data = mm.Data
|
||||||
mm_data.File = df
|
mm_data.File = df
|
||||||
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date) With {.IsSavedPosts = mm.IsSavedPosts}
|
__isSavedPosts = mm.IsSavedPosts And moveOptions.ReplaceUserProfile_Profile Is Nothing
|
||||||
If moveOptions.ReplaceUserProfile_Profile Is Nothing And mm.IsSavedPosts Then mm.UserInfo = __user
|
postUrl = mm.PostUrl(True)
|
||||||
|
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date) With {
|
||||||
|
.IsSavedPosts = __isSavedPosts,
|
||||||
|
.PostUrl = postUrl
|
||||||
|
}
|
||||||
|
If __isSavedPosts Then mm.UserInfo = __user
|
||||||
Downloader.Files(indx) = mm
|
Downloader.Files(indx) = mm
|
||||||
downloaderFilesUpdated = True
|
downloaderFilesUpdated = True
|
||||||
End If
|
End If
|
||||||
@@ -701,8 +713,13 @@ Namespace DownloadObjects
|
|||||||
__user = mm.UserInfo
|
__user = mm.UserInfo
|
||||||
mm_data = mm.Data
|
mm_data = mm.Data
|
||||||
mm_data.File = df
|
mm_data.File = df
|
||||||
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date) With {.IsSavedPosts = mm.IsSavedPosts}
|
__isSavedPosts = mm.IsSavedPosts And moveOptions.ReplaceUserProfile_Profile Is Nothing
|
||||||
If moveOptions.ReplaceUserProfile_Profile Is Nothing And mm.IsSavedPosts Then mm.UserInfo = __user
|
postUrl = mm.PostUrl(True)
|
||||||
|
mm = New UserMediaD(mm_data, If(moveOptions.ReplaceUserProfile_Profile, mm.User), mm.Session, mm.Date) With {
|
||||||
|
.IsSavedPosts = __isSavedPosts,
|
||||||
|
.PostUrl = postUrl
|
||||||
|
}
|
||||||
|
If __isSavedPosts Then mm.UserInfo = __user
|
||||||
sessionData(indx) = mm
|
sessionData(indx) = mm
|
||||||
sesFilesReplaced = True
|
sesFilesReplaced = True
|
||||||
If DataList.Count > 0 Then
|
If DataList.Count > 0 Then
|
||||||
@@ -922,10 +939,10 @@ Namespace DownloadObjects
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Sessions set, merge, clear"
|
#Region "Sessions set, merge, clear"
|
||||||
Private Sub BTT_CURR_SESSION_SET_Click(sender As Object, e As EventArgs) Handles BTT_CURR_SESSION_SET.Click
|
Private Sub BTT_CURR_SESSION_SET_Click(sender As Object, e As EventArgs) Handles BTT_CURR_SESSION_SET.Click, BTT_CURR_SESSION_SET_LAST.Click
|
||||||
Try
|
Try
|
||||||
Dim f As SFile = Nothing
|
Dim f As SFile = Nothing
|
||||||
SessionChooser(False,,,, True, f)
|
SessionChooser(sender Is BTT_CURR_SESSION_SET_LAST,,,, True, f)
|
||||||
If Not f.IsEmptyString AndAlso f.Exists Then
|
If Not f.IsEmptyString AndAlso f.Exists Then
|
||||||
Downloader.FilesLoadLastSession(f)
|
Downloader.FilesLoadLastSession(f)
|
||||||
FeedChangeMode(FeedModes.Current)
|
FeedChangeMode(FeedModes.Current)
|
||||||
|
|||||||
25
SCrawler/Download/Feed/FeedMedia.Designer.vb
generated
@@ -27,7 +27,6 @@ Namespace DownloadObjects
|
|||||||
Dim TP_LBL As System.Windows.Forms.TableLayoutPanel
|
Dim TP_LBL As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim CONTEXT_SEP_3 As System.Windows.Forms.ToolStripSeparator
|
Dim CONTEXT_SEP_3 As System.Windows.Forms.ToolStripSeparator
|
||||||
Dim CONTEXT_SEP_4 As System.Windows.Forms.ToolStripSeparator
|
Dim CONTEXT_SEP_4 As System.Windows.Forms.ToolStripSeparator
|
||||||
Me.CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
|
||||||
Me.CH_CHECKED = New System.Windows.Forms.CheckBox()
|
Me.CH_CHECKED = New System.Windows.Forms.CheckBox()
|
||||||
Me.LBL_INFO = New System.Windows.Forms.Label()
|
Me.LBL_INFO = New System.Windows.Forms.Label()
|
||||||
Me.CONTEXT_DATA = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
Me.CONTEXT_DATA = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||||
@@ -37,6 +36,7 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_CONTEXT_OPEN_USER = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CONTEXT_OPEN_USER = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CONTEXT_OPEN_USER_URL = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CONTEXT_OPEN_USER_URL = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CONTEXT_OPEN_USER_POST = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CONTEXT_OPEN_USER_POST = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_COPY_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_MOVE_TO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_FEED_ADD_FAV = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
@@ -52,6 +52,7 @@ Namespace DownloadObjects
|
|||||||
Me.ICON_SITE = New System.Windows.Forms.PictureBox()
|
Me.ICON_SITE = New System.Windows.Forms.PictureBox()
|
||||||
Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
||||||
Me.LBL_TITLE = New System.Windows.Forms.Label()
|
Me.LBL_TITLE = New System.Windows.Forms.Label()
|
||||||
|
Me.BTT_CONTEXT_OPEN_FILE_FOLDER = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
TP_LBL = New System.Windows.Forms.TableLayoutPanel()
|
TP_LBL = New System.Windows.Forms.TableLayoutPanel()
|
||||||
CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
@@ -67,11 +68,6 @@ Namespace DownloadObjects
|
|||||||
CONTEXT_SEP_1.Name = "CONTEXT_SEP_1"
|
CONTEXT_SEP_1.Name = "CONTEXT_SEP_1"
|
||||||
CONTEXT_SEP_1.Size = New System.Drawing.Size(302, 6)
|
CONTEXT_SEP_1.Size = New System.Drawing.Size(302, 6)
|
||||||
'
|
'
|
||||||
'CONTEXT_SEP_2
|
|
||||||
'
|
|
||||||
Me.CONTEXT_SEP_2.Name = "CONTEXT_SEP_2"
|
|
||||||
Me.CONTEXT_SEP_2.Size = New System.Drawing.Size(302, 6)
|
|
||||||
'
|
|
||||||
'TP_LBL
|
'TP_LBL
|
||||||
'
|
'
|
||||||
TP_LBL.ColumnCount = 3
|
TP_LBL.ColumnCount = 3
|
||||||
@@ -114,9 +110,9 @@ Namespace DownloadObjects
|
|||||||
'
|
'
|
||||||
'CONTEXT_DATA
|
'CONTEXT_DATA
|
||||||
'
|
'
|
||||||
Me.CONTEXT_DATA.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.CONTEXT_SEP_0, Me.BTT_CONTEXT_OPEN_MEDIA, Me.BTT_CONTEXT_OPEN_USER, CONTEXT_SEP_1, Me.BTT_CONTEXT_OPEN_USER_URL, Me.BTT_CONTEXT_OPEN_USER_POST, Me.CONTEXT_SEP_2, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, CONTEXT_SEP_3, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_FAV, Me.BTT_FEED_REMOVE_SPEC, CONTEXT_SEP_4, Me.BTT_CONTEXT_FIND_USER, Me.BTT_CONTEXT_INFO, Me.CONTEXT_SEP_5, Me.BTT_CONTEXT_DELETE})
|
Me.CONTEXT_DATA.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.CONTEXT_SEP_0, Me.BTT_CONTEXT_OPEN_MEDIA, Me.BTT_CONTEXT_OPEN_USER, Me.BTT_CONTEXT_OPEN_FILE_FOLDER, CONTEXT_SEP_1, Me.BTT_CONTEXT_OPEN_USER_URL, Me.BTT_CONTEXT_OPEN_USER_POST, Me.CONTEXT_SEP_2, Me.BTT_COPY_TO, Me.BTT_MOVE_TO, CONTEXT_SEP_3, Me.BTT_FEED_ADD_FAV, Me.BTT_FEED_ADD_FAV_REMOVE, Me.BTT_FEED_ADD_SPEC, Me.BTT_FEED_ADD_SPEC_REMOVE, Me.BTT_FEED_REMOVE_FAV, Me.BTT_FEED_REMOVE_SPEC, CONTEXT_SEP_4, Me.BTT_CONTEXT_FIND_USER, Me.BTT_CONTEXT_INFO, Me.CONTEXT_SEP_5, Me.BTT_CONTEXT_DELETE})
|
||||||
Me.CONTEXT_DATA.Name = "CONTEXT_PIC"
|
Me.CONTEXT_DATA.Name = "CONTEXT_PIC"
|
||||||
Me.CONTEXT_DATA.Size = New System.Drawing.Size(306, 414)
|
Me.CONTEXT_DATA.Size = New System.Drawing.Size(306, 436)
|
||||||
'
|
'
|
||||||
'BTT_CONTEXT_DOWN
|
'BTT_CONTEXT_DOWN
|
||||||
'
|
'
|
||||||
@@ -160,6 +156,11 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_CONTEXT_OPEN_USER_POST.Size = New System.Drawing.Size(305, 22)
|
Me.BTT_CONTEXT_OPEN_USER_POST.Size = New System.Drawing.Size(305, 22)
|
||||||
Me.BTT_CONTEXT_OPEN_USER_POST.Text = "Open post"
|
Me.BTT_CONTEXT_OPEN_USER_POST.Text = "Open post"
|
||||||
'
|
'
|
||||||
|
'CONTEXT_SEP_2
|
||||||
|
'
|
||||||
|
Me.CONTEXT_SEP_2.Name = "CONTEXT_SEP_2"
|
||||||
|
Me.CONTEXT_SEP_2.Size = New System.Drawing.Size(302, 6)
|
||||||
|
'
|
||||||
'BTT_COPY_TO
|
'BTT_COPY_TO
|
||||||
'
|
'
|
||||||
Me.BTT_COPY_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32
|
Me.BTT_COPY_TO.Image = Global.SCrawler.My.Resources.Resources.PastePic_32
|
||||||
@@ -289,6 +290,13 @@ Namespace DownloadObjects
|
|||||||
Me.LBL_TITLE.Size = New System.Drawing.Size(140, 25)
|
Me.LBL_TITLE.Size = New System.Drawing.Size(140, 25)
|
||||||
Me.LBL_TITLE.TabIndex = 1
|
Me.LBL_TITLE.TabIndex = 1
|
||||||
'
|
'
|
||||||
|
'BTT_CONTEXT_OPEN_FILE_FOLDER
|
||||||
|
'
|
||||||
|
Me.BTT_CONTEXT_OPEN_FILE_FOLDER.Image = Global.SCrawler.My.Resources.Resources.FolderPic_32
|
||||||
|
Me.BTT_CONTEXT_OPEN_FILE_FOLDER.Name = "BTT_CONTEXT_OPEN_FILE_FOLDER"
|
||||||
|
Me.BTT_CONTEXT_OPEN_FILE_FOLDER.Size = New System.Drawing.Size(305, 22)
|
||||||
|
Me.BTT_CONTEXT_OPEN_FILE_FOLDER.Text = "Open file folder"
|
||||||
|
'
|
||||||
'FeedMedia
|
'FeedMedia
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -335,5 +343,6 @@ Namespace DownloadObjects
|
|||||||
Private WithEvents BTT_MOVE_TO As ToolStripMenuItem
|
Private WithEvents BTT_MOVE_TO As ToolStripMenuItem
|
||||||
Private WithEvents CONTEXT_SEP_5 As ToolStripSeparator
|
Private WithEvents CONTEXT_SEP_5 As ToolStripSeparator
|
||||||
Private WithEvents CONTEXT_SEP_2 As ToolStripSeparator
|
Private WithEvents CONTEXT_SEP_2 As ToolStripSeparator
|
||||||
|
Private WithEvents BTT_CONTEXT_OPEN_FILE_FOLDER As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -178,6 +178,7 @@ Namespace DownloadObjects
|
|||||||
BTT_CONTEXT_DOWN.Visible = True
|
BTT_CONTEXT_DOWN.Visible = True
|
||||||
CONTEXT_SEP_0.Visible = True
|
CONTEXT_SEP_0.Visible = True
|
||||||
BTT_CONTEXT_OPEN_USER.Visible = False
|
BTT_CONTEXT_OPEN_USER.Visible = False
|
||||||
|
BTT_CONTEXT_OPEN_FILE_FOLDER.Visible = False
|
||||||
CONTEXT_SEP_5.Visible = False
|
CONTEXT_SEP_5.Visible = False
|
||||||
BTT_CONTEXT_DELETE.Visible = False
|
BTT_CONTEXT_DELETE.Visible = False
|
||||||
|
|
||||||
@@ -416,8 +417,12 @@ Namespace DownloadObjects
|
|||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Open media, folder"
|
#Region "Open media, folder"
|
||||||
Private Sub BTT_CONTEXT_OPEN_MEDIA_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_MEDIA.Click
|
Private Sub BTT_CONTEXT_OPEN_MEDIA_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_MEDIA.Click, BTT_CONTEXT_OPEN_FILE_FOLDER.Click
|
||||||
File.Open()
|
If Not sender Is Nothing AndAlso sender Is BTT_CONTEXT_OPEN_FILE_FOLDER Then
|
||||||
|
GlobalOpenPath(File)
|
||||||
|
Else
|
||||||
|
File.Open()
|
||||||
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub BTT_CONTEXT_OPEN_USER_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_USER.Click
|
Private Sub BTT_CONTEXT_OPEN_USER_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_USER.Click
|
||||||
If Not UserKey.IsEmptyString Then
|
If Not UserKey.IsEmptyString Then
|
||||||
@@ -455,6 +460,8 @@ Namespace DownloadObjects
|
|||||||
Dim url$ = String.Empty
|
Dim url$ = String.Empty
|
||||||
If IsSubscription Then
|
If IsSubscription Then
|
||||||
url = Post.URL_BASE
|
url = Post.URL_BASE
|
||||||
|
ElseIf Not Media.PostUrl.IsEmptyString Then
|
||||||
|
url = Media.PostUrl
|
||||||
Else
|
Else
|
||||||
If Not UserKey.IsEmptyString And Not Post.Post.ID.IsEmptyString Then
|
If Not UserKey.IsEmptyString And Not Post.Post.ID.IsEmptyString Then
|
||||||
Dim u As IUserData
|
Dim u As IUserData
|
||||||
|
|||||||
@@ -157,6 +157,7 @@ Namespace DownloadObjects
|
|||||||
Else
|
Else
|
||||||
user = Item.User
|
user = Item.User
|
||||||
End If
|
End If
|
||||||
|
If isSaved Then isSaved = Item.UserInfo.Equals(DirectCast(user, UserDataBase).User)
|
||||||
If Not If(user?.IsSubscription, False) Then
|
If Not If(user?.IsSubscription, False) Then
|
||||||
Item = New UserMediaD(data, user, Item.Session, Item.Date) With {.IsSavedPosts = isSaved}
|
Item = New UserMediaD(data, user, Item.Session, Item.Date) With {.IsSavedPosts = isSaved}
|
||||||
Result = True
|
Result = True
|
||||||
@@ -176,9 +177,10 @@ Namespace DownloadObjects
|
|||||||
Dim m As UserMediaD = Items(indx)
|
Dim m As UserMediaD = Items(indx)
|
||||||
Dim mm As UserMedia = m.Data
|
Dim mm As UserMedia = m.Data
|
||||||
Dim user As UserInfo = m.UserInfo
|
Dim user As UserInfo = m.UserInfo
|
||||||
|
Dim __isSavedPosts As Boolean = m.IsSavedPosts And MCTOptions.ReplaceUserProfile_Profile Is Nothing
|
||||||
mm.File = NewFile
|
mm.File = NewFile
|
||||||
m = New UserMediaD(mm, If(MCTOptions.ReplaceUserProfile_Profile, m.User), m.Session, m.Date) With {.IsSavedPosts = m.IsSavedPosts}
|
m = New UserMediaD(mm, If(MCTOptions.ReplaceUserProfile_Profile, m.User), m.Session, m.Date) With {.IsSavedPosts = __isSavedPosts}
|
||||||
If MCTOptions.ReplaceUserProfile_Profile Is Nothing And m.IsSavedPosts Then m.UserInfo = user
|
If __isSavedPosts Then m.UserInfo = user
|
||||||
Items(indx) = m
|
Items(indx) = m
|
||||||
_FilesUpdated = True
|
_FilesUpdated = True
|
||||||
End If
|
End If
|
||||||
@@ -193,6 +195,7 @@ Namespace DownloadObjects
|
|||||||
#Region "Add"
|
#Region "Add"
|
||||||
Friend Overloads Function Add(ByVal Item As UserMediaD, Optional ByVal AutoSave As Boolean = True) As Boolean
|
Friend Overloads Function Add(ByVal Item As UserMediaD, Optional ByVal AutoSave As Boolean = True) As Boolean
|
||||||
If Not Items.Contains(Item) Then
|
If Not Items.Contains(Item) Then
|
||||||
|
Item.PostUrl = Item.PostUrl(True)
|
||||||
Items.Add(Item)
|
Items.Add(Item)
|
||||||
If AutoSave Then Save()
|
If AutoSave Then Save()
|
||||||
Return True
|
Return True
|
||||||
@@ -233,7 +236,65 @@ Namespace DownloadObjects
|
|||||||
Friend Function RemoveNotExist(ByVal p As Predicate(Of UserMediaD)) As Integer
|
Friend Function RemoveNotExist(ByVal p As Predicate(Of UserMediaD)) As Integer
|
||||||
If Count > 0 And Not _NotExistRemoved Then
|
If Count > 0 And Not _NotExistRemoved Then
|
||||||
_NotExistRemoved = True
|
_NotExistRemoved = True
|
||||||
Dim ri% = Items.RemoveAll(p)
|
Dim ri% = 0
|
||||||
|
If Settings.FeedSpecialSearchForMissing Then
|
||||||
|
Dim i% = -1
|
||||||
|
Dim d As UserMediaD = Nothing
|
||||||
|
Dim m As UserMedia
|
||||||
|
Dim f As SFile = Nothing
|
||||||
|
Dim ff As SFile
|
||||||
|
Dim postUrl$ = String.Empty
|
||||||
|
Dim user As IUserData
|
||||||
|
Dim processRemove As Boolean
|
||||||
|
Dim userArr As New List(Of IUserData)
|
||||||
|
|
||||||
|
Dim updateUser As Func(Of IUserData, Boolean) =
|
||||||
|
Function(ByVal replaceUser As IUserData) As Boolean
|
||||||
|
If f.Exists(SFO.Path, False) Then
|
||||||
|
ff = SFile.GetFiles(f, d.Data.File.File, IO.SearchOption.AllDirectories, EDP.ReturnValue).FirstOrDefault
|
||||||
|
If Not ff.IsEmptyString Then
|
||||||
|
m = d.Data
|
||||||
|
m.File = ff
|
||||||
|
d = New UserMediaD(m, If(replaceUser, d.User), d.Session, d.Date) With {
|
||||||
|
.IsSavedPosts = If(replaceUser Is Nothing, d.IsSavedPosts, DirectCast(replaceUser, UserDataBase).IsSavedPosts),
|
||||||
|
.PostUrl = postUrl
|
||||||
|
}
|
||||||
|
Items(i) = d
|
||||||
|
ri += 1
|
||||||
|
processRemove = False
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Function
|
||||||
|
|
||||||
|
For i = Count - 1 To 0 Step -1
|
||||||
|
If p.Invoke(Items(i)) Then
|
||||||
|
d = Items(i)
|
||||||
|
postUrl = d.PostUrl(True)
|
||||||
|
f = Nothing
|
||||||
|
ff = Nothing
|
||||||
|
processRemove = True
|
||||||
|
|
||||||
|
f = If(d.User?.File, New SFile).IfNullOrEmpty(d.UserInfo.File).CutPath
|
||||||
|
If updateUser(Nothing) Then Continue For
|
||||||
|
|
||||||
|
If Settings.FeedSpecialSearchForMissing_Deep Then
|
||||||
|
If userArr.Count = 0 Then userArr.ListAddList(Settings.GetUsers(Function(u) True))
|
||||||
|
If userArr.Count > 0 Then
|
||||||
|
For Each user In userArr
|
||||||
|
f = user.File.CutPath
|
||||||
|
If updateUser(user) Then Exit For
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If processRemove Then Items.RemoveAt(i) : ri += 1
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
ri = Items.RemoveAll(p)
|
||||||
|
End If
|
||||||
If ri > 0 Then Save()
|
If ri > 0 Then Save()
|
||||||
Return ri
|
Return ri
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ Namespace DownloadObjects
|
|||||||
Private Const Name_Session As String = "Session"
|
Private Const Name_Session As String = "Session"
|
||||||
Private Const Name_File As String = "File"
|
Private Const Name_File As String = "File"
|
||||||
Private Const Name_IsSavedPosts As String = "IsSavedPosts"
|
Private Const Name_IsSavedPosts As String = "IsSavedPosts"
|
||||||
|
Private Const Name_PostUrl As String = "PostUrl"
|
||||||
#End Region
|
#End Region
|
||||||
Friend ReadOnly User As IUserData
|
Friend ReadOnly User As IUserData
|
||||||
Friend ReadOnly Data As UserMedia
|
Friend ReadOnly Data As UserMedia
|
||||||
@@ -43,6 +44,48 @@ Namespace DownloadObjects
|
|||||||
Friend ReadOnly [Date] As Date
|
Friend ReadOnly [Date] As Date
|
||||||
Friend Session As Integer
|
Friend Session As Integer
|
||||||
Friend IsSavedPosts As Boolean
|
Friend IsSavedPosts As Boolean
|
||||||
|
Private _PostUrl As String
|
||||||
|
Friend Property PostUrl(Optional ByVal Generate As Boolean = False) As String
|
||||||
|
Get
|
||||||
|
Try
|
||||||
|
If Not _PostUrl.IsEmptyString Then
|
||||||
|
Return _PostUrl
|
||||||
|
ElseIf Generate Then
|
||||||
|
Dim url$ = String.Empty
|
||||||
|
With UserInfo
|
||||||
|
If Not .Plugin.IfNullOrEmpty(.Site).IsEmptyString And Not .Name.IsEmptyString And Not Data.Post.ID.IsEmptyString Then
|
||||||
|
Dim u As IUserData
|
||||||
|
If IsSavedPosts Then
|
||||||
|
If Not .Plugin.IsEmptyString Then
|
||||||
|
Dim host As SettingsHostCollection = Settings(.Plugin)
|
||||||
|
If Not host Is Nothing Then
|
||||||
|
u = host.Default.GetInstance(Download.SavedPosts, UserInfo, False, False)
|
||||||
|
If Not u Is Nothing AndAlso Not u.HOST Is Nothing Then
|
||||||
|
With DirectCast(u, UserDataBase)
|
||||||
|
.IsSavedPosts = True
|
||||||
|
.HostStatic = True
|
||||||
|
End With
|
||||||
|
Try : url = u.HOST.Source.GetUserPostUrl(u, Data) : Catch : End Try
|
||||||
|
u.Dispose()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
u = Settings.GetUser(UserInfo)
|
||||||
|
If Not u Is Nothing Then url = UserDataBase.GetPostUrl(u, Data)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End With
|
||||||
|
Return url
|
||||||
|
End If
|
||||||
|
Catch
|
||||||
|
End Try
|
||||||
|
Return String.Empty
|
||||||
|
End Get
|
||||||
|
Set(ByVal _PostUrl As String)
|
||||||
|
Me._PostUrl = _PostUrl
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
Friend Sub New(ByVal Data As UserMedia, ByVal User As IUserData, ByVal Session As Integer)
|
Friend Sub New(ByVal Data As UserMedia, ByVal User As IUserData, ByVal Session As Integer)
|
||||||
Me.Data = Data
|
Me.Data = Data
|
||||||
Me.User = User
|
Me.User = User
|
||||||
@@ -78,6 +121,7 @@ Namespace DownloadObjects
|
|||||||
Data = New UserMedia(e(Name_Media), User)
|
Data = New UserMedia(e(Name_Media), User)
|
||||||
[Date] = AConvert(Of Date)(e.Value(Name_Date), DateTimeDefaultProvider, Now)
|
[Date] = AConvert(Of Date)(e.Value(Name_Date), DateTimeDefaultProvider, Now)
|
||||||
Session = e.Value(Name_Session).FromXML(Of Integer)(0)
|
Session = e.Value(Name_Session).FromXML(Of Integer)(0)
|
||||||
|
_PostUrl = e.Value(Name_PostUrl)
|
||||||
Dim f As SFile = e.Value(Name_File)
|
Dim f As SFile = e.Value(Name_File)
|
||||||
If f.Exists Then Data.File = f
|
If f.Exists Then Data.File = f
|
||||||
End If
|
End If
|
||||||
@@ -106,7 +150,8 @@ Namespace DownloadObjects
|
|||||||
New EContainer(Name_Date, AConvert(Of String)([Date], DateTimeDefaultProvider, String.Empty)),
|
New EContainer(Name_Date, AConvert(Of String)([Date], DateTimeDefaultProvider, String.Empty)),
|
||||||
New EContainer(Name_Session, Session),
|
New EContainer(Name_Session, Session),
|
||||||
New EContainer(Name_File, Data.File),
|
New EContainer(Name_File, Data.File),
|
||||||
New EContainer(Name_IsSavedPosts, IsSavedPosts.BoolToInteger)},
|
New EContainer(Name_IsSavedPosts, IsSavedPosts.BoolToInteger),
|
||||||
|
New EContainer(Name_PostUrl, _PostUrl)},
|
||||||
If(IsSavedPosts, UserInfo.ToEContainer, If(Not User Is Nothing, DirectCast(User, UserDataBase).User.ToEContainer, Nothing)), LAP.IgnoreICopier)
|
If(IsSavedPosts, UserInfo.ToEContainer, If(Not User Is Nothing, DirectCast(User, UserDataBase).User.ToEContainer, Nothing)), LAP.IgnoreICopier)
|
||||||
End Function
|
End Function
|
||||||
End Structure
|
End Structure
|
||||||
|
|||||||
548
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 ActionButton39 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 ActionButton40 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 ActionButton41 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 ActionButton42 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 ActionButton43 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 ActionButton44 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 ActionButton45 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 ActionButton46 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,57 +46,58 @@ 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 ActionButton47 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 ActionButton48 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 TP_BEHAVIOR_F6 As System.Windows.Forms.TableLayoutPanel
|
Dim TP_BEHAVIOR_F6 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 ActionButton49 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 ActionButton50 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
|
||||||
Dim TP_FEED_IMG_COUNT As System.Windows.Forms.TableLayoutPanel
|
Dim TP_FEED_IMG_COUNT As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim TP_FEED_SES As System.Windows.Forms.TableLayoutPanel
|
Dim TP_FEED_SES As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton13 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton51 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 ActionButton52 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
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 ActionButton15 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton53 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 ActionButton54 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 ActionButton55 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 ActionButton56 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 ActionButton57 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 ActionButton58 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 ActionButton59 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 ActionButton60 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton23 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton61 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton24 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton62 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 ActionButton63 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 ActionButton64 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 ActionButton65 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
||||||
Dim ActionButton28 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
|
Dim ActionButton66 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 ActionButton29 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 ListColumn1 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
|
Dim ListColumn3 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 ListColumn4 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 ActionButton30 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 ActionButton31 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 ActionButton32 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 ActionButton33 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 TP_HEADERS_DEF As System.Windows.Forms.TableLayoutPanel
|
Dim TP_HEADERS_DEF As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim ActionButton34 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 ActionButton35 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 ActionButton36 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 ActionButton37 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 ActionButton38 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_HEADERS As System.Windows.Forms.TabPage
|
Dim TAB_HEADERS As System.Windows.Forms.TabPage
|
||||||
|
Dim TP_FEED_SPEC_SEARCH As System.Windows.Forms.TableLayoutPanel
|
||||||
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_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()
|
||||||
@@ -163,6 +164,8 @@ Namespace Editors
|
|||||||
Me.CH_RECYCLE_DEL = New System.Windows.Forms.CheckBox()
|
Me.CH_RECYCLE_DEL = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_DOWN_OPEN_PROGRESS = New System.Windows.Forms.CheckBox()
|
Me.CH_DOWN_OPEN_PROGRESS = New System.Windows.Forms.CheckBox()
|
||||||
Me.CH_DOWN_ALL_F6_USE = New System.Windows.Forms.CheckBox()
|
Me.CH_DOWN_ALL_F6_USE = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL = New System.Windows.Forms.CheckBox()
|
||||||
Me.TXT_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_DOWN_COMPLETE_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_DOWN_COMPLETE_SCRIPT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.CH_UNAME_UP = New System.Windows.Forms.CheckBox()
|
Me.CH_UNAME_UP = New System.Windows.Forms.CheckBox()
|
||||||
@@ -180,6 +183,8 @@ Namespace Editors
|
|||||||
Me.NUM_FEED_STORE_SESSION_DATA = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.NUM_FEED_STORE_SESSION_DATA = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.NUM_FEED_SES_CURR_LOAD_LAST = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.CH_FEED_ADD_SITE = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_ADD_SITE = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_FEED_ADD_TYPE = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE = New System.Windows.Forms.CheckBox()
|
||||||
Me.TXT_YTDLP = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_YTDLP = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_FFMPEG = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_FFMPEG = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
Me.TXT_CURL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
Me.TXT_CURL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
|
||||||
@@ -205,7 +210,8 @@ 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_FEED_ADD_TYPE = New System.Windows.Forms.CheckBox()
|
Me.CH_FEED_SPEC_SEARCH = New System.Windows.Forms.CheckBox()
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP = New System.Windows.Forms.CheckBox()
|
||||||
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()
|
||||||
@@ -239,6 +245,7 @@ Namespace Editors
|
|||||||
TP_DESIGN = New System.Windows.Forms.TableLayoutPanel()
|
TP_DESIGN = New System.Windows.Forms.TableLayoutPanel()
|
||||||
TP_HEADERS_DEF = New System.Windows.Forms.TableLayoutPanel()
|
TP_HEADERS_DEF = New System.Windows.Forms.TableLayoutPanel()
|
||||||
TAB_HEADERS = New System.Windows.Forms.TabPage()
|
TAB_HEADERS = New System.Windows.Forms.TabPage()
|
||||||
|
TP_FEED_SPEC_SEARCH = New System.Windows.Forms.TableLayoutPanel()
|
||||||
TP_BASIS.SuspendLayout()
|
TP_BASIS.SuspendLayout()
|
||||||
CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
TP_IMAGES.SuspendLayout()
|
TP_IMAGES.SuspendLayout()
|
||||||
@@ -267,6 +274,7 @@ Namespace Editors
|
|||||||
TP_OPEN_INFO.SuspendLayout()
|
TP_OPEN_INFO.SuspendLayout()
|
||||||
TP_OPEN_PROGRESS.SuspendLayout()
|
TP_OPEN_PROGRESS.SuspendLayout()
|
||||||
TP_BEHAVIOR_F6.SuspendLayout()
|
TP_BEHAVIOR_F6.SuspendLayout()
|
||||||
|
CType(Me.TXT_SCHEDULER_SCRIPT, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
TAB_DOWN.SuspendLayout()
|
TAB_DOWN.SuspendLayout()
|
||||||
TP_DOWNLOADING.SuspendLayout()
|
TP_DOWNLOADING.SuspendLayout()
|
||||||
CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.TXT_SCRIPT, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@@ -310,6 +318,7 @@ Namespace Editors
|
|||||||
Me.TAB_ENVIR.SuspendLayout()
|
Me.TAB_ENVIR.SuspendLayout()
|
||||||
Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
|
Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
|
||||||
Me.CONTAINER_MAIN.SuspendLayout()
|
Me.CONTAINER_MAIN.SuspendLayout()
|
||||||
|
TP_FEED_SPEC_SEARCH.SuspendLayout()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'TP_BASIS
|
'TP_BASIS
|
||||||
@@ -345,12 +354,12 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_GLOBAL_PATH
|
'TXT_GLOBAL_PATH
|
||||||
'
|
'
|
||||||
ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
|
ActionButton39.BackgroundImage = CType(resources.GetObject("ActionButton39.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton1.Name = "Open"
|
ActionButton39.Name = "Open"
|
||||||
ActionButton2.BackgroundImage = CType(resources.GetObject("ActionButton2.BackgroundImage"), System.Drawing.Image)
|
ActionButton40.BackgroundImage = CType(resources.GetObject("ActionButton40.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton2.Name = "Clear"
|
ActionButton40.Name = "Clear"
|
||||||
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton1)
|
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton39)
|
||||||
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton2)
|
Me.TXT_GLOBAL_PATH.Buttons.Add(ActionButton40)
|
||||||
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"
|
||||||
@@ -411,9 +420,9 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_COLLECTIONS_PATH
|
'TXT_COLLECTIONS_PATH
|
||||||
'
|
'
|
||||||
ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image)
|
ActionButton41.BackgroundImage = CType(resources.GetObject("ActionButton41.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton3.Name = "Clear"
|
ActionButton41.Name = "Clear"
|
||||||
Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton3)
|
Me.TXT_COLLECTIONS_PATH.Buttons.Add(ActionButton41)
|
||||||
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)"
|
||||||
@@ -425,10 +434,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_MAX_JOBS_USERS
|
'TXT_MAX_JOBS_USERS
|
||||||
'
|
'
|
||||||
ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image)
|
ActionButton42.BackgroundImage = CType(resources.GetObject("ActionButton42.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton4.Name = "Refresh"
|
ActionButton42.Name = "Refresh"
|
||||||
ActionButton4.ToolTipText = "Set to default"
|
ActionButton42.ToolTipText = "Set to default"
|
||||||
Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton4)
|
Me.TXT_MAX_JOBS_USERS.Buttons.Add(ActionButton42)
|
||||||
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
|
||||||
@@ -444,10 +453,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_MAX_JOBS_CHANNELS
|
'TXT_MAX_JOBS_CHANNELS
|
||||||
'
|
'
|
||||||
ActionButton5.BackgroundImage = CType(resources.GetObject("ActionButton5.BackgroundImage"), System.Drawing.Image)
|
ActionButton43.BackgroundImage = CType(resources.GetObject("ActionButton43.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton5.Name = "Refresh"
|
ActionButton43.Name = "Refresh"
|
||||||
ActionButton5.ToolTipText = "Set to default"
|
ActionButton43.ToolTipText = "Set to default"
|
||||||
Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton5)
|
Me.TXT_MAX_JOBS_CHANNELS.Buttons.Add(ActionButton43)
|
||||||
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
|
||||||
@@ -474,9 +483,9 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_IMGUR_CLIENT_ID
|
'TXT_IMGUR_CLIENT_ID
|
||||||
'
|
'
|
||||||
ActionButton6.BackgroundImage = CType(resources.GetObject("ActionButton6.BackgroundImage"), System.Drawing.Image)
|
ActionButton44.BackgroundImage = CType(resources.GetObject("ActionButton44.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton6.Name = "Clear"
|
ActionButton44.Name = "Clear"
|
||||||
Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton6)
|
Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton44)
|
||||||
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.Location = New System.Drawing.Point(4, 204)
|
Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 204)
|
||||||
@@ -486,14 +495,14 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_USER_AGENT
|
'TXT_USER_AGENT
|
||||||
'
|
'
|
||||||
ActionButton7.BackgroundImage = CType(resources.GetObject("ActionButton7.BackgroundImage"), System.Drawing.Image)
|
ActionButton45.BackgroundImage = CType(resources.GetObject("ActionButton45.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton7.Name = "Refresh"
|
ActionButton45.Name = "Refresh"
|
||||||
ActionButton7.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton45.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton8.BackgroundImage = CType(resources.GetObject("ActionButton8.BackgroundImage"), System.Drawing.Image)
|
ActionButton46.BackgroundImage = CType(resources.GetObject("ActionButton46.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton8.Name = "Clear"
|
ActionButton46.Name = "Clear"
|
||||||
ActionButton8.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton46.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_USER_AGENT.Buttons.Add(ActionButton7)
|
Me.TXT_USER_AGENT.Buttons.Add(ActionButton45)
|
||||||
Me.TXT_USER_AGENT.Buttons.Add(ActionButton8)
|
Me.TXT_USER_AGENT.Buttons.Add(ActionButton46)
|
||||||
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"
|
||||||
@@ -1286,10 +1295,12 @@ Namespace Editors
|
|||||||
TP_BEHAVIOR.Controls.Add(Me.CH_RECYCLE_DEL, 0, 3)
|
TP_BEHAVIOR.Controls.Add(Me.CH_RECYCLE_DEL, 0, 3)
|
||||||
TP_BEHAVIOR.Controls.Add(TP_OPEN_PROGRESS, 0, 5)
|
TP_BEHAVIOR.Controls.Add(TP_OPEN_PROGRESS, 0, 5)
|
||||||
TP_BEHAVIOR.Controls.Add(TP_BEHAVIOR_F6, 0, 8)
|
TP_BEHAVIOR.Controls.Add(TP_BEHAVIOR_F6, 0, 8)
|
||||||
|
TP_BEHAVIOR.Controls.Add(Me.TXT_SCHEDULER_SCRIPT, 0, 9)
|
||||||
|
TP_BEHAVIOR.Controls.Add(Me.CH_SCHEDULER_SCRIPT_EX_MANUAL, 0, 10)
|
||||||
TP_BEHAVIOR.Dock = System.Windows.Forms.DockStyle.Fill
|
TP_BEHAVIOR.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
TP_BEHAVIOR.Location = New System.Drawing.Point(0, 0)
|
TP_BEHAVIOR.Location = New System.Drawing.Point(0, 0)
|
||||||
TP_BEHAVIOR.Name = "TP_BEHAVIOR"
|
TP_BEHAVIOR.Name = "TP_BEHAVIOR"
|
||||||
TP_BEHAVIOR.RowCount = 10
|
TP_BEHAVIOR.RowCount = 12
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
@@ -1299,20 +1310,20 @@ 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.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.Absolute, 25.0!))
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
|
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
TP_BEHAVIOR.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.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(621, 399)
|
TP_BEHAVIOR.Size = New System.Drawing.Size(621, 399)
|
||||||
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)
|
ActionButton47.BackgroundImage = CType(resources.GetObject("ActionButton47.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton9.Enabled = False
|
ActionButton47.Enabled = False
|
||||||
ActionButton9.Name = "Clear"
|
ActionButton47.Name = "Clear"
|
||||||
ActionButton9.Visible = False
|
ActionButton47.Visible = False
|
||||||
Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton9)
|
Me.TXT_FOLDER_CMD.Buttons.Add(ActionButton47)
|
||||||
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
|
||||||
@@ -1351,11 +1362,11 @@ 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)
|
ActionButton48.BackgroundImage = CType(resources.GetObject("ActionButton48.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton10.Enabled = False
|
ActionButton48.Enabled = False
|
||||||
ActionButton10.Name = "Clear"
|
ActionButton48.Name = "Clear"
|
||||||
ActionButton10.Visible = False
|
ActionButton48.Visible = False
|
||||||
Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton10)
|
Me.TXT_CLOSE_SCRIPT.Buttons.Add(ActionButton48)
|
||||||
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
|
||||||
@@ -1468,6 +1479,31 @@ Namespace Editors
|
|||||||
Me.CH_DOWN_ALL_F6_USE.Text = "Use 'F6' to download all users"
|
Me.CH_DOWN_ALL_F6_USE.Text = "Use 'F6' to download all users"
|
||||||
Me.CH_DOWN_ALL_F6_USE.UseVisualStyleBackColor = True
|
Me.CH_DOWN_ALL_F6_USE.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
|
'TXT_SCHEDULER_SCRIPT
|
||||||
|
'
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.CaptionMode = PersonalUtilities.Forms.Controls.Base.ICaptionControl.Modes.CheckBox
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.CaptionText = "Scheduler script"
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.CaptionToolTipEnabled = True
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.CaptionToolTipText = "Execute the following script after the scheduler plan is completed"
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.CaptionWidth = 115.0R
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.Location = New System.Drawing.Point(4, 244)
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.Name = "TXT_SCHEDULER_SCRIPT"
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.Size = New System.Drawing.Size(613, 22)
|
||||||
|
Me.TXT_SCHEDULER_SCRIPT.TabIndex = 9
|
||||||
|
'
|
||||||
|
'CH_SCHEDULER_SCRIPT_EX_MANUAL
|
||||||
|
'
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.AutoSize = True
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.Location = New System.Drawing.Point(4, 273)
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.Name = "CH_SCHEDULER_SCRIPT_EX_MANUAL"
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.Size = New System.Drawing.Size(613, 19)
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.TabIndex = 10
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.Text = "Disable execution of 'Scheduler script' after completion of 'Manual' scheduler pl" &
|
||||||
|
"ans"
|
||||||
|
Me.CH_SCHEDULER_SCRIPT_EX_MANUAL.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'TAB_DOWN
|
'TAB_DOWN
|
||||||
'
|
'
|
||||||
TAB_DOWN.Controls.Add(TP_DOWNLOADING)
|
TAB_DOWN.Controls.Add(TP_DOWNLOADING)
|
||||||
@@ -1514,12 +1550,12 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_SCRIPT
|
'TXT_SCRIPT
|
||||||
'
|
'
|
||||||
ActionButton11.BackgroundImage = CType(resources.GetObject("ActionButton11.BackgroundImage"), System.Drawing.Image)
|
ActionButton49.BackgroundImage = CType(resources.GetObject("ActionButton49.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton11.Name = "Open"
|
ActionButton49.Name = "Open"
|
||||||
ActionButton12.BackgroundImage = CType(resources.GetObject("ActionButton12.BackgroundImage"), System.Drawing.Image)
|
ActionButton50.BackgroundImage = CType(resources.GetObject("ActionButton50.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton12.Name = "Clear"
|
ActionButton50.Name = "Clear"
|
||||||
Me.TXT_SCRIPT.Buttons.Add(ActionButton11)
|
Me.TXT_SCRIPT.Buttons.Add(ActionButton49)
|
||||||
Me.TXT_SCRIPT.Buttons.Add(ActionButton12)
|
Me.TXT_SCRIPT.Buttons.Add(ActionButton50)
|
||||||
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
|
||||||
@@ -1613,7 +1649,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(621, 374)
|
TAB_FEED.Size = New System.Drawing.Size(621, 399)
|
||||||
TAB_FEED.TabIndex = 7
|
TAB_FEED.TabIndex = 7
|
||||||
TAB_FEED.Text = "Feed"
|
TAB_FEED.Text = "Feed"
|
||||||
'
|
'
|
||||||
@@ -1635,10 +1671,12 @@ Namespace Editors
|
|||||||
TP_FEED.Controls.Add(TP_FEED_SES, 0, 8)
|
TP_FEED.Controls.Add(TP_FEED_SES, 0, 8)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_ADD_SITE, 0, 5)
|
TP_FEED.Controls.Add(Me.CH_FEED_ADD_SITE, 0, 5)
|
||||||
TP_FEED.Controls.Add(Me.CH_FEED_ADD_TYPE, 0, 6)
|
TP_FEED.Controls.Add(Me.CH_FEED_ADD_TYPE, 0, 6)
|
||||||
|
TP_FEED.Controls.Add(Me.CH_FEED_ESC_TO_CLOSE, 0, 13)
|
||||||
|
TP_FEED.Controls.Add(TP_FEED_SPEC_SEARCH, 0, 14)
|
||||||
TP_FEED.Dock = System.Windows.Forms.DockStyle.Fill
|
TP_FEED.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
TP_FEED.Location = New System.Drawing.Point(0, 0)
|
TP_FEED.Location = New System.Drawing.Point(0, 0)
|
||||||
TP_FEED.Name = "TP_FEED"
|
TP_FEED.Name = "TP_FEED"
|
||||||
TP_FEED.RowCount = 14
|
TP_FEED.RowCount = 16
|
||||||
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, 28.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, 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!))
|
||||||
@@ -1652,8 +1690,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, 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(621, 374)
|
TP_FEED.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
|
TP_FEED.Size = New System.Drawing.Size(621, 399)
|
||||||
TP_FEED.TabIndex = 0
|
TP_FEED.TabIndex = 0
|
||||||
'
|
'
|
||||||
'TP_FEED_IMG_COUNT
|
'TP_FEED_IMG_COUNT
|
||||||
@@ -1832,14 +1873,14 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'NUM_FEED_SES_CURR_LOAD_LAST
|
'NUM_FEED_SES_CURR_LOAD_LAST
|
||||||
'
|
'
|
||||||
ActionButton13.BackgroundImage = CType(resources.GetObject("ActionButton13.BackgroundImage"), System.Drawing.Image)
|
ActionButton51.BackgroundImage = CType(resources.GetObject("ActionButton51.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton13.Name = "Refresh"
|
ActionButton51.Name = "Refresh"
|
||||||
ActionButton13.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton51.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton14.BackgroundImage = CType(resources.GetObject("ActionButton14.BackgroundImage"), System.Drawing.Image)
|
ActionButton52.BackgroundImage = CType(resources.GetObject("ActionButton52.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton14.Name = "Clear"
|
ActionButton52.Name = "Clear"
|
||||||
ActionButton14.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton52.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton13)
|
Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton51)
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton14)
|
Me.NUM_FEED_SES_CURR_LOAD_LAST.Buttons.Add(ActionButton52)
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionText = "Load last session"
|
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionText = "Load last session"
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipEnabled = True
|
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipEnabled = True
|
||||||
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText = resources.GetString("NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText")
|
Me.NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText = resources.GetString("NUM_FEED_SES_CURR_LOAD_LAST.CaptionToolTipText")
|
||||||
@@ -1867,6 +1908,28 @@ Namespace Editors
|
|||||||
Me.CH_FEED_ADD_SITE.Text = "Add the site name to the post title"
|
Me.CH_FEED_ADD_SITE.Text = "Add the site name to the post title"
|
||||||
Me.CH_FEED_ADD_SITE.UseVisualStyleBackColor = True
|
Me.CH_FEED_ADD_SITE.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
|
'CH_FEED_ADD_TYPE
|
||||||
|
'
|
||||||
|
Me.CH_FEED_ADD_TYPE.AutoSize = True
|
||||||
|
Me.CH_FEED_ADD_TYPE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_FEED_ADD_TYPE.Location = New System.Drawing.Point(4, 166)
|
||||||
|
Me.CH_FEED_ADD_TYPE.Name = "CH_FEED_ADD_TYPE"
|
||||||
|
Me.CH_FEED_ADD_TYPE.Size = New System.Drawing.Size(613, 19)
|
||||||
|
Me.CH_FEED_ADD_TYPE.TabIndex = 6
|
||||||
|
Me.CH_FEED_ADD_TYPE.Text = "Add the file type to the post title"
|
||||||
|
Me.CH_FEED_ADD_TYPE.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_FEED_ESC_TO_CLOSE
|
||||||
|
'
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.AutoSize = True
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.Location = New System.Drawing.Point(4, 351)
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.Name = "CH_FEED_ESC_TO_CLOSE"
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.Size = New System.Drawing.Size(613, 19)
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.TabIndex = 13
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.Text = "Use the 'Esc' key to close the form"
|
||||||
|
Me.CH_FEED_ESC_TO_CLOSE.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
'TAB_NOTIFY
|
'TAB_NOTIFY
|
||||||
'
|
'
|
||||||
TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN)
|
TAB_NOTIFY.Controls.Add(TP_NOTIFY_MAIN)
|
||||||
@@ -1932,19 +1995,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_YTDLP
|
'TXT_YTDLP
|
||||||
'
|
'
|
||||||
ActionButton15.BackgroundImage = CType(resources.GetObject("ActionButton15.BackgroundImage"), System.Drawing.Image)
|
ActionButton53.BackgroundImage = CType(resources.GetObject("ActionButton53.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton15.Name = "Open"
|
ActionButton53.Name = "Open"
|
||||||
ActionButton15.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton53.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton16.BackgroundImage = CType(resources.GetObject("ActionButton16.BackgroundImage"), System.Drawing.Image)
|
ActionButton54.BackgroundImage = CType(resources.GetObject("ActionButton54.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton16.Name = "Refresh"
|
ActionButton54.Name = "Refresh"
|
||||||
ActionButton16.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton54.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton16.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
ActionButton54.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
||||||
ActionButton17.BackgroundImage = CType(resources.GetObject("ActionButton17.BackgroundImage"), System.Drawing.Image)
|
ActionButton55.BackgroundImage = CType(resources.GetObject("ActionButton55.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton17.Name = "Clear"
|
ActionButton55.Name = "Clear"
|
||||||
ActionButton17.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton55.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_YTDLP.Buttons.Add(ActionButton15)
|
Me.TXT_YTDLP.Buttons.Add(ActionButton53)
|
||||||
Me.TXT_YTDLP.Buttons.Add(ActionButton16)
|
Me.TXT_YTDLP.Buttons.Add(ActionButton54)
|
||||||
Me.TXT_YTDLP.Buttons.Add(ActionButton17)
|
Me.TXT_YTDLP.Buttons.Add(ActionButton55)
|
||||||
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"
|
||||||
@@ -1958,19 +2021,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_FFMPEG
|
'TXT_FFMPEG
|
||||||
'
|
'
|
||||||
ActionButton18.BackgroundImage = CType(resources.GetObject("ActionButton18.BackgroundImage"), System.Drawing.Image)
|
ActionButton56.BackgroundImage = CType(resources.GetObject("ActionButton56.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton18.Name = "Open"
|
ActionButton56.Name = "Open"
|
||||||
ActionButton18.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton56.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton19.BackgroundImage = CType(resources.GetObject("ActionButton19.BackgroundImage"), System.Drawing.Image)
|
ActionButton57.BackgroundImage = CType(resources.GetObject("ActionButton57.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton19.Name = "Refresh"
|
ActionButton57.Name = "Refresh"
|
||||||
ActionButton19.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton57.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton19.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
ActionButton57.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
||||||
ActionButton20.BackgroundImage = CType(resources.GetObject("ActionButton20.BackgroundImage"), System.Drawing.Image)
|
ActionButton58.BackgroundImage = CType(resources.GetObject("ActionButton58.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton20.Name = "Clear"
|
ActionButton58.Name = "Clear"
|
||||||
ActionButton20.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton58.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_FFMPEG.Buttons.Add(ActionButton18)
|
Me.TXT_FFMPEG.Buttons.Add(ActionButton56)
|
||||||
Me.TXT_FFMPEG.Buttons.Add(ActionButton19)
|
Me.TXT_FFMPEG.Buttons.Add(ActionButton57)
|
||||||
Me.TXT_FFMPEG.Buttons.Add(ActionButton20)
|
Me.TXT_FFMPEG.Buttons.Add(ActionButton58)
|
||||||
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"
|
||||||
@@ -1984,19 +2047,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_CURL
|
'TXT_CURL
|
||||||
'
|
'
|
||||||
ActionButton21.BackgroundImage = CType(resources.GetObject("ActionButton21.BackgroundImage"), System.Drawing.Image)
|
ActionButton59.BackgroundImage = CType(resources.GetObject("ActionButton59.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton21.Name = "Open"
|
ActionButton59.Name = "Open"
|
||||||
ActionButton21.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton59.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton22.BackgroundImage = CType(resources.GetObject("ActionButton22.BackgroundImage"), System.Drawing.Image)
|
ActionButton60.BackgroundImage = CType(resources.GetObject("ActionButton60.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton22.Name = "Refresh"
|
ActionButton60.Name = "Refresh"
|
||||||
ActionButton22.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton60.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton22.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
ActionButton60.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
||||||
ActionButton23.BackgroundImage = CType(resources.GetObject("ActionButton23.BackgroundImage"), System.Drawing.Image)
|
ActionButton61.BackgroundImage = CType(resources.GetObject("ActionButton61.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton23.Name = "Clear"
|
ActionButton61.Name = "Clear"
|
||||||
ActionButton23.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton61.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_CURL.Buttons.Add(ActionButton21)
|
Me.TXT_CURL.Buttons.Add(ActionButton59)
|
||||||
Me.TXT_CURL.Buttons.Add(ActionButton22)
|
Me.TXT_CURL.Buttons.Add(ActionButton60)
|
||||||
Me.TXT_CURL.Buttons.Add(ActionButton23)
|
Me.TXT_CURL.Buttons.Add(ActionButton61)
|
||||||
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"
|
||||||
@@ -2010,19 +2073,19 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_GALLERYDL
|
'TXT_GALLERYDL
|
||||||
'
|
'
|
||||||
ActionButton24.BackgroundImage = CType(resources.GetObject("ActionButton24.BackgroundImage"), System.Drawing.Image)
|
ActionButton62.BackgroundImage = CType(resources.GetObject("ActionButton62.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton24.Name = "Open"
|
ActionButton62.Name = "Open"
|
||||||
ActionButton24.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton62.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton25.BackgroundImage = CType(resources.GetObject("ActionButton25.BackgroundImage"), System.Drawing.Image)
|
ActionButton63.BackgroundImage = CType(resources.GetObject("ActionButton63.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton25.Name = "Refresh"
|
ActionButton63.Name = "Refresh"
|
||||||
ActionButton25.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton63.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton25.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
ActionButton63.ToolTipText = "Try to find this program automatically (in SCrawler and/or system environment)"
|
||||||
ActionButton26.BackgroundImage = CType(resources.GetObject("ActionButton26.BackgroundImage"), System.Drawing.Image)
|
ActionButton64.BackgroundImage = CType(resources.GetObject("ActionButton64.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton26.Name = "Clear"
|
ActionButton64.Name = "Clear"
|
||||||
ActionButton26.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton64.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_GALLERYDL.Buttons.Add(ActionButton24)
|
Me.TXT_GALLERYDL.Buttons.Add(ActionButton62)
|
||||||
Me.TXT_GALLERYDL.Buttons.Add(ActionButton25)
|
Me.TXT_GALLERYDL.Buttons.Add(ActionButton63)
|
||||||
Me.TXT_GALLERYDL.Buttons.Add(ActionButton26)
|
Me.TXT_GALLERYDL.Buttons.Add(ActionButton64)
|
||||||
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
|
||||||
@@ -2035,14 +2098,14 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_CMD_ENCODING
|
'TXT_CMD_ENCODING
|
||||||
'
|
'
|
||||||
ActionButton27.BackgroundImage = CType(resources.GetObject("ActionButton27.BackgroundImage"), System.Drawing.Image)
|
ActionButton65.BackgroundImage = CType(resources.GetObject("ActionButton65.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton27.Name = "Refresh"
|
ActionButton65.Name = "Refresh"
|
||||||
ActionButton27.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
ActionButton65.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Refresh
|
||||||
ActionButton28.BackgroundImage = CType(resources.GetObject("ActionButton28.BackgroundImage"), System.Drawing.Image)
|
ActionButton66.BackgroundImage = CType(resources.GetObject("ActionButton66.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton28.Name = "Clear"
|
ActionButton66.Name = "Clear"
|
||||||
ActionButton28.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton66.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton27)
|
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton65)
|
||||||
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton28)
|
Me.TXT_CMD_ENCODING.Buttons.Add(ActionButton66)
|
||||||
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"
|
||||||
@@ -2145,24 +2208,24 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'CMB_STD_OPEN_DBL
|
'CMB_STD_OPEN_DBL
|
||||||
'
|
'
|
||||||
ActionButton29.BackgroundImage = CType(resources.GetObject("ActionButton29.BackgroundImage"), System.Drawing.Image)
|
ActionButton67.BackgroundImage = CType(resources.GetObject("ActionButton67.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton29.Name = "ArrowDown"
|
ActionButton67.Name = "ArrowDown"
|
||||||
ActionButton29.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
ActionButton67.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.ArrowDown
|
||||||
Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton29)
|
Me.CMB_STD_OPEN_DBL.Buttons.Add(ActionButton67)
|
||||||
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
|
ListColumn3.DisplayMember = True
|
||||||
ListColumn1.Name = "STD_CMB_COL_TEXT"
|
ListColumn3.Name = "STD_CMB_COL_TEXT"
|
||||||
ListColumn1.Text = "Text"
|
ListColumn3.Text = "Text"
|
||||||
ListColumn2.Name = "STD_CMB_COL_VALUE"
|
ListColumn4.Name = "STD_CMB_COL_VALUE"
|
||||||
ListColumn2.Text = "Value"
|
ListColumn4.Text = "Value"
|
||||||
ListColumn2.ValueMember = True
|
ListColumn4.ValueMember = True
|
||||||
ListColumn2.Visible = False
|
ListColumn4.Visible = False
|
||||||
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn1)
|
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn3)
|
||||||
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn2)
|
Me.CMB_STD_OPEN_DBL.Columns.Add(ListColumn4)
|
||||||
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.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"
|
||||||
@@ -2230,10 +2293,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_PRG_TITLE
|
'TXT_PRG_TITLE
|
||||||
'
|
'
|
||||||
ActionButton30.BackgroundImage = CType(resources.GetObject("ActionButton30.BackgroundImage"), System.Drawing.Image)
|
ActionButton68.BackgroundImage = CType(resources.GetObject("ActionButton68.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton30.Name = "Clear"
|
ActionButton68.Name = "Clear"
|
||||||
ActionButton30.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton68.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_PRG_TITLE.Buttons.Add(ActionButton30)
|
Me.TXT_PRG_TITLE.Buttons.Add(ActionButton68)
|
||||||
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"
|
||||||
@@ -2245,10 +2308,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_PRG_DESCR
|
'TXT_PRG_DESCR
|
||||||
'
|
'
|
||||||
ActionButton31.BackgroundImage = CType(resources.GetObject("ActionButton31.BackgroundImage"), System.Drawing.Image)
|
ActionButton69.BackgroundImage = CType(resources.GetObject("ActionButton69.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton31.Name = "Clear"
|
ActionButton69.Name = "Clear"
|
||||||
ActionButton31.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton69.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_PRG_DESCR.Buttons.Add(ActionButton31)
|
Me.TXT_PRG_DESCR.Buttons.Add(ActionButton69)
|
||||||
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"
|
||||||
@@ -2260,14 +2323,14 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_USER_LIST_IMAGE
|
'TXT_USER_LIST_IMAGE
|
||||||
'
|
'
|
||||||
ActionButton32.BackgroundImage = CType(resources.GetObject("ActionButton32.BackgroundImage"), System.Drawing.Image)
|
ActionButton70.BackgroundImage = CType(resources.GetObject("ActionButton70.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton32.Name = "Open"
|
ActionButton70.Name = "Open"
|
||||||
ActionButton32.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
ActionButton70.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Open
|
||||||
ActionButton33.BackgroundImage = CType(resources.GetObject("ActionButton33.BackgroundImage"), System.Drawing.Image)
|
ActionButton71.BackgroundImage = CType(resources.GetObject("ActionButton71.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton33.Name = "Clear"
|
ActionButton71.Name = "Clear"
|
||||||
ActionButton33.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton71.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton32)
|
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton70)
|
||||||
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton33)
|
Me.TXT_USER_LIST_IMAGE.Buttons.Add(ActionButton71)
|
||||||
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"
|
||||||
@@ -2341,10 +2404,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_H_DEF_UserAgent
|
'TXT_H_DEF_UserAgent
|
||||||
'
|
'
|
||||||
ActionButton34.BackgroundImage = CType(resources.GetObject("ActionButton34.BackgroundImage"), System.Drawing.Image)
|
ActionButton72.BackgroundImage = CType(resources.GetObject("ActionButton72.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton34.Name = "Clear"
|
ActionButton72.Name = "Clear"
|
||||||
ActionButton34.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton72.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_H_DEF_UserAgent.Buttons.Add(ActionButton34)
|
Me.TXT_H_DEF_UserAgent.Buttons.Add(ActionButton72)
|
||||||
Me.TXT_H_DEF_UserAgent.CaptionText = "UserAgent"
|
Me.TXT_H_DEF_UserAgent.CaptionText = "UserAgent"
|
||||||
Me.TXT_H_DEF_UserAgent.CaptionWidth = 140.0R
|
Me.TXT_H_DEF_UserAgent.CaptionWidth = 140.0R
|
||||||
Me.TXT_H_DEF_UserAgent.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_H_DEF_UserAgent.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@@ -2355,10 +2418,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_H_DEF_sec_ch_ua
|
'TXT_H_DEF_sec_ch_ua
|
||||||
'
|
'
|
||||||
ActionButton35.BackgroundImage = CType(resources.GetObject("ActionButton35.BackgroundImage"), System.Drawing.Image)
|
ActionButton73.BackgroundImage = CType(resources.GetObject("ActionButton73.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton35.Name = "Clear"
|
ActionButton73.Name = "Clear"
|
||||||
ActionButton35.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton73.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_H_DEF_sec_ch_ua.Buttons.Add(ActionButton35)
|
Me.TXT_H_DEF_sec_ch_ua.Buttons.Add(ActionButton73)
|
||||||
Me.TXT_H_DEF_sec_ch_ua.CaptionText = "sec-ch-ua"
|
Me.TXT_H_DEF_sec_ch_ua.CaptionText = "sec-ch-ua"
|
||||||
Me.TXT_H_DEF_sec_ch_ua.CaptionWidth = 140.0R
|
Me.TXT_H_DEF_sec_ch_ua.CaptionWidth = 140.0R
|
||||||
Me.TXT_H_DEF_sec_ch_ua.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_H_DEF_sec_ch_ua.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@@ -2369,10 +2432,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_H_DEF_sec_ch_ua_full_version_list
|
'TXT_H_DEF_sec_ch_ua_full_version_list
|
||||||
'
|
'
|
||||||
ActionButton36.BackgroundImage = CType(resources.GetObject("ActionButton36.BackgroundImage"), System.Drawing.Image)
|
ActionButton74.BackgroundImage = CType(resources.GetObject("ActionButton74.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton36.Name = "Clear"
|
ActionButton74.Name = "Clear"
|
||||||
ActionButton36.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton74.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Buttons.Add(ActionButton36)
|
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Buttons.Add(ActionButton74)
|
||||||
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionText = "sec-ch-ua-full-version-list"
|
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionText = "sec-ch-ua-full-version-list"
|
||||||
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionWidth = 140.0R
|
Me.TXT_H_DEF_sec_ch_ua_full_version_list.CaptionWidth = 140.0R
|
||||||
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_H_DEF_sec_ch_ua_full_version_list.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@@ -2383,10 +2446,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_H_DEF_sec_ch_ua_platform
|
'TXT_H_DEF_sec_ch_ua_platform
|
||||||
'
|
'
|
||||||
ActionButton37.BackgroundImage = CType(resources.GetObject("ActionButton37.BackgroundImage"), System.Drawing.Image)
|
ActionButton75.BackgroundImage = CType(resources.GetObject("ActionButton75.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton37.Name = "Clear"
|
ActionButton75.Name = "Clear"
|
||||||
ActionButton37.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton75.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform.Buttons.Add(ActionButton37)
|
Me.TXT_H_DEF_sec_ch_ua_platform.Buttons.Add(ActionButton75)
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionText = "sec-ch-ua-platform"
|
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionText = "sec-ch-ua-platform"
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionWidth = 140.0R
|
Me.TXT_H_DEF_sec_ch_ua_platform.CaptionWidth = 140.0R
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_H_DEF_sec_ch_ua_platform.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@@ -2397,10 +2460,10 @@ Namespace Editors
|
|||||||
'
|
'
|
||||||
'TXT_H_DEF_sec_ch_ua_platform_version
|
'TXT_H_DEF_sec_ch_ua_platform_version
|
||||||
'
|
'
|
||||||
ActionButton38.BackgroundImage = CType(resources.GetObject("ActionButton38.BackgroundImage"), System.Drawing.Image)
|
ActionButton76.BackgroundImage = CType(resources.GetObject("ActionButton76.BackgroundImage"), System.Drawing.Image)
|
||||||
ActionButton38.Name = "Clear"
|
ActionButton76.Name = "Clear"
|
||||||
ActionButton38.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
ActionButton76.Tag = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons.Clear
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform_version.Buttons.Add(ActionButton38)
|
Me.TXT_H_DEF_sec_ch_ua_platform_version.Buttons.Add(ActionButton76)
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionText = "sec-ch-ua-platform-version"
|
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionText = "sec-ch-ua-platform-version"
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionWidth = 140.0R
|
Me.TXT_H_DEF_sec_ch_ua_platform_version.CaptionWidth = 140.0R
|
||||||
Me.TXT_H_DEF_sec_ch_ua_platform_version.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TXT_H_DEF_sec_ch_ua_platform_version.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
@@ -2435,7 +2498,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(629, 400)
|
Me.TAB_MAIN.Size = New System.Drawing.Size(629, 425)
|
||||||
Me.TAB_MAIN.TabIndex = 1
|
Me.TAB_MAIN.TabIndex = 1
|
||||||
'
|
'
|
||||||
'TAB_ENVIR
|
'TAB_ENVIR
|
||||||
@@ -2453,40 +2516,71 @@ 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(629, 400)
|
Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(629, 425)
|
||||||
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(629, 425)
|
Me.CONTAINER_MAIN.Size = New System.Drawing.Size(629, 450)
|
||||||
Me.CONTAINER_MAIN.TabIndex = 0
|
Me.CONTAINER_MAIN.TabIndex = 0
|
||||||
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
|
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
|
||||||
'
|
'
|
||||||
'CH_FEED_ADD_TYPE
|
'TP_FEED_SPEC_SEARCH
|
||||||
'
|
'
|
||||||
Me.CH_FEED_ADD_TYPE.AutoSize = True
|
TP_FEED_SPEC_SEARCH.ColumnCount = 2
|
||||||
Me.CH_FEED_ADD_TYPE.Dock = System.Windows.Forms.DockStyle.Fill
|
TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||||
Me.CH_FEED_ADD_TYPE.Location = New System.Drawing.Point(4, 166)
|
TP_FEED_SPEC_SEARCH.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
|
||||||
Me.CH_FEED_ADD_TYPE.Name = "CH_FEED_ADD_TYPE"
|
TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH, 0, 0)
|
||||||
Me.CH_FEED_ADD_TYPE.Size = New System.Drawing.Size(613, 19)
|
TP_FEED_SPEC_SEARCH.Controls.Add(Me.CH_FEED_SPEC_SEARCH_DEEP, 1, 0)
|
||||||
Me.CH_FEED_ADD_TYPE.TabIndex = 6
|
TP_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.CH_FEED_ADD_TYPE.Text = "Add the file type to the post title"
|
TP_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(1, 374)
|
||||||
Me.CH_FEED_ADD_TYPE.UseVisualStyleBackColor = True
|
TP_FEED_SPEC_SEARCH.Margin = New System.Windows.Forms.Padding(0)
|
||||||
|
TP_FEED_SPEC_SEARCH.Name = "TP_FEED_SPEC_SEARCH"
|
||||||
|
TP_FEED_SPEC_SEARCH.RowCount = 1
|
||||||
|
TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_FEED_SPEC_SEARCH.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
|
TP_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(619, 25)
|
||||||
|
TP_FEED_SPEC_SEARCH.TabIndex = 14
|
||||||
|
'
|
||||||
|
'CH_FEED_SPEC_SEARCH
|
||||||
|
'
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.AutoSize = True
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.Location = New System.Drawing.Point(3, 3)
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.Name = "CH_FEED_SPEC_SEARCH"
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.Size = New System.Drawing.Size(303, 19)
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.TabIndex = 0
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.Text = "Search missing files (special feeds)"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH, "Search for missing file in the entire user folder")
|
||||||
|
Me.CH_FEED_SPEC_SEARCH.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'CH_FEED_SPEC_SEARCH_DEEP
|
||||||
|
'
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.AutoSize = True
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.Location = New System.Drawing.Point(312, 3)
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.Name = "CH_FEED_SPEC_SEARCH_DEEP"
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.Size = New System.Drawing.Size(304, 19)
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.TabIndex = 1
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.Text = "Search missing files (special feeds): deep search"
|
||||||
|
TT_MAIN.SetToolTip(Me.CH_FEED_SPEC_SEARCH_DEEP, "Deep search means that the missing file will be searched in other users' location" &
|
||||||
|
"s as well.")
|
||||||
|
Me.CH_FEED_SPEC_SEARCH_DEEP.UseVisualStyleBackColor = True
|
||||||
'
|
'
|
||||||
'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(629, 425)
|
Me.ClientSize = New System.Drawing.Size(629, 450)
|
||||||
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(645, 464)
|
Me.MaximumSize = New System.Drawing.Size(645, 489)
|
||||||
Me.MinimizeBox = False
|
Me.MinimizeBox = False
|
||||||
Me.MinimumSize = New System.Drawing.Size(645, 464)
|
Me.MinimumSize = New System.Drawing.Size(645, 489)
|
||||||
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
|
||||||
@@ -2528,6 +2622,7 @@ Namespace Editors
|
|||||||
TP_OPEN_PROGRESS.PerformLayout()
|
TP_OPEN_PROGRESS.PerformLayout()
|
||||||
TP_BEHAVIOR_F6.ResumeLayout(False)
|
TP_BEHAVIOR_F6.ResumeLayout(False)
|
||||||
TP_BEHAVIOR_F6.PerformLayout()
|
TP_BEHAVIOR_F6.PerformLayout()
|
||||||
|
CType(Me.TXT_SCHEDULER_SCRIPT, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
TAB_DOWN.ResumeLayout(False)
|
TAB_DOWN.ResumeLayout(False)
|
||||||
TP_DOWNLOADING.ResumeLayout(False)
|
TP_DOWNLOADING.ResumeLayout(False)
|
||||||
TP_DOWNLOADING.PerformLayout()
|
TP_DOWNLOADING.PerformLayout()
|
||||||
@@ -2577,6 +2672,8 @@ Namespace Editors
|
|||||||
Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
|
Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
|
||||||
Me.CONTAINER_MAIN.ResumeLayout(False)
|
Me.CONTAINER_MAIN.ResumeLayout(False)
|
||||||
Me.CONTAINER_MAIN.PerformLayout()
|
Me.CONTAINER_MAIN.PerformLayout()
|
||||||
|
TP_FEED_SPEC_SEARCH.ResumeLayout(False)
|
||||||
|
TP_FEED_SPEC_SEARCH.PerformLayout()
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -2689,5 +2786,10 @@ Namespace Editors
|
|||||||
Private WithEvents TXT_AUTO_BRUSH_MIN As PersonalUtilities.Forms.Controls.TextBoxExtended
|
Private WithEvents TXT_AUTO_BRUSH_MIN As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
Private WithEvents CH_FEED_ADD_SITE As CheckBox
|
Private WithEvents CH_FEED_ADD_SITE As CheckBox
|
||||||
Private WithEvents CH_FEED_ADD_TYPE As CheckBox
|
Private WithEvents CH_FEED_ADD_TYPE As CheckBox
|
||||||
|
Private WithEvents CH_FEED_ESC_TO_CLOSE As CheckBox
|
||||||
|
Private WithEvents TXT_SCHEDULER_SCRIPT As PersonalUtilities.Forms.Controls.TextBoxExtended
|
||||||
|
Private WithEvents CH_SCHEDULER_SCRIPT_EX_MANUAL As CheckBox
|
||||||
|
Private WithEvents CH_FEED_SPEC_SEARCH As CheckBox
|
||||||
|
Private WithEvents CH_FEED_SPEC_SEARCH_DEEP As CheckBox
|
||||||
End Class
|
End Class
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -120,8 +120,11 @@
|
|||||||
<metadata name="TP_BASIS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_BASIS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="TP_IMAGES.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" />
|
<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="ActionButton39.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 +135,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="ActionButton40.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 +146,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="ActionButton41.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 +154,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="ActionButton42.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 +170,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="ActionButton43.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 +186,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="ActionButton44.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
|
||||||
@@ -191,7 +194,7 @@
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton7.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton45.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
|
||||||
@@ -207,7 +210,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="ActionButton46.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
|
||||||
@@ -224,6 +227,9 @@
|
|||||||
<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">
|
<metadata name="TT_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
@@ -257,19 +263,37 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_DEFS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_DEFS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="TP_DEFS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="TAB_DEFS_CHANNELS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TAB_DEFS_CHANNELS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TP_CHANNELS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_CHANNELS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="TP_CHANNELS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="TAB_BEHAVIOR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TAB_BEHAVIOR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<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">
|
<metadata name="TP_BEHAVIOR.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_OPEN_INFO.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_OPEN_PROGRESS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_BEHAVIOR_F6.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="ActionButton47.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 +301,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="ActionButton48.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
|
||||||
@@ -300,7 +324,13 @@ 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">
|
<metadata name="TP_DOWNLOADING.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_MISSING_DATA.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="ActionButton49.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
|
||||||
@@ -311,7 +341,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="ActionButton50.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
|
||||||
@@ -334,7 +364,10 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_FEED_SES.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_FEED_SES.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">
|
<metadata name="TP_FEED_SPEC_SEARCH.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="ActionButton51.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
|
||||||
@@ -350,7 +383,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="ActionButton14.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton52.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
|
||||||
@@ -370,10 +403,13 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_NOTIFY_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_NOTIFY_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="TP_NOTIFY_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
<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="ActionButton15.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="ActionButton53.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
|
||||||
@@ -384,7 +420,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="ActionButton54.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
|
||||||
@@ -400,7 +436,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="ActionButton17.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
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -408,7 +444,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton18.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
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -419,7 +455,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton19.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/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -435,7 +471,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="ActionButton20.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/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -443,7 +479,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="ActionButton59.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
|
||||||
@@ -454,7 +490,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton22.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/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -470,7 +506,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="ActionButton23.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/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -478,7 +514,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton24.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
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -489,7 +525,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton25.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/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -505,7 +541,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="ActionButton26.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
|
||||||
@@ -513,7 +549,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton27.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/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
|
||||||
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAACOElE
|
||||||
@@ -529,7 +565,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="ActionButton28.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
|
||||||
@@ -543,7 +579,10 @@ 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="ActionButton29.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<metadata name="TP_STD.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="ActionButton67.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
|
||||||
@@ -639,7 +678,10 @@ 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="ActionButton30.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<metadata name="TP_DESIGN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<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
|
||||||
@@ -647,7 +689,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton31.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
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -655,7 +697,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton32.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
|
||||||
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
|
||||||
@@ -666,7 +708,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
cMaRN0UdBBkAAAAASUVORK5CYII=
|
cMaRN0UdBBkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton33.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
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -677,7 +719,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
<metadata name="TP_HEADERS_DEF.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="TP_HEADERS_DEF.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>False</value>
|
<value>False</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="ActionButton34.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
|
||||||
@@ -685,7 +727,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton35.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
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -693,7 +735,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton36.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
|
||||||
@@ -701,7 +743,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton37.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/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||||
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
|
||||||
@@ -709,7 +751,7 @@ You can find more detailed information about the missing posts in the form that
|
|||||||
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActionButton38.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
|
||||||
|
|||||||
@@ -77,6 +77,9 @@ Namespace Editors
|
|||||||
CH_DOWN_ALL_F6_USE.Checked = .DownloadAll_UseF6
|
CH_DOWN_ALL_F6_USE.Checked = .DownloadAll_UseF6
|
||||||
CH_DOWN_ALL_F6_NOTIFY.Checked = .DownloadAll_UseF6_Confirm
|
CH_DOWN_ALL_F6_NOTIFY.Checked = .DownloadAll_UseF6_Confirm
|
||||||
CH_DOWN_ALL_NOTIFY.Checked = .DownloadAll_Confirm
|
CH_DOWN_ALL_NOTIFY.Checked = .DownloadAll_Confirm
|
||||||
|
TXT_SCHEDULER_SCRIPT.Text = .AutomationScript
|
||||||
|
TXT_SCHEDULER_SCRIPT.Checked = .AutomationScript.Use
|
||||||
|
CH_SCHEDULER_SCRIPT_EX_MANUAL.Checked = .AutomationScript_ExcludeManual
|
||||||
'Notifications
|
'Notifications
|
||||||
CH_NOTIFY_SILENT.Checked = .NotificationsSilentMode
|
CH_NOTIFY_SILENT.Checked = .NotificationsSilentMode
|
||||||
CH_NOTIFY_SHOW_BASE.Checked = .ShowNotifications
|
CH_NOTIFY_SHOW_BASE.Checked = .ShowNotifications
|
||||||
@@ -161,6 +164,9 @@ Namespace Editors
|
|||||||
CH_FEED_SHOW_FRIENDLY.Checked = .FeedShowFriendlyNames
|
CH_FEED_SHOW_FRIENDLY.Checked = .FeedShowFriendlyNames
|
||||||
CH_FEED_SHOW_SPEC_MEDIAITEM.Checked = .FeedShowSpecialFeedsMediaItem
|
CH_FEED_SHOW_SPEC_MEDIAITEM.Checked = .FeedShowSpecialFeedsMediaItem
|
||||||
CH_FEED_UP_FILE_LOC_MOVE.Checked = .FeedMoveCopyUpdateFileLocationOnMove
|
CH_FEED_UP_FILE_LOC_MOVE.Checked = .FeedMoveCopyUpdateFileLocationOnMove
|
||||||
|
CH_FEED_ESC_TO_CLOSE.Checked = .FeedEscToClose
|
||||||
|
CH_FEED_SPEC_SEARCH.Checked = .FeedSpecialSearchForMissing
|
||||||
|
CH_FEED_SPEC_SEARCH_DEEP.Checked = .FeedSpecialSearchForMissing_Deep
|
||||||
End With
|
End With
|
||||||
.MyFieldsChecker = New FieldsChecker
|
.MyFieldsChecker = New FieldsChecker
|
||||||
With .MyFieldsCheckerE
|
With .MyFieldsCheckerE
|
||||||
@@ -291,6 +297,9 @@ Namespace Editors
|
|||||||
.DownloadAll_UseF6.Value = CH_DOWN_ALL_F6_USE.Checked
|
.DownloadAll_UseF6.Value = CH_DOWN_ALL_F6_USE.Checked
|
||||||
.DownloadAll_UseF6_Confirm.Value = CH_DOWN_ALL_F6_NOTIFY.Checked
|
.DownloadAll_UseF6_Confirm.Value = CH_DOWN_ALL_F6_NOTIFY.Checked
|
||||||
.DownloadAll_Confirm.Value = CH_DOWN_ALL_NOTIFY.Checked
|
.DownloadAll_Confirm.Value = CH_DOWN_ALL_NOTIFY.Checked
|
||||||
|
.AutomationScript.Value = TXT_SCHEDULER_SCRIPT.Text
|
||||||
|
.AutomationScript.Use = TXT_SCHEDULER_SCRIPT.Checked
|
||||||
|
.AutomationScript_ExcludeManual.Value = CH_SCHEDULER_SCRIPT_EX_MANUAL.Checked
|
||||||
'Notifications
|
'Notifications
|
||||||
.NotificationsSilentMode = CH_NOTIFY_SILENT.Checked
|
.NotificationsSilentMode = CH_NOTIFY_SILENT.Checked
|
||||||
.ShowNotifications.Value = CH_NOTIFY_SHOW_BASE.Checked
|
.ShowNotifications.Value = CH_NOTIFY_SHOW_BASE.Checked
|
||||||
@@ -373,6 +382,9 @@ Namespace Editors
|
|||||||
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
|
.FeedShowFriendlyNames.Value = CH_FEED_SHOW_FRIENDLY.Checked
|
||||||
.FeedShowSpecialFeedsMediaItem.Value = CH_FEED_SHOW_SPEC_MEDIAITEM.Checked
|
.FeedShowSpecialFeedsMediaItem.Value = CH_FEED_SHOW_SPEC_MEDIAITEM.Checked
|
||||||
.FeedMoveCopyUpdateFileLocationOnMove.Value = CH_FEED_UP_FILE_LOC_MOVE.Checked
|
.FeedMoveCopyUpdateFileLocationOnMove.Value = CH_FEED_UP_FILE_LOC_MOVE.Checked
|
||||||
|
.FeedEscToClose.Value = CH_FEED_ESC_TO_CLOSE.Checked
|
||||||
|
.FeedSpecialSearchForMissing.Value = CH_FEED_SPEC_SEARCH.Checked
|
||||||
|
.FeedSpecialSearchForMissing_Deep.Value = CH_FEED_SPEC_SEARCH_DEEP.Checked
|
||||||
FeedParametersChanged = { .FeedDataRows, .FeedDataColumns, .FeedEndless, .FeedBackColor,
|
FeedParametersChanged = { .FeedDataRows, .FeedDataColumns, .FeedEndless, .FeedBackColor,
|
||||||
.FeedForeColor, .FeedCenterImage}.Cast(Of IXMLValue).Any(detector)
|
.FeedForeColor, .FeedCenterImage}.Cast(Of IXMLValue).Any(detector)
|
||||||
|
|
||||||
|
|||||||
@@ -22,22 +22,10 @@ Friend Class LabelsKeeper : Implements ICollection(Of String), IMyEnumerator(Of
|
|||||||
Return NewLabels.Count > 0
|
Return NewLabels.Count > 0
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
'URGENT: remove these properties (2024.03)
|
Friend Sub New()
|
||||||
<Obsolete> Friend ReadOnly Property Current As XMLValuesCollection(Of String)
|
|
||||||
<Obsolete> Friend ReadOnly Property Excluded As XMLValuesCollection(Of String)
|
|
||||||
<Obsolete> Friend ReadOnly Property ExcludedIgnore As XMLValue(Of Boolean)
|
|
||||||
Friend Sub New(ByRef x As XmlFile)
|
|
||||||
LabelsList = New List(Of String)
|
LabelsList = New List(Of String)
|
||||||
NewLabels = New List(Of String)
|
NewLabels = New List(Of String)
|
||||||
If LabelsFile.Exists Then LabelsList.ListAddList(IO.File.ReadAllLines(LabelsFile), LAP.NotContainsOnly)
|
If LabelsFile.Exists Then LabelsList.ListAddList(IO.File.ReadAllLines(LabelsFile), LAP.NotContainsOnly)
|
||||||
#Disable Warning BC40008
|
|
||||||
Current = New XMLValuesCollection(Of String)(IXMLValuesCollection.Modes.String, "LatestSelectedLabels",, x) With {.ListAddParameters = LAP.NotContainsOnly}
|
|
||||||
Excluded = New XMLValuesCollection(Of String)(IXMLValuesCollection.Modes.String, "LatestExcludedLabels",, x) With {.ListAddParameters = LAP.NotContainsOnly}
|
|
||||||
ExcludedIgnore = New XMLValue(Of Boolean)("LatestExcludedLabelsIgnore", False, x)
|
|
||||||
Dim lp As New ListAddParams(LAP.NotContainsOnly + LAP.IgnoreICopier)
|
|
||||||
If Current.Count > 0 Then LabelsList.ListAddList(Current, lp)
|
|
||||||
If Excluded.Count > 0 Then LabelsList.ListAddList(Excluded, lp)
|
|
||||||
#Enable Warning
|
|
||||||
End Sub
|
End Sub
|
||||||
Friend ReadOnly Property ToList As List(Of String)
|
Friend ReadOnly Property ToList As List(Of String)
|
||||||
Get
|
Get
|
||||||
@@ -112,9 +100,7 @@ Friend Class LabelsKeeper : Implements ICollection(Of String), IMyEnumerator(Of
|
|||||||
Private disposedValue As Boolean = False
|
Private disposedValue As Boolean = False
|
||||||
Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
|
Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
|
||||||
If Not disposedValue Then
|
If Not disposedValue Then
|
||||||
#Disable Warning BC40008
|
If disposing Then Clear()
|
||||||
If disposing Then Clear() : Current.Dispose() : Excluded.Dispose()
|
|
||||||
#Enable Warning
|
|
||||||
disposedValue = True
|
disposedValue = True
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|||||||
2
SCrawler/MainFrame.Designer.vb
generated
@@ -353,7 +353,7 @@ Partial Public Class MainFrame : Inherits System.Windows.Forms.Form
|
|||||||
Me.BTT_FEED.Name = "BTT_FEED"
|
Me.BTT_FEED.Name = "BTT_FEED"
|
||||||
Me.BTT_FEED.Size = New System.Drawing.Size(52, 22)
|
Me.BTT_FEED.Size = New System.Drawing.Size(52, 22)
|
||||||
Me.BTT_FEED.Text = "Feed"
|
Me.BTT_FEED.Text = "Feed"
|
||||||
Me.BTT_FEED.ToolTipText = "Feed of recently downloaded data"
|
Me.BTT_FEED.ToolTipText = "Feed of recently downloaded data (Ctrl+F)"
|
||||||
'
|
'
|
||||||
'BTT_CHANNELS
|
'BTT_CHANNELS
|
||||||
'
|
'
|
||||||
|
|||||||
@@ -242,11 +242,13 @@ CloseResume:
|
|||||||
If Not b Then
|
If Not b Then
|
||||||
b = True
|
b = True
|
||||||
If e.Control And e.KeyCode = Keys.F Then
|
If e.Control And e.KeyCode = Keys.F Then
|
||||||
MySearch.FormShow()
|
BTT_FEED.PerformClick()
|
||||||
ElseIf e.Alt And e.KeyCode = Keys.A Then
|
ElseIf e.Alt And e.KeyCode = Keys.A Then
|
||||||
BTT_DOWN_AUTOMATION.PerformClick()
|
BTT_DOWN_AUTOMATION.PerformClick()
|
||||||
ElseIf e.Alt And e.KeyCode = Keys.P Then
|
ElseIf e.Alt And e.KeyCode = Keys.P Then
|
||||||
BTT_PR_INFO.PerformClick()
|
BTT_PR_INFO.PerformClick()
|
||||||
|
ElseIf e.Alt And e.KeyCode = Keys.F Then
|
||||||
|
MySearch.FormShow()
|
||||||
Else
|
Else
|
||||||
b = False
|
b = False
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ Friend Class MainFrameObjects : Implements INotificator
|
|||||||
AddHandler .TextAdded, AddressOf ProgramLog_TextAdded
|
AddHandler .TextAdded, AddressOf ProgramLog_TextAdded
|
||||||
AddHandler .TextCleared, AddressOf ProgramLog_TextCleared
|
AddHandler .TextCleared, AddressOf ProgramLog_TextCleared
|
||||||
End With
|
End With
|
||||||
|
UpdateLogButton()
|
||||||
End Sub
|
End Sub
|
||||||
#Region "Users"
|
#Region "Users"
|
||||||
Friend Sub FocusUser(ByVal Key As String, Optional ByVal ActivateForm As Boolean = False)
|
Friend Sub FocusUser(ByVal Key As String, Optional ByVal ActivateForm As Boolean = False)
|
||||||
|
|||||||
@@ -83,6 +83,9 @@ Friend Module MainMod
|
|||||||
<Extension> Friend Function ToStringDateDef(ByVal _Date As Date) As String
|
<Extension> Friend Function ToStringDateDef(ByVal _Date As Date) As String
|
||||||
Return ToStringDateDef(_DateN:=_Date)
|
Return ToStringDateDef(_DateN:=_Date)
|
||||||
End Function
|
End Function
|
||||||
|
<Extension> Friend Function ToDateDef(ByVal DateStr As String, Optional ByVal NothingArg As Object = Nothing) As Object
|
||||||
|
Return AConvert(Of Date)(DateStr, DateTimeDefaultProvider, NothingArg)
|
||||||
|
End Function
|
||||||
Friend ReadOnly SessionDateTimeProvider As New ADateTime("yyyyMMdd_HHmmss")
|
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 LogConnector As New LogHost
|
Friend ReadOnly LogConnector As New LogHost
|
||||||
|
|||||||
@@ -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("2024.6.10.0")>
|
<Assembly: AssemblyVersion("2024.8.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2024.6.10.0")>
|
<Assembly: AssemblyFileVersion("2024.8.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -94,14 +94,14 @@ Namespace Plugin.Hosts
|
|||||||
HostsUnavailableIndexes = New List(Of Integer)
|
HostsUnavailableIndexes = New List(Of Integer)
|
||||||
Dim defInstance As ISiteSettings = CreateInstance()
|
Dim defInstance As ISiteSettings = CreateInstance()
|
||||||
HostsXml = New List(Of XmlFile) From {
|
HostsXml = New List(Of XmlFile) From {
|
||||||
GetNewXmlFile($"{SettingsFolderName}\{SiteSettingsBase.ResponserFilePrefix}{defInstance.Site}_Settings.xml", defInstance.Site, _XML)
|
GetNewXmlFile($"{SettingsFolderName}\{SiteSettingsBase.ResponserFilePrefix}{defInstance.Site}_Settings.xml")
|
||||||
}
|
}
|
||||||
Hosts = New List(Of SettingsHost) From {New SettingsHost(defInstance, True, HostsXml(0), GlobalPath, _Temp, _Imgs, _Vids)}
|
Hosts = New List(Of SettingsHost) From {New SettingsHost(defInstance, True, HostsXml(0), GlobalPath, _Temp, _Imgs, _Vids)}
|
||||||
|
|
||||||
Dim hostFiles As List(Of SFile) = SFile.GetFiles(SettingsFolderName.CSFileP, $"{String.Format(FileNamePattern, Key, Name)}*.xml",, EDP.ReturnValue)
|
Dim hostFiles As List(Of SFile) = SFile.GetFiles(SettingsFolderName.CSFileP, $"{String.Format(FileNamePattern, Key, Name)}*.xml",, EDP.ReturnValue)
|
||||||
If hostFiles.ListExists Then
|
If hostFiles.ListExists Then
|
||||||
For Each f As SFile In hostFiles
|
For Each f As SFile In hostFiles
|
||||||
HostsXml.Add(GetNewXmlFile(f, [Default].Name))
|
HostsXml.Add(GetNewXmlFile(f))
|
||||||
Hosts.Add(New SettingsHost(CreateInstance(HostsXml.Last.Value(SettingsHost.NameXML_AccountName)), False, HostsXml.Last,
|
Hosts.Add(New SettingsHost(CreateInstance(HostsXml.Last.Value(SettingsHost.NameXML_AccountName)), False, HostsXml.Last,
|
||||||
GlobalPath, _Temp, _Imgs, _Vids))
|
GlobalPath, _Temp, _Imgs, _Vids))
|
||||||
Next
|
Next
|
||||||
@@ -109,30 +109,10 @@ Namespace Plugin.Hosts
|
|||||||
Hosts.ListReindex
|
Hosts.ListReindex
|
||||||
Hosts.ForEach(Sub(h) SetHostHandlers(h))
|
Hosts.ForEach(Sub(h) SetHostHandlers(h))
|
||||||
End Sub
|
End Sub
|
||||||
Private Function GetNewXmlFile(ByVal f As SFile, ByVal SiteName As String, Optional ByVal SourceXml As XmlFile = Nothing) As XmlFile
|
Private Function GetNewXmlFile(ByVal f As SFile) As XmlFile
|
||||||
Dim x As New XmlFile(f,, False) With {.AutoUpdateFile = True}
|
Dim x As New XmlFile(f,, False) With {.AutoUpdateFile = True}
|
||||||
If Not f.Exists Then x.Name = "SiteSettings"
|
If Not f.Exists Then x.Name = "SiteSettings"
|
||||||
x.LoadData()
|
x.LoadData()
|
||||||
'URGENT: reorganization of settings: remove the following code
|
|
||||||
Dim n$() = {SettingsCLS.Name_Node_Sites, SiteName}
|
|
||||||
Dim processed As Boolean = False
|
|
||||||
With If(SourceXml, x)
|
|
||||||
If .Count > 0 AndAlso .Contains(n) Then
|
|
||||||
With .Item(n)
|
|
||||||
If .ListExists Then
|
|
||||||
For Each container As EContainer In .Self : x.Add(container.Name, container.Value) : Next
|
|
||||||
processed = True
|
|
||||||
End If
|
|
||||||
End With
|
|
||||||
If processed Then
|
|
||||||
.Remove(n)
|
|
||||||
If SourceXml Is Nothing Then .Remove(SettingsCLS.Name_Node_Sites)
|
|
||||||
x.Name = "SiteSettings"
|
|
||||||
x.UpdateData()
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
End With
|
|
||||||
'-----END REMOVE-----
|
|
||||||
Return x
|
Return x
|
||||||
End Function
|
End Function
|
||||||
#End Region
|
#End Region
|
||||||
@@ -178,7 +158,7 @@ Namespace Plugin.Hosts
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub Hosts_OkClick(ByVal Obj As SettingsHost)
|
Private Sub Hosts_OkClick(ByVal Obj As SettingsHost)
|
||||||
If Obj.Index = -1 Then
|
If Obj.Index = -1 Then
|
||||||
HostsXml.Add(GetNewXmlFile($"{SettingsFolderName}\{String.Format(FileNamePatternFull, Key, Name, Obj.AccountName)}.xml", Name))
|
HostsXml.Add(GetNewXmlFile($"{SettingsFolderName}\{String.Format(FileNamePatternFull, Key, Name, Obj.AccountName)}.xml"))
|
||||||
With Settings : Hosts.Add(Obj.Apply(HostsXml.Last, .GlobalPath,
|
With Settings : Hosts.Add(Obj.Apply(HostsXml.Last, .GlobalPath,
|
||||||
.DefaultTemporary, .DefaultDownloadImages, .DefaultDownloadVideos)) : End With
|
.DefaultTemporary, .DefaultDownloadImages, .DefaultDownloadVideos)) : End With
|
||||||
HostsXml.Last.UpdateData()
|
HostsXml.Last.UpdateData()
|
||||||
|
|||||||
@@ -208,11 +208,18 @@
|
|||||||
<Compile Include="API\Mastodon\SiteSettings.vb" />
|
<Compile Include="API\Mastodon\SiteSettings.vb" />
|
||||||
<Compile Include="API\Mastodon\UserData.vb" />
|
<Compile Include="API\Mastodon\UserData.vb" />
|
||||||
<Compile Include="API\OnlyFans\Declarations.vb" />
|
<Compile Include="API\OnlyFans\Declarations.vb" />
|
||||||
|
<Compile Include="API\OnlyFans\DynamicRulesEnv.vb" />
|
||||||
<Compile Include="API\OnlyFans\OFResources.Designer.vb">
|
<Compile Include="API\OnlyFans\OFResources.Designer.vb">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
<DependentUpon>OFResources.resx</DependentUpon>
|
<DependentUpon>OFResources.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="API\OnlyFans\OnlyFansAdvancedSettingsForm.Designer.vb">
|
||||||
|
<DependentUpon>OnlyFansAdvancedSettingsForm.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="API\OnlyFans\OnlyFansAdvancedSettingsForm.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="API\OnlyFans\SiteSettings.vb" />
|
<Compile Include="API\OnlyFans\SiteSettings.vb" />
|
||||||
<Compile Include="API\OnlyFans\UserData.vb" />
|
<Compile Include="API\OnlyFans\UserData.vb" />
|
||||||
<Compile Include="API\OnlyFans\UserExchangeOptions.vb" />
|
<Compile Include="API\OnlyFans\UserExchangeOptions.vb" />
|
||||||
@@ -542,6 +549,9 @@
|
|||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>OFResources.Designer.vb</LastGenOutput>
|
<LastGenOutput>OFResources.Designer.vb</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="API\OnlyFans\OnlyFansAdvancedSettingsForm.resx">
|
||||||
|
<DependentUpon>OnlyFansAdvancedSettingsForm.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="API\Reddit\RedditViewSettingsForm.resx">
|
<EmbeddedResource Include="API\Reddit\RedditViewSettingsForm.resx">
|
||||||
<DependentUpon>RedditViewSettingsForm.vb</DependentUpon>
|
<DependentUpon>RedditViewSettingsForm.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -784,6 +794,9 @@
|
|||||||
<None Include="Content\Pictures\SitePictures\FacebookPic_37.png" />
|
<None Include="Content\Pictures\SitePictures\FacebookPic_37.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Content Include="API\OnlyFans\DynamicRules.txt" />
|
||||||
|
<Content Include="API\OnlyFans\DynamicRulesAll.txt" />
|
||||||
|
<Content Include="API\OnlyFans\OFScraperConfigPatternConstants.txt" />
|
||||||
<Content Include="Content\Pictures\CutPic_48.png" />
|
<Content Include="Content\Pictures\CutPic_48.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
|
|||||||
@@ -179,8 +179,12 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Friend ReadOnly Property LastCollections As List(Of String)
|
Friend ReadOnly Property LastCollections As List(Of String)
|
||||||
Friend ReadOnly Property DownloadLocations As STDownloader.DownloadLocationsCollection
|
Friend ReadOnly Property DownloadLocations As STDownloader.DownloadLocationsCollection
|
||||||
Friend ReadOnly Property GlobalLocations As STDownloader.DownloadLocationsCollection
|
Friend ReadOnly Property GlobalLocations As STDownloader.DownloadLocationsCollection
|
||||||
|
#Region "Scheduler"
|
||||||
Friend Property Automation As Scheduler
|
Friend Property Automation As Scheduler
|
||||||
Friend ReadOnly Property AutomationFile As XMLValue(Of String)
|
Friend ReadOnly Property AutomationFile As XMLValue(Of String)
|
||||||
|
Friend ReadOnly Property AutomationScript As XMLValueUse(Of String)
|
||||||
|
Friend ReadOnly Property AutomationScript_ExcludeManual As XMLValue(Of Boolean)
|
||||||
|
#End Region
|
||||||
Friend ReadOnly Property Feeds As FeedSpecialCollection
|
Friend ReadOnly Property Feeds As FeedSpecialCollection
|
||||||
Friend ReadOnly Property BlackList As List(Of UserBan)
|
Friend ReadOnly Property BlackList As List(Of UserBan)
|
||||||
Friend ReadOnly Property Colors As Editors.DataColorCollection
|
Friend ReadOnly Property Colors As Editors.DataColorCollection
|
||||||
@@ -188,6 +192,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Private ReadOnly BlackListFile As SFile = $"{SettingsFolderName}\BlackList.txt"
|
Private ReadOnly BlackListFile As SFile = $"{SettingsFolderName}\BlackList.txt"
|
||||||
Private ReadOnly UsersSettingsFile As SFile = $"{SettingsFolderName}\Users.xml"
|
Private ReadOnly UsersSettingsFile As SFile = $"{SettingsFolderName}\Users.xml"
|
||||||
Private ReadOnly Property SettingsVersion As XMLValue(Of Integer)
|
Private ReadOnly Property SettingsVersion As XMLValue(Of Integer)
|
||||||
|
Private Const SettingsVersionCurrent As Integer = 1
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Initializer"
|
#Region "Initializer"
|
||||||
Friend Sub New()
|
Friend Sub New()
|
||||||
@@ -210,19 +215,16 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Colors = New Editors.DataColorCollection
|
Colors = New Editors.DataColorCollection
|
||||||
EnvironmentProgramsList = New List(Of String)
|
EnvironmentProgramsList = New List(Of String)
|
||||||
|
|
||||||
AutomationFile = New XMLValue(Of String)("AutomationFile",, MyXML)
|
|
||||||
SiteSettingsShowHiddenControls = MyXML.Value("SiteSettingsShowHiddenControls").FromXML(Of Boolean)(False)
|
|
||||||
|
|
||||||
Dim n() As String
|
|
||||||
Dim n_old() As String 'URGENT: remove this line
|
|
||||||
Dim rn As Boolean = Not MyXML.File.Exists
|
|
||||||
SettingsReoranized = New XMLValue(Of Boolean)("SettingsReoranized", rn, MyXML) 'URGENT: remove this line
|
|
||||||
SettingsReoranized2 = New XMLValue(Of Boolean)("SettingsReoranized2", rn, MyXML) 'URGENT: remove this line
|
|
||||||
Dim forceSaveXML As Boolean = Not SettingsReoranized 'URGENT: remove this line
|
|
||||||
Dim forceSaveXML2 As Boolean = Not SettingsReoranized OrElse Not SettingsReoranized2 'URGENT: remove this line
|
|
||||||
|
|
||||||
SettingsVersion = New XMLValue(Of Integer)("SettingsVersion", 0, MyXML)
|
SettingsVersion = New XMLValue(Of Integer)("SettingsVersion", 0, MyXML)
|
||||||
|
|
||||||
|
Dim n() As String = {"Scheduler"}
|
||||||
|
AutomationFile = New XMLValue(Of String)("File",, MyXML, n)
|
||||||
|
If SettingsVersion.Value = 0 AndAlso MyXML.Contains(AutomationFile.Name) Then AutomationFile.Value = MyXML.Value(AutomationFile.Name)
|
||||||
|
AutomationScript = New XMLValueUse(Of String)("Script", String.Empty,, MyXML, n)
|
||||||
|
AutomationScript_ExcludeManual = New XMLValue(Of Boolean)("ScriptExcludeManual", True, MyXML, n)
|
||||||
|
|
||||||
|
SiteSettingsShowHiddenControls = MyXML.Value("SiteSettingsShowHiddenControls").FromXML(Of Boolean)(False)
|
||||||
|
|
||||||
#Region "Properties: environment"
|
#Region "Properties: environment"
|
||||||
'Environment
|
'Environment
|
||||||
n = {"MediaEnvironment"}
|
n = {"MediaEnvironment"}
|
||||||
@@ -251,7 +253,6 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
CollectionsPath = New XMLValue(Of String)("CollectionsPath", CollectionsFolderName, MyXML, n)
|
CollectionsPath = New XMLValue(Of String)("CollectionsPath", CollectionsFolderName, MyXML, n)
|
||||||
MaxUsersJobsCount = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, n)
|
MaxUsersJobsCount = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, n)
|
||||||
UserAgent = New XMLValue(Of String)("UserAgent",, MyXML, n)
|
UserAgent = New XMLValue(Of String)("UserAgent",, MyXML, n)
|
||||||
If Not SettingsReoranized Then UserAgent.Value = New XMLValue(Of String)("UserAgent",, MyXML).Value 'URGENT: remove this line
|
|
||||||
ImgurClientID = New XMLValue(Of String)("ImgurClientID", String.Empty, MyXML, {Name_Node_Sites})
|
ImgurClientID = New XMLValue(Of String)("ImgurClientID", String.Empty, MyXML, {Name_Node_Sites})
|
||||||
|
|
||||||
'Basis: new version
|
'Basis: new version
|
||||||
@@ -294,13 +295,6 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
DownloadOpenInfo = New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenInfo", "OpenAgain", False, False, MyXML, n)
|
DownloadOpenInfo = New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenInfo", "OpenAgain", False, False, MyXML, n)
|
||||||
DownloadOpenProgress = New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenProgress", "OpenAgain", False, False, MyXML, n)
|
DownloadOpenProgress = New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenProgress", "OpenAgain", False, False, MyXML, n)
|
||||||
ClosingCommand = New XMLValueAttribute(Of String, Boolean)("ClosingCommand", "Use",,, MyXML, n)
|
ClosingCommand = New XMLValueAttribute(Of String, Boolean)("ClosingCommand", "Use",,, MyXML, n)
|
||||||
'URGENT: remove these lines
|
|
||||||
If Not SettingsReoranized Then
|
|
||||||
With New XMLValueAttribute(Of String, Boolean)("ClosingCommand", "Use",,, MyXML)
|
|
||||||
ClosingCommand.Value = .Value
|
|
||||||
ClosingCommand.AttributeValue = .AttributeValue
|
|
||||||
End With
|
|
||||||
End If
|
|
||||||
AddHandler ClosingCommand.ValueChanged, Sub(s, ev) MainFrameObj?.ChangeCloseVisible()
|
AddHandler ClosingCommand.ValueChanged, Sub(s, ev) MainFrameObj?.ChangeCloseVisible()
|
||||||
DownloadAll_UseF6 = New XMLValue(Of Boolean)("DownloadAll_UseF6", True, MyXML, n)
|
DownloadAll_UseF6 = New XMLValue(Of Boolean)("DownloadAll_UseF6", True, MyXML, n)
|
||||||
DownloadAll_UseF6_Confirm = New XMLValue(Of Boolean)("DownloadAll_UseF6_Confirm", False, MyXML, n)
|
DownloadAll_UseF6_Confirm = New XMLValue(Of Boolean)("DownloadAll_UseF6_Confirm", False, MyXML, n)
|
||||||
@@ -359,19 +353,14 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
AutomationBrushUndownloadedPlansMinutes = New XMLValue(Of Integer)("AutomationBrushUndownloadedPlansMinutes", 10080, MyXML, n)
|
AutomationBrushUndownloadedPlansMinutes = New XMLValue(Of Integer)("AutomationBrushUndownloadedPlansMinutes", 10080, MyXML, n)
|
||||||
|
|
||||||
'Downloading: file naming
|
'Downloading: file naming
|
||||||
n_old = {"Users", "FileName"}
|
|
||||||
n = {"Downloading", "FileName"}
|
n = {"Downloading", "FileName"}
|
||||||
FileAddDateToFileName = New XMLValue(Of Boolean)("FileAddDateToFileName", False, MyXML, n)
|
FileAddDateToFileName = New XMLValue(Of Boolean)("FileAddDateToFileName", False, MyXML, n)
|
||||||
If Not SettingsReoranized Then FileAddDateToFileName.Value = New XMLValue(Of Boolean)("FileAddDateToFileName", False, MyXML, n_old).Value 'URGENT: remove this line
|
|
||||||
AddHandler FileAddDateToFileName.ValueChanged, AddressOf ChangeDateProvider
|
AddHandler FileAddDateToFileName.ValueChanged, AddressOf ChangeDateProvider
|
||||||
FileAddTimeToFileName = New XMLValue(Of Boolean)("FileAddTimeToFileName", False, MyXML, n)
|
FileAddTimeToFileName = New XMLValue(Of Boolean)("FileAddTimeToFileName", False, MyXML, n)
|
||||||
If Not SettingsReoranized Then FileAddTimeToFileName.Value = New XMLValue(Of Boolean)("FileAddTimeToFileName", False, MyXML, n_old).Value 'URGENT: remove this line
|
|
||||||
AddHandler FileAddTimeToFileName.ValueChanged, AddressOf ChangeDateProvider
|
AddHandler FileAddTimeToFileName.ValueChanged, AddressOf ChangeDateProvider
|
||||||
FileDateTimePositionEnd = New XMLValue(Of Boolean)("FileDateTimePositionEnd", True, MyXML, n)
|
FileDateTimePositionEnd = New XMLValue(Of Boolean)("FileDateTimePositionEnd", True, MyXML, n)
|
||||||
If Not SettingsReoranized Then FileDateTimePositionEnd.Value = New XMLValue(Of Boolean)("FileDateTimePositionEnd", True, MyXML, n_old).Value 'URGENT: remove this line
|
|
||||||
AddHandler FileDateTimePositionEnd.ValueChanged, AddressOf ChangeDateProvider
|
AddHandler FileDateTimePositionEnd.ValueChanged, AddressOf ChangeDateProvider
|
||||||
FileReplaceNameByDate = New XMLValue(Of Integer)("FileReplaceNameByDate", FileNameReplaceMode.None, MyXML, n)
|
FileReplaceNameByDate = New XMLValue(Of Integer)("FileReplaceNameByDate", FileNameReplaceMode.None, MyXML, n)
|
||||||
If Not SettingsReoranized Then FileReplaceNameByDate.Value = New XMLValue(Of Integer)("FileReplaceNameByDate", FileNameReplaceMode.None, MyXML, n_old).Value 'URGENT: remove this line
|
|
||||||
|
|
||||||
'Downloading: script
|
'Downloading: script
|
||||||
n = {"Downloading", "Script"}
|
n = {"Downloading", "Script"}
|
||||||
@@ -412,6 +401,9 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
FeedLastModeSubscriptions = New XMLValue(Of Boolean)("LastModeSubscriptions", False, MyXML, n)
|
FeedLastModeSubscriptions = New XMLValue(Of Boolean)("LastModeSubscriptions", False, MyXML, n)
|
||||||
FeedShowFriendlyNames = New XMLValue(Of Boolean)("ShowFriendlyNames", True, MyXML, n)
|
FeedShowFriendlyNames = New XMLValue(Of Boolean)("ShowFriendlyNames", True, MyXML, n)
|
||||||
FeedShowSpecialFeedsMediaItem = New XMLValue(Of Boolean)("ShowSpecialFeedsMediaItem", False, MyXML, n)
|
FeedShowSpecialFeedsMediaItem = New XMLValue(Of Boolean)("ShowSpecialFeedsMediaItem", False, MyXML, n)
|
||||||
|
FeedEscToClose = New XMLValue(Of Boolean)("EscToClose", True, MyXML, n)
|
||||||
|
FeedSpecialSearchForMissing = New XMLValue(Of Boolean)("FeedSpecialSearchForMissing", True, MyXML, n)
|
||||||
|
FeedSpecialSearchForMissing_Deep = New XMLValue(Of Boolean)("FeedSpecialSearchForMissing_Deep", False, MyXML, n)
|
||||||
n = {"Feed", "MoveCopy"}
|
n = {"Feed", "MoveCopy"}
|
||||||
FeedMoveCopyLastLocation = New XMLValue(Of SFile)("LastLocation",, MyXML, n)
|
FeedMoveCopyLastLocation = New XMLValue(Of SFile)("LastLocation",, MyXML, n)
|
||||||
FeedMoveCopyUpdateFileLocationOnMove = New XMLValue(Of Boolean)("UpdateFileLocationOnMove", True, MyXML, n)
|
FeedMoveCopyUpdateFileLocationOnMove = New XMLValue(Of Boolean)("UpdateFileLocationOnMove", True, MyXML, n)
|
||||||
@@ -451,7 +443,6 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
LatestSavingPath = New XMLValue(Of SFile)("LatestSavingPath", Nothing, MyXML, n, New XMLToFilePathProvider)
|
LatestSavingPath = New XMLValue(Of SFile)("LatestSavingPath", Nothing, MyXML, n, New XMLToFilePathProvider)
|
||||||
LatestSelectedChannel = New XMLValue(Of String)("LatestSelectedChannel",, MyXML, n)
|
LatestSelectedChannel = New XMLValue(Of String)("LatestSelectedChannel",, MyXML, n)
|
||||||
#End Region
|
#End Region
|
||||||
ReorganizeSettingsFile()
|
|
||||||
#Region "Loading plugins"
|
#Region "Loading plugins"
|
||||||
Plugins.AddRange(PluginHost.GetMyHosts(MyXML, GlobalPath.Value, DefaultTemporary, DefaultDownloadImages, DefaultDownloadVideos))
|
Plugins.AddRange(PluginHost.GetMyHosts(MyXML, GlobalPath.Value, DefaultTemporary, DefaultDownloadImages, DefaultDownloadVideos))
|
||||||
Dim tmpPluginList As IEnumerable(Of PluginHost) = PluginHost.GetPluginsHosts(MyXML, GlobalPath.Value, DefaultTemporary,
|
Dim tmpPluginList As IEnumerable(Of PluginHost) = PluginHost.GetPluginsHosts(MyXML, GlobalPath.Value, DefaultTemporary,
|
||||||
@@ -475,7 +466,7 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
UpdatePluginsUserAgent(False)
|
UpdatePluginsUserAgent(False)
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
Labels = New LabelsKeeper(MyXML)
|
Labels = New LabelsKeeper
|
||||||
Groups = New Groups.DownloadGroupCollection
|
Groups = New Groups.DownloadGroupCollection
|
||||||
Labels.AddRange(Groups.GetGroupsLabels, False)
|
Labels.AddRange(Groups.GetGroupsLabels, False)
|
||||||
AdvancedFilter = New Groups.DownloadGroup(False) With {.IsViewFilter = True}
|
AdvancedFilter = New Groups.DownloadGroup(False) With {.IsViewFilter = True}
|
||||||
@@ -483,61 +474,10 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
AdvancedFilter.IsViewFilter = True
|
AdvancedFilter.IsViewFilter = True
|
||||||
Labels.AddRange({AdvancedFilter}.GetGroupsLabels, False)
|
Labels.AddRange({AdvancedFilter}.GetGroupsLabels, False)
|
||||||
|
|
||||||
'URGENT: remove this code (2024.03)
|
SettingsVersion.Value = SettingsVersionCurrent
|
||||||
#Region "To delete"
|
|
||||||
'delete this property:
|
|
||||||
ViewReorganized = New XMLValue(Of Boolean)("ViewReorganized", rn, MyXML)
|
|
||||||
If Not ViewReorganized.Value Then
|
|
||||||
ViewReorganized.Value = True
|
|
||||||
Dim oldShowMode% = MyXML.Value("ShowingMode").FromXML(Of Integer)(0)
|
|
||||||
Dim MainFrameUsersShowDefaults As Boolean = MyXML.Value("UsersShowDefaults").FromXML(Of Boolean)(True)
|
|
||||||
Dim MainFrameUsersShowSubscriptions As Boolean = MyXML.Value("UsersShowSubscriptions").FromXML(Of Boolean)(True)
|
|
||||||
ShowAllUsers.Value = oldShowMode = 0 And MainFrameUsersShowDefaults And MainFrameUsersShowSubscriptions
|
|
||||||
Dim ViewDateMode As New XMLValue(Of Integer)("ViewDateMode", ShowingDates.Off, MyXML)
|
|
||||||
Dim SelectedSites As New XMLValuesCollection(Of String)(IXMLValuesCollection.Modes.String, "SelectedSites",, MyXML, {Name_Node_Sites})
|
|
||||||
If Not ShowAllUsers Or SelectedSites.Count > 0 Or Not ViewDateMode.Value = ShowingDates.Off Then
|
|
||||||
ShowAllUsers.Value = False
|
|
||||||
With AdvancedFilter
|
|
||||||
.DownloadUsers = MainFrameUsersShowDefaults
|
|
||||||
.DownloadSubscriptions = MainFrameUsersShowSubscriptions
|
|
||||||
If SelectedSites.Count > 0 Then .Sites.AddRange(SelectedSites)
|
|
||||||
#Disable Warning BC40008
|
|
||||||
Select Case oldShowMode
|
|
||||||
Case 20 : .Regular = True : .Temporary = False : .Favorite = False
|
|
||||||
Case 50 : .Regular = False : .Temporary = True : .Favorite = False
|
|
||||||
Case 100 : .Regular = False : .Temporary = False : .Favorite = True
|
|
||||||
Case 500 : If Labels.Current.Count > 0 Then .Labels.Clear() : .Labels.AddRange(Labels.Current)
|
|
||||||
Case 1000 : .LabelsNo = True
|
|
||||||
Case 10000 : .UserExists = False : .UserDeleted = True : .UserSuspended = False
|
|
||||||
Case 12000 : .UserExists = False : .UserDeleted = False : .UserSuspended = True
|
|
||||||
End Select
|
|
||||||
If Labels.Excluded.Count > 0 Then .LabelsExcluded.AddRange(Labels.Excluded)
|
|
||||||
.LabelsExcludedIgnore = Labels.ExcludedIgnore
|
|
||||||
#Enable Warning
|
|
||||||
|
|
||||||
Dim _ViewDateFrom As New XMLValue(Of Date)
|
|
||||||
_ViewDateFrom.SetExtended("ViewDateFrom",, MyXML)
|
|
||||||
Dim _ViewDateTo As New XMLValue(Of Date)
|
|
||||||
_ViewDateTo.SetExtended("ViewDateTo",, MyXML)
|
|
||||||
|
|
||||||
If Not ViewDateMode.Value = ShowingDates.Off Then
|
|
||||||
.DateMode = ViewDateMode
|
|
||||||
If _ViewDateFrom.Exists Then .DateFrom = _ViewDateFrom.Value Else .DateFrom = Nothing
|
|
||||||
If _ViewDateTo.Exists Then .DateTo = _ViewDateTo.Value Else .DateTo = Nothing
|
|
||||||
End If
|
|
||||||
_ViewDateFrom.Dispose()
|
|
||||||
_ViewDateTo.Dispose()
|
|
||||||
.UpdateFile()
|
|
||||||
End With
|
|
||||||
End If
|
|
||||||
ViewDateMode.Dispose()
|
|
||||||
SelectedSites.Dispose()
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
If Not forceSaveXML And forceSaveXML2 Then SettingsReoranized2.Value = True
|
|
||||||
MyXML.EndUpdate()
|
MyXML.EndUpdate()
|
||||||
If MyXML.ChangesDetected Or forceSaveXML Or forceSaveXML2 Then MyXML.Sort() : MyXML.UpdateData()
|
If MyXML.ChangesDetected Then MyXML.Sort() : MyXML.UpdateData()
|
||||||
|
|
||||||
If BlackListFile.Exists Then
|
If BlackListFile.Exists Then
|
||||||
BlackList.ListAddList(IO.File.ReadAllLines(BlackListFile), LAP.NotContainsOnly)
|
BlackList.ListAddList(IO.File.ReadAllLines(BlackListFile), LAP.NotContainsOnly)
|
||||||
@@ -546,107 +486,6 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
_UpdatesSuspended = False
|
_UpdatesSuspended = False
|
||||||
ChangeDateProvider(Nothing, Nothing)
|
ChangeDateProvider(Nothing, Nothing)
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
|
||||||
'URGENT: remove 'Reorganize' code (2024.03)
|
|
||||||
#Region "Reorganize"
|
|
||||||
Private Property SettingsReoranized As XMLValue(Of Boolean)
|
|
||||||
Private Property SettingsReoranized2 As XMLValue(Of Boolean)
|
|
||||||
Private Sub ReorganizeSettingsFile()
|
|
||||||
If Not SettingsReoranized Then
|
|
||||||
SettingsReoranized.Value = True
|
|
||||||
|
|
||||||
Dim n$()
|
|
||||||
|
|
||||||
GlobalPath.Value = New XMLValue(Of SFile)("GlobalPath", "Data\".CSFileP, MyXML,, New XMLToFilePathProvider).Value
|
|
||||||
MaxLargeImageHeight.Value = New XMLValue(Of Integer)("MaxLargeImageHeight", 150, MyXML).Value
|
|
||||||
MaxSmallImageHeight.Value = New XMLValue(Of Integer)("MaxSmallImageHeight", 15, MyXML).Value
|
|
||||||
CollectionsPath.Value = New XMLValue(Of String)("CollectionsPath", CollectionsFolderName, MyXML).Value
|
|
||||||
MaxUsersJobsCount.Value = New XMLValue(Of Integer)("MaxJobsCount", DefaultMaxDownloadingTasks, MyXML, {"Users", "FileName"}).Value
|
|
||||||
|
|
||||||
CheckUpdatesAtStart.Value = New XMLValue(Of Boolean)("CheckUpdatesAtStart", True, MyXML).Value
|
|
||||||
ShowNewVersionNotification.Value = New XMLValue(Of Boolean)("ShowNewVersionNotification", True, MyXML).Value
|
|
||||||
LatestVersion.Value = New XMLValue(Of String)("LatestVersion", String.Empty, MyXML).Value
|
|
||||||
|
|
||||||
ProgramText.Value = New XMLValue(Of String)("ProgramText",, MyXML).Value
|
|
||||||
ProgramDescription.Value = New XMLValue(Of String)("ProgramDescription",, MyXML).Value
|
|
||||||
|
|
||||||
UserListImage.Value = New XMLValue(Of SFile)("UserListImage",, MyXML).Value
|
|
||||||
|
|
||||||
Dim __UserListBackColor As New XMLValue(Of Color)
|
|
||||||
__UserListBackColor.SetExtended("UserListBackColor",, MyXML)
|
|
||||||
UserListBackColor.ValueF = __UserListBackColor.ValueF
|
|
||||||
Dim __UserListForeColor As New XMLValue(Of Color)
|
|
||||||
__UserListForeColor.SetExtended("UserListForeColor",, MyXML)
|
|
||||||
UserListForeColor.ValueF = __UserListForeColor.ValueF
|
|
||||||
|
|
||||||
MainFrameUsersSubscriptionsColorBack.Value = New XMLValue(Of Color)("UsersSubscriptionsColorBack", MyColor.OkBack, MyXML).Value
|
|
||||||
MainFrameUsersSubscriptionsColorFore.Value = New XMLValue(Of Color)("UsersSubscriptionsColorFore", MyColor.OkFore, MyXML).Value
|
|
||||||
Dim __MainFrameUsersSubscriptionsColorBack_USERS As New XMLValue(Of Color)
|
|
||||||
__MainFrameUsersSubscriptionsColorBack_USERS.SetExtended("UsersSubscriptionsColorBack_USERS",, MyXML)
|
|
||||||
MainFrameUsersSubscriptionsColorBack_USERS.ValueF = __MainFrameUsersSubscriptionsColorBack_USERS.ValueF
|
|
||||||
Dim __MainFrameUsersSubscriptionsColorFore_USERS As New XMLValue(Of Color)
|
|
||||||
__MainFrameUsersSubscriptionsColorFore_USERS.SetExtended("UsersSubscriptionsColorFore_USERS",, MyXML)
|
|
||||||
MainFrameUsersSubscriptionsColorFore_USERS.ValueF = __MainFrameUsersSubscriptionsColorFore_USERS.ValueF
|
|
||||||
|
|
||||||
CMDEncoding.Value = New XMLValue(Of Integer)("CMDEncoding", DefaultCmdEncoding, MyXML, {"Defaults"}).Value
|
|
||||||
|
|
||||||
ExitConfirm.Value = New XMLValue(Of Boolean)("ExitConfirm", True, MyXML).Value
|
|
||||||
CloseToTray.Value = New XMLValue(Of Boolean)("CloseToTray", True, MyXML).Value
|
|
||||||
With New XMLValueUse(Of String)("OpenFolderInOtherProgram",,, MyXML)
|
|
||||||
OpenFolderInOtherProgram.Value = .Value
|
|
||||||
OpenFolderInOtherProgram.Use = .Use
|
|
||||||
End With
|
|
||||||
DeleteToRecycleBin.Value = New XMLValue(Of Boolean)("DeleteToRecycleBin", True, MyXML).Value
|
|
||||||
FastProfilesLoading.Value = New XMLValue(Of Boolean)("FastProfilesLoading", True, MyXML).Value
|
|
||||||
With New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenInfo", "OpenAgain", False, False, MyXML)
|
|
||||||
DownloadOpenInfo.Value = .Value
|
|
||||||
DownloadOpenInfo.AttributeValue = .AttributeValue
|
|
||||||
End With
|
|
||||||
With New XMLValueAttribute(Of Boolean, Boolean)("DownloadOpenProgress", "OpenAgain", False, False, MyXML)
|
|
||||||
DownloadOpenProgress.Value = .Value
|
|
||||||
DownloadOpenProgress.AttributeValue = .AttributeValue
|
|
||||||
End With
|
|
||||||
|
|
||||||
SeparateVideoFolder.Value = New XMLValue(Of Boolean)("SeparateVideoFolder", True, MyXML).Value
|
|
||||||
|
|
||||||
AddMissingToLog.Value = New XMLValue(Of Boolean)("AddMissingToLog", True, MyXML).Value
|
|
||||||
AddMissingErrorsToLog.Value = New XMLValue(Of Boolean)("AddMissingErrorsToLog", False, MyXML).Value
|
|
||||||
With New XMLValueAttribute(Of String, Boolean)("DownloadsCompleteCommand", "Use",,, MyXML)
|
|
||||||
DownloadsCompleteCommand.Value = .Value
|
|
||||||
DownloadsCompleteCommand.AttributeValue = .AttributeValue
|
|
||||||
End With
|
|
||||||
|
|
||||||
n = {"Users"}
|
|
||||||
UpdateUserDescriptionEveryTime.Value = New XMLValue(Of Boolean)("UpdateUserDescriptionEveryTime", True, MyXML, n).Value
|
|
||||||
UpdateUserIconBannerEveryTime.Value = New XMLValue(Of Boolean)("UpdateUserIconBannerEveryTime", True, MyXML, n).Value
|
|
||||||
|
|
||||||
n = {"Defaults"}
|
|
||||||
UpdateUserSiteNameEveryTime.Value = New XMLValue(Of Boolean)("UserSiteNameUpdateEveryTime", False, MyXML, n).Value
|
|
||||||
ReparseMissingInTheRoutine.Value = New XMLValue(Of Boolean)("ReparseMissingInTheRoutine", False, MyXML, n).Value
|
|
||||||
UseDefaultAccountIfMissing.Value = New XMLValue(Of Boolean)("UseDefaultAccountIfMissing", True, MyXML, n).Value
|
|
||||||
|
|
||||||
n = {"Users"}
|
|
||||||
FromChannelDownloadTop.Value = New XMLValue(Of Integer)("FromChannelDownloadTop", 10, MyXML, n).Value
|
|
||||||
FromChannelDownloadTopUse.Value = New XMLValue(Of Boolean)("FromChannelDownloadTopUse", False, MyXML, n).Value
|
|
||||||
FromChannelCopyImageToUser.Value = New XMLValue(Of Boolean)("FromChannelCopyImageToUser", True, MyXML, n).Value
|
|
||||||
|
|
||||||
With New XMLValueAttribute(Of String, Boolean)("ScriptData", "Use",,, MyXML, n)
|
|
||||||
ScriptData.Value = .Value
|
|
||||||
ScriptData.AttributeValue = .AttributeValue
|
|
||||||
End With
|
|
||||||
|
|
||||||
ViewMode.Value = New XMLValue(Of Integer)("ViewMode", ViewModes.IconLarge, MyXML).Value
|
|
||||||
GroupUsers.Value = New XMLValue(Of Boolean)("UseGrouping", True, MyXML).Value
|
|
||||||
ShowGroupsInsteadLabels.Value = New XMLValue(Of Boolean)("ShowGroupsInsteadLabels", False, MyXML).Value
|
|
||||||
|
|
||||||
InfoViewMode.Value = New XMLValue(Of Integer)("InfoViewMode", DownloadObjects.DownloadedInfoForm.ViewModes.Session, MyXML).Value
|
|
||||||
InfoViewDefault.Value = New XMLValue(Of Boolean)("InfoViewDefault", True, MyXML).Value
|
|
||||||
|
|
||||||
LatestSavingPath.Value = New XMLValue(Of SFile)("LatestSavingPath", Nothing, MyXML,, New XMLToFilePathProvider).Value
|
|
||||||
LatestSelectedChannel.Value = New XMLValue(Of String)("LatestSelectedChannel",, MyXML).Value
|
|
||||||
LastCopyPath.Value = New XMLValue(Of SFile)("LastCopyPath",, MyXML,, New XMLToFilePathProvider).Value
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Users"
|
#Region "Users"
|
||||||
Friend Sub LoadUsers()
|
Friend Sub LoadUsers()
|
||||||
@@ -1272,6 +1111,9 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
Friend ReadOnly Property FeedLastModeSubscriptions As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedLastModeSubscriptions As XMLValue(Of Boolean)
|
||||||
Friend ReadOnly Property FeedShowFriendlyNames As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedShowFriendlyNames As XMLValue(Of Boolean)
|
||||||
Friend ReadOnly Property FeedShowSpecialFeedsMediaItem As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedShowSpecialFeedsMediaItem As XMLValue(Of Boolean)
|
||||||
|
Friend ReadOnly Property FeedEscToClose As XMLValue(Of Boolean)
|
||||||
|
Friend ReadOnly Property FeedSpecialSearchForMissing As XMLValue(Of Boolean)
|
||||||
|
Friend ReadOnly Property FeedSpecialSearchForMissing_Deep As XMLValue(Of Boolean)
|
||||||
#Region "MoveCopy"
|
#Region "MoveCopy"
|
||||||
Friend ReadOnly Property FeedMoveCopyLastLocation As XMLValue(Of SFile)
|
Friend ReadOnly Property FeedMoveCopyLastLocation As XMLValue(Of SFile)
|
||||||
Friend ReadOnly Property FeedMoveCopyUpdateFileLocationOnMove As XMLValue(Of Boolean)
|
Friend ReadOnly Property FeedMoveCopyUpdateFileLocationOnMove As XMLValue(Of Boolean)
|
||||||
@@ -1292,7 +1134,6 @@ Friend Class SettingsCLS : Implements IDownloaderSettings, IDisposable
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
Friend ReadOnly Property ShowAllUsers As XMLValue(Of Boolean)
|
Friend ReadOnly Property ShowAllUsers As XMLValue(Of Boolean)
|
||||||
Private ReadOnly Property ViewReorganized As XMLValue(Of Boolean)
|
|
||||||
Friend ReadOnly Property GroupUsers As XMLValue(Of Boolean)
|
Friend ReadOnly Property GroupUsers As XMLValue(Of Boolean)
|
||||||
Friend ReadOnly Property ShowGroupsInsteadLabels As XMLValue(Of Boolean)
|
Friend ReadOnly Property ShowGroupsInsteadLabels As XMLValue(Of Boolean)
|
||||||
#End Region
|
#End Region
|
||||||
|
|||||||