Made Personal Lists on Downloader in proxy

This commit is contained in:
Mike Nolan 2022-11-01 01:00:57 -05:00
parent 75fe70a1e7
commit ce2cd5b0f9
2 changed files with 44 additions and 32 deletions

View File

@ -149,6 +149,16 @@ namespace Tesses.YouTubeDownloader
var store = Storage as IWritable; var store = Storage as IWritable;
if(store != null && callback != null) await callback(store); if(store != null && callback != null) await callback(store);
} }
public async Task DownloaderAsITYTDBaseAsync(Func<ITYTDBase,Task> callback)
{
var store = Downloader as ITYTDBase;
if(store != null && callback != null) await callback(store);
}
public void DownloaderAsITYTDBase(Action<ITYTDBase> callback)
{
var store = Downloader as ITYTDBase;
if(store != null && callback != null) callback(store);
}
public DownloaderMigration Migration public DownloaderMigration Migration
@ -332,13 +342,9 @@ namespace Tesses.YouTubeDownloader
public async IAsyncEnumerable<ListContentItem> GetPersonalPlaylistContentsAsync(string name) public async IAsyncEnumerable<ListContentItem> GetPersonalPlaylistContentsAsync(string name)
{ {
IAsyncEnumerable<ListContentItem> items=null; if(Downloader == null) yield break;
StorageAsStorage((e)=>{
items=e.GetPersonalPlaylistContentsAsync(name); await foreach(var item in Downloader.GetPersonalPlaylistContentsAsync(name))
});
if(items == null) yield break;
await foreach(var item in items)
{ {
yield return await Task.FromResult(item); yield return await Task.FromResult(item);
} }
@ -431,11 +437,17 @@ namespace Tesses.YouTubeDownloader
public async IAsyncEnumerable<string> GetPersonalPlaylistsAsync() public async IAsyncEnumerable<string> GetPersonalPlaylistsAsync()
{ {
await foreach(var item in Storage.GetPersonalPlaylistsAsync()) if(Downloader == null) yield break;
{ IAsyncEnumerable<string> items=null;
yield return await Task.FromResult(item); DownloaderAsITYTDBase((e)=>{
} items=e.GetPersonalPlaylistsAsync();
});
if(items == null) yield break;
await foreach(var item in items)
{
yield return await Task.FromResult(item);
}
} }
public async Task<(string Path, bool Delete)> GetRealUrlOrPathAsync(string path) public async Task<(string Path, bool Delete)> GetRealUrlOrPathAsync(string path)
@ -630,43 +642,43 @@ namespace Tesses.YouTubeDownloader
public async Task AddToPersonalPlaylistAsync(string name, IEnumerable<ListContentItem> items) public async Task AddToPersonalPlaylistAsync(string name, IEnumerable<ListContentItem> items)
{ {
await StorageAsStorageAsync(async(e)=>{ if(Downloader ==null) return;
await e.AddToPersonalPlaylistAsync(name,items); await Downloader.AddToPersonalPlaylistAsync(name,items);
});
} }
public async Task ReplacePersonalPlaylistAsync(string name, IEnumerable<ListContentItem> items) public async Task ReplacePersonalPlaylistAsync(string name, IEnumerable<ListContentItem> items)
{ {
await StorageAsStorageAsync(async(e)=>{ if(Downloader ==null) return;
await e.ReplacePersonalPlaylistAsync(name,items); await Downloader.ReplacePersonalPlaylistAsync(name,items);
});
} }
public async Task RemoveItemFromPersonalPlaylistAsync(string name, VideoId id) public async Task RemoveItemFromPersonalPlaylistAsync(string name, VideoId id)
{ {
await StorageAsStorageAsync(async(e)=>{ if(Downloader ==null) return;
await e.RemoveItemFromPersonalPlaylistAsync(name,id); await Downloader.RemoveItemFromPersonalPlaylistAsync(name,id);
});
} }
public async Task SetResolutionForItemInPersonalPlaylistAsync(string name, VideoId id, Resolution resolution) public async Task SetResolutionForItemInPersonalPlaylistAsync(string name, VideoId id, Resolution resolution)
{ {
await StorageAsStorageAsync(async(e)=>{ if(Downloader ==null) return;
await e.SetResolutionForItemInPersonalPlaylistAsync(name,id,resolution); await Downloader.SetResolutionForItemInPersonalPlaylistAsync(name,id,resolution);
});
} }
public bool PersonalPlaylistExists(string name) public bool PersonalPlaylistExists(string name)
{ {
if(Storage ==null) return false; if(Downloader ==null) return false;
return Storage.PersonalPlaylistExists(name); return Downloader.PersonalPlaylistExists(name);
} }
public void DeletePersonalPlaylist(string name) public void DeletePersonalPlaylist(string name)
{ {
StorageAsStorage((e)=>{ if(Downloader ==null) return;
e.DeletePersonalPlaylist(name); Downloader.DeletePersonalPlaylist(name);
});
} }

View File

@ -7,9 +7,9 @@
<PackageId>Tesses.YouTubeDownloader</PackageId> <PackageId>Tesses.YouTubeDownloader</PackageId>
<Author>Mike Nolan</Author> <Author>Mike Nolan</Author>
<Company>Tesses</Company> <Company>Tesses</Company>
<Version>1.2.1</Version> <Version>1.2.2</Version>
<AssemblyVersion>1.2.1</AssemblyVersion> <AssemblyVersion>1.2.2</AssemblyVersion>
<FileVersion>1.2.1</FileVersion> <FileVersion>1.2.2</FileVersion>
<Description>A YouTube Downloader</Description> <Description>A YouTube Downloader</Description>
<PackageLicenseExpression>LGPL-3.0-only</PackageLicenseExpression> <PackageLicenseExpression>LGPL-3.0-only</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>