@@ -19,6 +19,7 @@ Namespace API.Xhamster
1919 Friend Class UserData : Inherits UserDataBase
2020# Region "XML names"
2121 Private Const Name_Gender As String = "Gender"
22+ Private Const Name_IsCreator As String = "IsCreator"
2223# End Region
2324# Region "Declarations"
2425 Friend Overrides ReadOnly Property FeedIsUser As Boolean
@@ -27,6 +28,7 @@ Namespace API.Xhamster
2728 End Get
2829 End Property
2930 Friend Property IsChannel As Boolean = False
31+ Friend Property IsCreator As Boolean = False
3032 Friend Property TrueName As String = String .Empty
3133 Friend Property Gender As String = String .Empty
3234 Friend Property SiteMode As SiteModes = SiteModes.User
@@ -77,7 +79,8 @@ Namespace API.Xhamster
7779 If n.Length = 2 And If (Force, eObj.Options, Options).IsEmptyString Then
7880 If Force Then Return False
7981 TrueName = n( 0 )
80- IsChannel = True
82+ IsChannel = n( 1 ) = SiteSettings.ChannelOption
83+ IsCreator = n( 1 ) = SiteSettings.P_Creators
8184 ElseIf IsChannel Then
8285 If Force Then Return False
8386 TrueName = Name
@@ -89,6 +92,7 @@ Namespace API.Xhamster
8992 If n2.ListExists Then
9093 IsChannel = False
9194 __Mode = CInt (n2( 0 ))
95+ IsCreator = __Mode = SiteModes.User
9296 __Gender = n2( 1 )
9397 __Arguments = n2( 3 )
9498 __TrueName = n2.ListTake( 3 , 100 , EDP.ReturnValue).ListToString( String .Empty)
@@ -139,6 +143,7 @@ Namespace API.Xhamster
139143 With Container
140144 If Loading Then
141145 IsChannel = .Value(Name_IsChannel).FromXML( Of Boolean )( False )
146+ IsCreator = .Value(Name_IsCreator).FromXML( Of Boolean )( False )
142147 TrueName = .Value(Name_TrueName)
143148 Gender = .Value(Name_Gender)
144149 SiteMode = .Value(Name_SiteMode).FromXML( Of Integer )(SiteModes.User)
@@ -151,6 +156,7 @@ Namespace API.Xhamster
151156 .Value(Name_FriendlyName) = FriendlyName
152157 End If
153158 .Add(Name_IsChannel, IsChannel.BoolToInteger)
159+ .Add(Name_IsCreator, IsCreator.BoolToInteger)
154160 .Add(Name_TrueName, TrueName)
155161 .Add(Name_Gender, Gender)
156162 .Add(Name_SiteMode, CInt (SiteMode))
@@ -178,7 +184,7 @@ Namespace API.Xhamster
178184# End Region
179185# Region "Download functions"
180186 Friend Function GetNonUserUrl( ByVal Page As Integer ) As String
181- If SiteMode = SiteModes.User Then
187+ If SiteMode = SiteModes.User And Not IsCreator Then
182188 Return String .Empty
183189 Else
184190 Dim url$ = "https://xhamster.com/"
@@ -188,6 +194,7 @@ Namespace API.Xhamster
188194 Case SiteModes.Categories : url &= SiteSettings.P_Categories
189195 Case SiteModes.Search : url &= SiteSettings.P_Search
190196 Case SiteModes.Pornstars : url &= SiteSettings.P_Pornstars
197+ Case SiteModes.User : url &= SiteSettings.P_Creators
191198 Case Else : Return String .Empty
192199 End Select
193200 url &= $"/{TrueName}"
@@ -224,15 +231,20 @@ Namespace API.Xhamster
224231 Private ReadOnly SessionPosts As List( Of String )
225232 Private _PageVideosRepeat As Integer = 0
226233 Protected Overrides Sub DownloadDataF( ByVal Token As CancellationToken)
227- _TempPhotoData.Clear()
228- SearchPostsCount = 0
229- _PageVideosRepeat = 0
230- SessionPosts.Clear()
231- If DownloadVideos Then DownloadData( 1 , True , Token)
232- If Not IsChannel And DownloadImages And Not IsSubscription Then
233- DownloadData( 1 , False , Token)
234- ReparsePhoto(Token)
235- End If
234+ Try
235+ _TempPhotoData.Clear()
236+ SearchPostsCount = 0
237+ _PageVideosRepeat = 0
238+ SessionPosts.Clear()
239+ Responser.CookiesAsHeader = True
240+ If DownloadVideos Then DownloadData( 1 , True , Token)
241+ If Not IsChannel And Not IsCreator And DownloadImages And Not IsSubscription Then
242+ DownloadData( 1 , False , Token)
243+ ReparsePhoto(Token)
244+ End If
245+ Finally
246+ Responser.CookiesAsHeader = False
247+ End Try
236248 End Sub
237249 Private Overloads Sub DownloadData( ByVal Page As Integer , ByVal IsVideo As Boolean , ByVal Token As CancellationToken)
238250 Dim URL$ = String .Empty
@@ -260,7 +272,7 @@ Namespace API.Xhamster
260272 ElseIf SiteMode = SiteModes.Search Then
261273 URL = GetNonUserUrl(Page)
262274 containerNodes.Add({ "searchResult" , "models" })
263- ElseIf SiteMode = SiteModes.Tags Or SiteMode = SiteModes.Categories Or SiteMode = SiteModes.Pornstars Then
275+ ElseIf IsCreator Or SiteMode = SiteModes.Tags Or SiteMode = SiteModes.Categories Or SiteMode = SiteModes.Pornstars Then
264276 URL = GetNonUserUrl(Page)
265277 If SiteMode = SiteModes.Pornstars Then
266278 containerNodes.Add({ "trendingVideoListComponent" , "models" })
@@ -269,9 +281,11 @@ Namespace API.Xhamster
269281 containerNodes.Add({ "pagesCategoryComponent" , "trendingVideoListProps" , "models" })
270282 containerNodes.Add({ "trendingVideoListComponent" , "models" })
271283 End If
284+ containerNodes.Add({ "trendingVideoSectionComponent" , "videoModels" })
272285 Else
273286 URL = $"https://xhamster.com/users/{TrueName}/{IIf(IsVideo, " videos ", " photos ")}{IIf(Page = 1, String.Empty, $" /{Page} ")}"
274287 containerNodes.Add({ If (IsVideo, "userVideoCollection" , "userGalleriesCollection" )})
288+ containerNodes.Add( If (IsVideo, { "videoListComponent" , "models" }, { "userGalleriesCollection" }))
275289 End If
276290 ThrowAny(Token)
277291
0 commit comments