2023.11.9.0

ADD MULTI-ACCOUNT

PluginProvider
IDownloadableMedia: added 'AccountName' property
IPluginContentProvider: added 'AccountName' property
ISiteSettings: added properties: 'AccountName', 'Temporary', 'AvailableText', 'DefaultInstance'; added functions: 'Clone', 'Update', 'Delete'; removed 'Load' function; implement 'IDisposable' interface
PropertyValue: added functions: 'BeginInit', 'EndInit', 'Clone'

YT
YouTubeSettings: make the class compatible for multi-acc
YouTubeMediaContainerBase: add 'AccountName' property

SCrawler
IUserData: add properties: 'HostStatic', 'AccountName'
ProfileSaved: add the ability to download saved posts from all accounts
SiteSettingsBase: add multi-acc support; add 'UserOptionsType' for future purposes; update initializers; update responser initializing; add 'CLONE_PROPERTIES' and 'CloneGetEmptySettingsInstance' functions; 'IDisposable' support
UserDataBase: add multi-acc support; change host retrieval method
DomainsContainer: implements 'IDisposable' interface

API.All sites: add multi-acc support; move the Icon and Image setting to the initializer; update initializer
API.Instagram: change some property types
API.Reddit: set 'AvailableText'; update 'UpdateRedGifsToken' and 'UserOptions' functions
API.Mastodon: remove 'MastodonDomains' class and 'SettingsForm' form; replace 'MastodonDomains' with 'DomainsContainer'; update functions 'IsMyUser' and 'IsMyImageVideo'; update to 'DefaultInstance' environment; update 'UserData.ResetCredentials' function
API.XVIDEOS: update to 'DefaultInstance' environment
API.Xhamster: update to 'DefaultInstance' environment

STDownloader: add multi-acc compatibility

SiteEditorForm: add option 'Download saved posts'; update providers; add additional providers; add multi-acc support

PluginsEnvironment: add 'PClonableAttribute'; add multi-acc support
This commit is contained in:
Andy
2023-11-09 18:10:18 +03:00
parent 6def34d5e9
commit 12c02580f6
76 changed files with 2866 additions and 1586 deletions

View File

@@ -53,7 +53,7 @@ Namespace Plugin.Hosts
Friend Sub New(ByVal f As SFile)
Load(f)
If _Exists Then
Dim plugin As SettingsHost
Dim plugin As SettingsHostCollection
SiteIcon = Nothing
If Not MediaState = UserMediaStates.Downloaded Then
If Not SiteKey.IsEmptyString Then
@@ -66,7 +66,8 @@ Namespace Plugin.Hosts
If plugin Is Nothing Then
_Exists = False
Else
Instance = plugin.GetInstance(ISiteSettings.Download.SingleObject, Nothing, False, False)
Instance = plugin(AccountName, True).GetInstance(ISiteSettings.Download.SingleObject, Nothing, False, False)
Instance.AccountName = AccountName
End If
End If
If _Exists And Not Instance Is Nothing AndAlso Not Instance.HOST Is Nothing Then SiteIcon = Instance.HOST.Source.Image
@@ -76,8 +77,9 @@ Namespace Plugin.Hosts
Else
plugin = Settings(SiteKey)
If Not plugin Is Nothing Then
Dim i As UserDataBase = plugin.GetInstance(ISiteSettings.Download.SingleObject, Nothing, False, False)
Dim i As UserDataBase = plugin(AccountName, True).GetInstance(ISiteSettings.Download.SingleObject, Nothing, False, False)
If Not i Is Nothing Then
i.AccountName = AccountName
If Not i.HOST.Source.Image Is Nothing Then
SiteIcon = i.HOST.Source.Image
ElseIf Not i.HOST.Source.Icon Is Nothing Then
@@ -97,6 +99,7 @@ Namespace Plugin.Hosts
SiteIcon = .SiteIcon
Site = .Site
SiteKey = .SiteKey
AccountName = .AccountName
_HasError = .HasError
_Exists = .Exists
End With
@@ -140,6 +143,7 @@ Namespace Plugin.Hosts
d.Size = s.Size
d.Duration = s.Duration
d.Checked = s.Checked
d.AccountName = s.AccountName
End If
End Sub
Public Overrides Sub Load(ByVal f As SFile)