aboutsummaryrefslogtreecommitdiff
path: root/Emby.Naming
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Naming')
-rw-r--r--Emby.Naming/Common/NamingOptions.cs6
-rw-r--r--Emby.Naming/Emby.Naming.csproj2
-rw-r--r--Emby.Naming/ExternalFiles/ExternalPathParser.cs2
-rw-r--r--Emby.Naming/TV/TvParserHelpers.cs44
4 files changed, 52 insertions, 2 deletions
diff --git a/Emby.Naming/Common/NamingOptions.cs b/Emby.Naming/Common/NamingOptions.cs
index 4bd226d95..333d237a2 100644
--- a/Emby.Naming/Common/NamingOptions.cs
+++ b/Emby.Naming/Common/NamingOptions.cs
@@ -540,6 +540,12 @@ namespace Emby.Naming.Common
new ExtraRule(
ExtraType.Unknown,
ExtraRuleType.DirectoryName,
+ "extra",
+ MediaType.Video),
+
+ new ExtraRule(
+ ExtraType.Unknown,
+ ExtraRuleType.DirectoryName,
"other",
MediaType.Video),
diff --git a/Emby.Naming/Emby.Naming.csproj b/Emby.Naming/Emby.Naming.csproj
index 97015efd0..7eb131575 100644
--- a/Emby.Naming/Emby.Naming.csproj
+++ b/Emby.Naming/Emby.Naming.csproj
@@ -36,7 +36,7 @@
<PropertyGroup>
<Authors>Jellyfin Contributors</Authors>
<PackageId>Jellyfin.Naming</PackageId>
- <VersionPrefix>10.9.0</VersionPrefix>
+ <VersionPrefix>10.10.0</VersionPrefix>
<RepositoryUrl>https://github.com/jellyfin/jellyfin</RepositoryUrl>
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
</PropertyGroup>
diff --git a/Emby.Naming/ExternalFiles/ExternalPathParser.cs b/Emby.Naming/ExternalFiles/ExternalPathParser.cs
index 9d54533c2..7a01b02f3 100644
--- a/Emby.Naming/ExternalFiles/ExternalPathParser.cs
+++ b/Emby.Naming/ExternalFiles/ExternalPathParser.cs
@@ -107,7 +107,7 @@ namespace Emby.Naming.ExternalFiles
pathInfo.Language = culture.ThreeLetterISOLanguageName;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
}
- else if (_namingOptions.MediaHearingImpairedFlags.Any(s => currentSliceWithoutSeparator.Contains(s, StringComparison.OrdinalIgnoreCase)))
+ else if (_namingOptions.MediaHearingImpairedFlags.Any(s => currentSliceWithoutSeparator.Equals(s, StringComparison.OrdinalIgnoreCase)))
{
pathInfo.IsHearingImpaired = true;
extraString = extraString.Replace(currentSlice, string.Empty, StringComparison.OrdinalIgnoreCase);
diff --git a/Emby.Naming/TV/TvParserHelpers.cs b/Emby.Naming/TV/TvParserHelpers.cs
new file mode 100644
index 000000000..029917858
--- /dev/null
+++ b/Emby.Naming/TV/TvParserHelpers.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Linq;
+using MediaBrowser.Model.Entities;
+
+namespace Emby.Naming.TV;
+
+/// <summary>
+/// Helper class for TV metadata parsing.
+/// </summary>
+public static class TvParserHelpers
+{
+ private static readonly string[] _continuingState = ["Pilot", "Returning Series", "Returning"];
+ private static readonly string[] _endedState = ["Cancelled", "Canceled"];
+
+ /// <summary>
+ /// Tries to parse a string into <see cref="SeriesStatus"/>.
+ /// </summary>
+ /// <param name="status">The status string.</param>
+ /// <param name="enumValue">The <see cref="SeriesStatus"/>.</param>
+ /// <returns>Returns true if parsing was successful.</returns>
+ public static bool TryParseSeriesStatus(string status, out SeriesStatus? enumValue)
+ {
+ if (Enum.TryParse(status, true, out SeriesStatus seriesStatus))
+ {
+ enumValue = seriesStatus;
+ return true;
+ }
+
+ if (_continuingState.Contains(status, StringComparer.OrdinalIgnoreCase))
+ {
+ enumValue = SeriesStatus.Continuing;
+ return true;
+ }
+
+ if (_endedState.Contains(status, StringComparer.OrdinalIgnoreCase))
+ {
+ enumValue = SeriesStatus.Ended;
+ return true;
+ }
+
+ enumValue = null;
+ return false;
+ }
+}