Kavita/API/Extensions/StringExtensions.cs
Joe Milazzo faf58e6985
Release Testing Day 3 (#1951)
* Code cleanup.

Fixed OPDS images missing api key.

Fixed theme color on site manifest not being black.

* Removed a console.log from timeago pipe

* Reading list page is now alphabetical and the modal for adding to a reading list is ordered by most recent.

* Fixed a bug where remove read from reading list failed due to Calculating Start and End date assuming chapter would always be there.

* Fixed a bug where reading list cover would get reset when editing the reading list.

* Fixed a bug where reading list item didn't have not read badge. It's on old style.

* Fixed a bug where user-preferences was hitting an admin only api when there was a better alternative

* Slight memory improvement on a common db call

* Fixed a bug where resetting to default theme when a theme was deleted was throwing an exception and failing.

* All Login dtos now have the active KavitaVersion to make external apps able to handle what version of the API they are connecting with.

* Fixed up a case where getVolume repo method always assumed there was a volume by that Id.
2023-05-02 14:02:33 -07:00

26 lines
810 B
C#

using System.Text.RegularExpressions;
namespace API.Extensions;
public static class StringExtensions
{
private static readonly Regex SentenceCaseRegex = new Regex(@"(^[a-z])|\.\s+(.)",
RegexOptions.ExplicitCapture | RegexOptions.Compiled, Services.Tasks.Scanner.Parser.Parser.RegexTimeout);
public static string SentenceCase(this string value)
{
return SentenceCaseRegex.Replace(value.ToLower(), s => s.Value.ToUpper());
}
/// <summary>
/// Apply normalization on the String
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ToNormalized(this string? value)
{
if (string.IsNullOrEmpty(value)) return string.Empty;
return Services.Tasks.Scanner.Parser.Parser.Normalize(value);
}
}