Skip to content

Commit ff0c458

Browse files
committed
2025.6.1.0
PluginProvider IUserMedia, PluginUserMedia: add properties 'PostText', 'PostTextFile', 'PostTextFileSpecialFolder' YT YouTubeFunctions: update 'Info_GetUrlType' and 'StandardizeURL' functions: add youtu.be domain YouTubeSettings: add 'FILTER' property Add classes 'FilterForm', 'YTDataFilter' VideoListForm: add filters; update 'LoadData' and 'RemoveControls' functions; add hotkey 'Ctrl+F5' for refresh YouTubeMediaContainerBase: add support for new interface properties Minor bugs SCrawler DeclaredNames: add new names EditorExchangeOptionsBase, IUserData, SiteSettingsBase, UserMedia, UserDataBase: add support for text downloading Sites Bluesky, Instagram, OnlyFans, Reddit, ThreadsNet, Twitter: add support for text downloading Sites Facebook, JustForFans, LPSG, Mastodon, Pinterest, PornHub, Redgifs, ThisVid, TikTok, Xhamster, XVIDEOS, YouTube (STD): disable text downloading UserDataBase: add 'ToStringExt' functions API.Instagram: add 'SleepTimerRequestsNextProfile' property API.OnlyFans: update 'DynamicRules'; fix incorrect posts opening (update 'GetUserPostUrl' function); fix limited download ('DownloadTopCount') API.Reddit: fix post date provider; add 'Best' and 'Rising' view modes; fix request (data is not downloading); set 'BearerTokenUseCurl' to 'False' by default API.ThreadsNet: change domain from 'net' to 'com'; fix data downloading API.TikTok: add downloading of avatar, site name and description API.Twitter: fix JSON error; add debug options; fix downloading API.Xhamster: add folder 'Photo' for albums Feed: add filters; update move/copy algo; add the ability to show test posts; update table rendering; add new 'MediaItem' handlers FeedMedia: add text options; update 'DeleteFile' function FeedMoveCopyTo: add text option VideoDownloaderForm: disable filter button GlobalSettingsForm: add 'FeedShowTextPosts' and 'FeedShowTextPostsAlwaysMove' options SettingsCLS: add feed text properties UserImage: add 'CreateImageFromText' function UserInfo: update 'Equals' function Add classes: 'FeedFilter', 'FeedFilterCollection', 'FeedFilterForm' Minor bugs and improvements
1 parent fff63d0 commit ff0c458

File tree

86 files changed

+4180
-1157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+4180
-1157
lines changed

Changelog.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
# 2025.6.1.0
2+
3+
*2025-06-01*
4+
5+
- Added
6+
- Sites:
7+
- YouTube (standalone app):
8+
- support for **youtu.be** domain
9+
- **filters**
10+
- hotkey `Ctrl+F5` for refresh
11+
- **Bluesky, Instagram, OnlyFans, Reddit, Threads, Twitter: the ability to download text posts**
12+
- OnlyFans:
13+
- updated `DynamicRules`
14+
- `backend` option *(`aio` & `httpx`)*
15+
- Reddit: add `Best` and `Rising` view modes
16+
- TikTok: downloading of avatar, site name and description
17+
- Feed:
18+
- **filters**
19+
- add the ability to show test posts
20+
- Minor improvements
21+
- Updated
22+
- yt-dlp up to version **2025.05.22**
23+
- gallery-dl up to version **1.29.7**
24+
- PluginProvider
25+
- IUserMedia: properties `PostText`, `PostTextFile`, `PostTextFileSpecialFolder`
26+
- Fixed
27+
- Sites:
28+
- OnlyFans:
29+
- DRM videos are not downloading in some cases *(only if you can't download video try changing `backend` option to `httpx`)*
30+
- incorrect open posts
31+
- while limited downloading, the first time, the profile still loads completely
32+
- Reddit:
33+
- **data is not downloading**
34+
- post date is incorrect
35+
- Threads
36+
- change domain from `net` to `com`
37+
- data is not downloading
38+
- Twitter
39+
- fix JSON error
40+
- data is not downloaded in some cases
41+
- Minor bugs
42+
143
# 2025.3.17.0
244

345
*2025-03-17*

SCrawler.PluginProvider/My Project/AssemblyInfo.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
3232
' by using the '*' as shown below:
3333
' <Assembly: AssemblyVersion("1.0.*")>
3434

35-
<Assembly: AssemblyVersion("2025.2.25.0")>
36-
<Assembly: AssemblyFileVersion("2025.2.25.0")>
35+
<Assembly: AssemblyVersion("2025.6.1.0")>
36+
<Assembly: AssemblyFileVersion("2025.6.1.0")>
3737
<Assembly: NeutralResourcesLanguage("en")>

SCrawler.PluginProvider/Objects/PluginUserMedia.vb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ Namespace Plugin
3535
Public Property DownloadState As UserMediaStates Implements IUserMedia.DownloadState
3636
Public Property PostID As String Implements IUserMedia.PostID
3737
Public Property PostDate As Date? Implements IUserMedia.PostDate
38+
Public Property PostText As String Implements IUserMedia.PostText
39+
Public Property PostTextFile As String Implements IUserMedia.PostTextFile
40+
Public Property PostTextFileSpecialFolder As Boolean Implements IUserMedia.PostTextFileSpecialFolder
3841
Public Property SpecialFolder As String Implements IUserMedia.SpecialFolder
3942
Public Property Attempts As Integer Implements IUserMedia.Attempts
4043
Public Property [Object] As Object Implements IUserMedia.Object
@@ -48,6 +51,9 @@ Namespace Plugin
4851
Property DownloadState As UserMediaStates
4952
Property PostID As String
5053
Property PostDate As Date?
54+
Property PostText As String
55+
Property PostTextFile As String
56+
Property PostTextFileSpecialFolder As Boolean
5157
Property SpecialFolder As String
5258
Property Attempts As Integer
5359
Property [Object] As Object
2.79 KB
Binary file not shown.
320 Bytes
Loading

SCrawler.Shared/My Project/AssemblyInfo.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
3232
' by using the '*' as shown below:
3333
' <Assembly: AssemblyVersion("1.0.*")>
3434

35-
<Assembly: AssemblyVersion("2023.12.15.0")>
36-
<Assembly: AssemblyFileVersion("2023.12.15.0")>
35+
<Assembly: AssemblyVersion("2025.6.1.0")>
36+
<Assembly: AssemblyFileVersion("2025.6.1.0")>
3737
<Assembly: NeutralResourcesLanguage("en")>

SCrawler.Shared/My Project/Resources.Designer.vb

Lines changed: 23 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SCrawler.Shared/My Project/Resources.resx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
4747
mimetype: application/x-microsoft.net.object.binary.base64
4848
value : The object must be serialized with
49-
: System.Serialization.Formatters.Binary.BinaryFormatter
49+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
5050
: and then encoded with base64 encoding.
5151
5252
mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
6060
: and then encoded with base64 encoding.
6161
-->
6262
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
6364
<xsd:element name="root" msdata:IsDataSet="true">
6465
<xsd:complexType>
6566
<xsd:choice maxOccurs="unbounded">
@@ -68,9 +69,10 @@
6869
<xsd:sequence>
6970
<xsd:element name="value" type="xsd:string" minOccurs="0" />
7071
</xsd:sequence>
71-
<xsd:attribute name="name" type="xsd:string" />
72+
<xsd:attribute name="name" use="required" type="xsd:string" />
7273
<xsd:attribute name="type" type="xsd:string" />
7374
<xsd:attribute name="mimetype" type="xsd:string" />
75+
<xsd:attribute ref="xml:space" />
7476
</xsd:complexType>
7577
</xsd:element>
7678
<xsd:element name="assembly">
@@ -85,9 +87,10 @@
8587
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
8688
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
8789
</xsd:sequence>
88-
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
90+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
8991
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
9092
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+
<xsd:attribute ref="xml:space" />
9194
</xsd:complexType>
9295
</xsd:element>
9396
<xsd:element name="resheader">
@@ -109,9 +112,16 @@
109112
<value>2.0</value>
110113
</resheader>
111114
<resheader name="reader">
112-
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113116
</resheader>
114117
<resheader name="writer">
115-
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116119
</resheader>
120+
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121+
<data name="FilterIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
122+
<value>..\Content\Icons\FilterIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123+
</data>
124+
<data name="FilterPic" type="System.Resources.ResXFileRef, System.Windows.Forms">
125+
<value>..\Content\Images\FilterPic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126+
</data>
117127
</root>

SCrawler.Shared/SCrawler.Shared.vbproj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
<ItemGroup>
8383
<Reference Include="System" />
8484
<Reference Include="System.Data" />
85+
<Reference Include="System.Drawing" />
8586
<Reference Include="System.Windows.Forms" />
8687
<Reference Include="System.Xml" />
8788
<Reference Include="System.Core" />
@@ -123,7 +124,7 @@
123124
</ItemGroup>
124125
<ItemGroup>
125126
<EmbeddedResource Include="My Project\Resources.resx">
126-
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
127+
<Generator>PublicVbMyResourcesResXFileCodeGenerator</Generator>
127128
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
128129
<CustomToolNamespace>My.Resources</CustomToolNamespace>
129130
<SubType>Designer</SubType>
@@ -147,5 +148,9 @@
147148
<Name>PersonalUtilities</Name>
148149
</ProjectReference>
149150
</ItemGroup>
151+
<ItemGroup>
152+
<Content Include="Content\Icons\FilterIcon.ico" />
153+
<Content Include="Content\Images\FilterPic.png" />
154+
</ItemGroup>
150155
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
151156
</Project>

SCrawler.YouTube/Base/YouTubeFunctions.vb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Namespace API.YouTube.Base
1818
Public Const TrueUrlPattern As String = "https?://[^/]*?youtube.com/[^\?/&]+((\??[^\?/&]+|/[^\?/&]+))"
1919
'2 - type; 5 - id
2020
Public Const UrlTypePattern As String = "(?<=https?://[^/]*?youtube.com/)((@|[^\?/&]+))([/\?]{0,1}(list=|v=|)([^\?/&]*))(?=(\S+|\Z|))"
21+
Public Const UrlTypePattern_BE As String = "(?<=https?://[^/]*?youtu.be/)([^\?/&]+)"
2122
Private Sub New()
2223
End Sub
2324
Public Shared Function StandardizeURL(ByVal URL As String) As String
@@ -36,6 +37,7 @@ Namespace API.YouTube.Base
3637
Next
3738
data.Clear()
3839
End If
40+
If val.IsEmptyString Then val = RegexReplace(URL, RParams.DMS(UrlTypePattern_BE, 0, EDP.ReturnValue))
3941
If Not val.IsEmptyString Then Return $"https://www.youtube.com/watch?v={val}"
4042
End If
4143
End If
@@ -100,6 +102,9 @@ Namespace API.YouTube.Base
100102
Return YouTubeMediaType.Channel
101103
End Select
102104
End If
105+
Else
106+
Dim v$ = RegexReplace(URL, RParams.DMS(UrlTypePattern_BE, 0, EDP.ReturnValue))
107+
If Not v.IsEmptyString Then Return YouTubeMediaType.Single
103108
End If
104109
End If
105110
Return YouTubeMediaType.Undefined

0 commit comments

Comments
 (0)