feat: add Empty method and fix link handling

Added a static `Empty` method to `DownloadEnumerable` for
creating an empty instance. Updated link handling in
`SequentialDownloader` to use `AbsoluteUri` instead of
`ToString()`, ensuring correct link representation.

These changes improve usability and ensure consistency in
link formatting.
This commit is contained in:
qwsdcvghyu89
2025-06-26 14:51:11 +03:00
parent 518b600d07
commit 3569ee0e87
4 changed files with 8 additions and 5 deletions
+3
View File
@@ -10,5 +10,8 @@ namespace Beam {
public IAsyncEnumerator<Ordered<T>> GetAsyncEnumerator(CancellationToken cancellationToken = default)
=> Download;
public static DownloadEnumerable<T> Empty()
=> new(Array.Empty<Ordered<T>>().ToAsyncEnumerable().GetAsyncEnumerator());
}
}
+3 -3
View File
@@ -44,17 +44,17 @@ namespace Beam {
List<Ordered<string>> links = [];
//Logger?.LogInformation("MoveNextAsync() \n\t -> Links.Current = {} ", LinksEnumerator.Current.Link.AbsoluteUri);
links.Add(new Ordered<string>(LinksEnumerator.Current.Link.ToString(), LastOrder++));
links.Add(new Ordered<string>(LinksEnumerator.Current.Link.AbsoluteUri, LastOrder++));
while (LinksEnumerator.MoveNext() && LinksEnumerator.Current != SourceLink.InvalidLink && links.Count < idealLinkCount)
links.Add(new Ordered<string>(LinksEnumerator.Current.Link.ToString(), LastOrder++));
links.Add(new Ordered<string>(LinksEnumerator.Current.Link.AbsoluteUri, LastOrder++));
//Logger?.LogInformation("MoveNextAsync() \n\t -> links.Count = {} ", links.Count);
if (links.Count == 0) {
Logger?.LogInformation("Out of links!");
return false;
}
if (links.Any((x) => x.Data == SourceLink.InvalidLink.Link.ToString()))
if (links.Any((x) => x.Data == SourceLink.InvalidLink.Link.AbsoluteUri))
return false;
var (result, downloadedT) = await unit.TryDownload(
+1 -1
View File
@@ -139,7 +139,7 @@ namespace Beam {
/// Produces a deep copy whose <see cref="Segments"/> and contained collections are detached from the original.
/// </summary>
public SourceLinkBuilder Clone()
=> new SourceLinkBuilder(Protocol, Host) {
=> new SourceLinkBuilder(Host, Protocol) {
Segments = [.. Segments.Select(static x => x.Clone())]
};
+1 -1
View File
@@ -7,7 +7,7 @@
<Title>Beam</Title>
<Authors>aeqw89</Authors>
<Company>qwsdcvghyu</Company>
<Version>1.3.2</Version>
<Version>1.3.6</Version>
<Description>A library for downloading internet resources</Description>
<PackageProjectUrl>https://github.com/qwsdcvghyu89/Beam</PackageProjectUrl>
<RepositoryUrl>https://github.com/qwsdcvghyu89/Beam</RepositoryUrl>