Fix some stuff

This commit is contained in:
Mike Nolan 2023-02-23 20:59:09 -06:00
parent 53b6f8b27f
commit 03408687a8
4 changed files with 16 additions and 15 deletions

View File

@ -310,7 +310,8 @@ namespace Tesses.YouTubeDownloader
{
foreach(var item in Videos)
{
if(await baseCls.FileExistsAsync($"Info/{item}.json"))
VideoId? id = VideoId.TryParse(item);
if(id.HasValue && await baseCls.VideoExistsAsync(id.Value))
{
yield return await baseCls.GetVideoInfoAsync(item);
}

View File

@ -89,9 +89,10 @@ namespace Tesses.YouTubeDownloader
}
public async Task WriteAllBytesAsync(string path,byte[] data,CancellationToken token=default(CancellationToken))
{
MemoryStream ms = new MemoryStream(data);
using(var s=await CreateAsync(path))
{
await s.WriteAsync(data,0,data.Length,token);
await ms.CopyToAsync(s,4096,token);
}
}
public EventHandler<ConsoleWriteEventArgs> ConsoleWrite;

View File

@ -141,17 +141,14 @@ namespace Tesses.YouTubeDownloader
}
public async Task<byte[]> ReadAllBytesAsync(string path,CancellationToken token=default(CancellationToken))
{using(var strm = await OpenReadAsync(path))
{
byte[] data=new byte[strm.Length];
MemoryStream memoryStream=new MemoryStream();
using(var strm = await OpenReadAsync(path))
{
await strm.CopyToAsync(memoryStream,4096,token);
await strm.ReadAsync(data,0,data.Length,token);
if(token.IsCancellationRequested)
{
return new byte[0];
}
return data;
}
return memoryStream.ToArray();
}
public virtual async IAsyncEnumerable<string> GetPlaylistIdsAsync()

View File

@ -482,8 +482,10 @@ internal class SegmentedHttpStream : Stream
public async Task ReplacePersonalPlaylistAsync(string name, IEnumerable<ListContentItem> items)
{
DeletePersonalPlaylist(name);
await AddToPersonalPlaylistAsync(name,items);
var content = new MultipartFormDataContent();
content.Add(new StringContent(name), "name");
content.Add(new StringContent(JsonConvert.SerializeObject(items.ToList())), "data");
await client.PostAsync($"{url}api/v2/ReplaceList",content);
}
public async Task RemoveItemFromPersonalPlaylistAsync(string name, VideoId id)
@ -516,7 +518,7 @@ internal class SegmentedHttpStream : Stream
try{
client.GetStringAsync($"{url}api/v2/DeleteList?name={WebUtility.UrlEncode(name)}").GetAwaiter().GetResult();
Task.Run(()=>client.GetStringAsync($"{url}api/v2/DeleteList?name={WebUtility.UrlEncode(name)}")).GetAwaiter().GetResult();
}catch(Exception ex)
{