mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
Add sites: PornHub, XHamster Add saved xvideos posts downloading PluginProvider: added TaskGroup attribute; added IUserMedia inteface; changed PluginUserMedia to IUserMedia in interface declarations; changed 'User' String to IPluginContentProvider in ISiteSettings sinterface Added update the 'LOG' button at the end of the ProfileSaved download function API.Base: added 'IUserMedia' compatibility for 'UserMedia'; moved 'GetImage' from 'UserPost' to 'ChannelsViewForm'; update constants in UserDataBase; updated UserDataBase to new UserInfo environment. API.Instagram.UserData: fixed date issue API.Reddit.SiteSettings: update user patterns API.Twitter.Declarations: moved provider here from MainFrame UserDataBind: updated to new UserInfo environment ActiveDownloadingProgress: updated form rendering AutoDownloader: added SpecialDelay TDownloader: added 'Suspended' option; updated for TaskGroups CollectionEditorForm: fixed order bug LabelsForm: remove old stuff UserEditorForm: added collection editing MainFrame: improve label selection Add import users Added the ability to create a virtual collection and add a virtual user to a real collection SettingsCLS: improve users loading
86 lines
4.5 KiB
VB.net
86 lines
4.5 KiB
VB.net
' Copyright (C) 2023 Andy https://github.com/AAndyProgram
|
|
' This program is free software: you can redistribute it and/or modify
|
|
' it under the terms of the GNU General Public License as published by
|
|
' the Free Software Foundation, either version 3 of the License, or
|
|
' (at your option) any later version.
|
|
'
|
|
' This program is distributed in the hope that it will be useful,
|
|
' but WITHOUT ANY WARRANTY
|
|
Imports PersonalUtilities.Forms
|
|
Imports ADB = PersonalUtilities.Forms.Controls.Base.ActionButton.DefaultButtons
|
|
Namespace API.BaseObjects
|
|
Friend Interface IDomainContainer
|
|
ReadOnly Property Icon As Icon
|
|
ReadOnly Property Site As String
|
|
ReadOnly Property Domains As List(Of String)
|
|
ReadOnly Property DomainsTemp As List(Of String)
|
|
ReadOnly Property DomainsDefault As String
|
|
ReadOnly Property DomainsSettingProp As Plugin.PropertyValue
|
|
Property DomainsChanged As Boolean
|
|
Property Initialized As Boolean
|
|
Property DomainsUpdateInProgress As Boolean
|
|
Property DomainsUpdatedBySite As Boolean
|
|
Sub UpdateDomains()
|
|
End Interface
|
|
Friend NotInheritable Class DomainContainer
|
|
Private Sub New()
|
|
End Sub
|
|
Friend Shared Sub EndInit(ByVal s As IDomainContainer)
|
|
If ACheck(s.DomainsSettingProp.Value) Then s.Domains.ListAddList(CStr(s.DomainsSettingProp.Value).Split("|"), LAP.NotContainsOnly)
|
|
End Sub
|
|
Friend Overloads Shared Sub UpdateDomains(ByVal s As IDomainContainer)
|
|
UpdateDomains(s, Nothing, True)
|
|
End Sub
|
|
Friend Overloads Shared Sub UpdateDomains(ByVal s As IDomainContainer, ByVal NewDomains As IEnumerable(Of String), ByVal Internal As Boolean)
|
|
With s
|
|
If Not .Initialized Or (.DomainsUpdatedBySite And Not Internal) Then Exit Sub
|
|
If Not .DomainsUpdateInProgress Then
|
|
.DomainsUpdateInProgress = True
|
|
.Domains.ListAddList(.DomainsDefault.Split("|"), LAP.NotContainsOnly)
|
|
.Domains.ListAddList(NewDomains, LAP.NotContainsOnly)
|
|
.DomainsSettingProp.Value = .Domains.ListToString("|")
|
|
If Not Internal Then .DomainsUpdatedBySite = True
|
|
.DomainsUpdateInProgress = False
|
|
End If
|
|
End With
|
|
End Sub
|
|
Friend Shared Sub Update(ByVal s As IDomainContainer)
|
|
With s
|
|
If .DomainsChanged Then
|
|
.Domains.Clear()
|
|
.Domains.ListAddList(.DomainsTemp, LAP.NotContainsOnly)
|
|
.UpdateDomains()
|
|
End If
|
|
End With
|
|
End Sub
|
|
Friend Shared Sub EndEdit(ByVal s As IDomainContainer)
|
|
s.DomainsTemp.ListAddList(s.Domains, LAP.ClearBeforeAdd, LAP.NotContainsOnly)
|
|
s.DomainsChanged = False
|
|
End Sub
|
|
Friend Shared Sub OpenSettingsForm(ByVal s As IDomainContainer)
|
|
Dim __add As EventHandler(Of SimpleListFormEventArgs) = Sub(sender, e) e.ValueNew = InputBoxE($"Enter a new domain using the pattern [{s.Site}.com]:", "New domain").IfNullOrEmptyE(Nothing)
|
|
Dim __delete As EventHandler(Of SimpleListFormEventArgs) = Sub(sender, e)
|
|
Dim n$ = AConvert(Of String)(e.ValueCurrent, AModes.Var, String.Empty)
|
|
e.Result = MsgBoxE({$"Are you sure you want to delete the [{n}] domain?",
|
|
"Removing domains"}, vbYesNo) = vbYes
|
|
End Sub
|
|
Using f As New SimpleListForm(Of String)(If(s.DomainsChanged, s.DomainsTemp, s.Domains), Settings.Design) With {
|
|
.Buttons = {ADB.Add, ADB.Delete},
|
|
.Mode = SimpleListFormModes.Remaining,
|
|
.FormText = s.Site,
|
|
.Icon = s.Icon,
|
|
.LocationOnly = True,
|
|
.Size = New Size(400, 330),
|
|
.DesignXMLNode = s.Site
|
|
}
|
|
AddHandler f.AddClick, __add
|
|
AddHandler f.DeleteClick, __delete
|
|
f.ShowDialog()
|
|
If f.DialogResult = DialogResult.OK Then
|
|
s.DomainsChanged = True
|
|
s.DomainsTemp.ListAddList(f.DataResult, LAP.ClearBeforeAdd, LAP.NotContainsOnly)
|
|
End If
|
|
End Using
|
|
End Sub
|
|
End Class
|
|
End Namespace |