diff --git a/SabreTools.RedumpLib/Web/Discs.cs b/SabreTools.RedumpLib/Web/Discs.cs index acbf2df..45d93ce 100644 --- a/SabreTools.RedumpLib/Web/Discs.cs +++ b/SabreTools.RedumpLib/Web/Discs.cs @@ -172,6 +172,10 @@ namespace SabreTools.RedumpLib.Web if (pageIds is null) return []; + // If all page IDs are already found, assume the last page was reached + if (pageIds.TrueForAll(ids.Contains)) + break; + ids.AddRange(pageIds); if (pageIds.Count == 0) break; @@ -400,6 +404,10 @@ namespace SabreTools.RedumpLib.Web if (pageIds is null) return []; + // If all page IDs are already found, assume the last page was reached + if (pageIds.TrueForAll(ids.Contains)) + break; + ids.AddRange(pageIds); if (pageIds.Count <= 1) break; diff --git a/SabreTools.RedumpLib/Web/Queue.cs b/SabreTools.RedumpLib/Web/Queue.cs index 2305d65..1a4877f 100644 --- a/SabreTools.RedumpLib/Web/Queue.cs +++ b/SabreTools.RedumpLib/Web/Queue.cs @@ -65,6 +65,10 @@ namespace SabreTools.RedumpLib.Web if (pageIds is null) return []; + // If all page IDs are already found, assume the last page was reached + if (pageIds.TrueForAll(ids.Contains)) + break; + ids.AddRange(pageIds); if (pageIds.Count == 0) break; @@ -180,6 +184,10 @@ namespace SabreTools.RedumpLib.Web if (pageIds is null) return []; + // If all page IDs are already found, assume the last page was reached + if (pageIds.TrueForAll(ids.Contains)) + break; + ids.AddRange(pageIds); if (pageIds.Count <= 1) break;