internal static async void DoIterate <T>(IPixivIterator <T> pixivIterator, ICollection <T> container, bool useCounter = false) { var counter = 1; var hashTable = new Dictionary <string, Illustration>(); while (pixivIterator.HasNext()) { if (useCounter && counter > Settings.Global.QueryPages * 10) { break; } await foreach (var illust in pixivIterator.MoveNextAsync()) { if (illust is Illustration i) { if (IllustNotMatchCondition(Settings.Global.ExceptTags, Settings.Global.ContainsTags, i)) { continue; } if (container is Collection <Illustration> illustrationContainer) { if (hashTable.ContainsKey(i.Id)) { continue; } hashTable[i.Id] = i; IComparer <Illustration> comparer = pixivIterator.SortOption switch { SortOption.None => null, SortOption.PublishDate => IllustrationPublishDateComparator.Instance, SortOption.Popularity => IllustrationPopularityComparator.Instance, _ => null }; illustrationContainer.AddSorted(i, comparer); } } else { container.Add(illust); } } counter++; } }
internal static async void DoIterate <T>(IPixivIterator <T> pixivIterator, ICollection <T> container, bool useCounter = false) { var counter = 1; while (pixivIterator.HasNext()) { if (useCounter && counter > Settings.Global.QueryPages) { break; } await foreach (var illust in pixivIterator.MoveNextAsync()) { if (typeof(T) == typeof(Illustration)) { var i = illust as Illustration; if (IllustNotMatchCondition(Settings.Global.ExceptTags, Settings.Global.ContainsTags, i)) { continue; } if (Settings.Global.SortOnInserting) { (container as Collection <Illustration>).AddSorted(i, IllustrationComparator.Instance); } else { container.Add(illust); } } else { container.Add(illust); } } counter++; } }
internal static async void DoIterate <T>(IPixivIterator <T> pixivIterator, ICollection <T> container, bool useCounter = false) { var counter = 1; while (pixivIterator.HasNext()) { if (useCounter && counter > Settings.Global.QueryPages * 10) { break; } await foreach (var illust in pixivIterator.MoveNextAsync()) { if (typeof(T) == typeof(Illustration)) { var i = illust as Illustration; if (IllustNotMatchCondition(Settings.Global.ExceptTags, Settings.Global.ContainsTags, i)) { continue; } if (container is Collection <Illustration> illustrationContainer) { illustrationContainer.AddSorted(i, Settings.Global.SortOnInserting ? IllustrationPopularityComparator.Instance : (IComparer <Illustration>)IllustrationPublishDateComparator.Instance); } } else { container.Add(illust); } } await Task.Delay(1000); counter++; } }