From dee3af3016ff0519dde90f236536001988670f4e Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sun, 24 Mar 2024 15:25:03 +0100 Subject: [PATCH] Fix random seed parsing when non uint where specifed --- back/src/Kyoo.Abstractions/Models/Utils/Sort.cs | 6 +++++- back/src/Kyoo.Core/Views/Helper/SortBinder.cs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/back/src/Kyoo.Abstractions/Models/Utils/Sort.cs b/back/src/Kyoo.Abstractions/Models/Utils/Sort.cs index ab8a5a6c..4bd4d447 100644 --- a/back/src/Kyoo.Abstractions/Models/Utils/Sort.cs +++ b/back/src/Kyoo.Abstractions/Models/Utils/Sort.cs @@ -102,7 +102,11 @@ public record Sort : Sort return new Conglomerate(sortBy.Split(',').Select(x => From(x, seed)).ToArray()); if (sortBy.StartsWith("random:")) - return new Random(uint.Parse(sortBy["random:".Length..])); + { + if (uint.TryParse(sortBy["random:".Length..], out uint sseed)) + return new Random(sseed); + throw new ValidationException("Invalid random seed specified. Expected a number."); + } string key = sortBy.Contains(':') ? sortBy[..sortBy.IndexOf(':')] : sortBy; string? order = sortBy.Contains(':') ? sortBy[(sortBy.IndexOf(':') + 1)..] : null; diff --git a/back/src/Kyoo.Core/Views/Helper/SortBinder.cs b/back/src/Kyoo.Core/Views/Helper/SortBinder.cs index 8bafab6d..fb39e0b1 100644 --- a/back/src/Kyoo.Core/Views/Helper/SortBinder.cs +++ b/back/src/Kyoo.Core/Views/Helper/SortBinder.cs @@ -43,7 +43,7 @@ public class SortBinder : IModelBinder { object sort = bindingContext .ModelType.GetMethod(nameof(Sort.From))! - .Invoke(null, new object?[] { sortBy.FirstValue, seed })!; + .Invoke(null, [sortBy.FirstValue, seed])!; bindingContext.Result = ModelBindingResult.Success(sort); bindingContext.HttpContext.Items["seed"] = seed; return Task.CompletedTask;