diff --git a/Jellyfin.Plugin.JavTube/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.JavTube/Configuration/PluginConfiguration.cs index 0a4d771..eeee3af 100644 --- a/Jellyfin.Plugin.JavTube/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.JavTube/Configuration/PluginConfiguration.cs @@ -18,6 +18,43 @@ public enum TranslationEngine public class PluginConfiguration : BasePluginConfiguration { + #region TableSerializer + + private class TableSerializer + { + public static Dictionary Deserialize(string text) + { + var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); + + var reader = new StringReader(text ?? string.Empty); + while (reader.ReadLine() is { } line) + { + var kvp = line.Split('=', 2).Select(s => s.Trim()).ToList(); + if (string.IsNullOrWhiteSpace(kvp.First())) + continue; + dictionary[kvp[0]] = kvp.Count switch + { + 1 => null, + 2 => kvp[1], + _ => dictionary[kvp[0]] + }; + } + + return dictionary; + } + + public static string Serialize(Dictionary table) + { + return table?.Any() != true + ? string.Empty + : string.Join('\n', + table.Where(kvp => !string.IsNullOrWhiteSpace(kvp.Key)) + .Select(kvp => $"{kvp.Key?.Trim()}={kvp.Value?.Trim()}")); + } + } + + #endregion + #region General public string Server { get; set; } = "https://api.javtube.internal"; @@ -87,41 +124,4 @@ public class PluginConfiguration : BasePluginConfiguration #endregion #endregion - - #region TableSerializer - - private class TableSerializer - { - public static Dictionary Deserialize(string text) - { - var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); - - var reader = new StringReader(text ?? string.Empty); - while (reader.ReadLine() is { } line) - { - var kvp = line.Split('=', 2).Select(s => s.Trim()).ToList(); - if (string.IsNullOrWhiteSpace(kvp.First())) - continue; - dictionary[kvp[0]] = kvp.Count switch - { - 1 => null, - 2 => kvp[1], - _ => dictionary[kvp[0]] - }; - } - - return dictionary; - } - - public static string Serialize(Dictionary table) - { - return table?.Any() != true - ? string.Empty - : string.Join('\n', - table.Where(kvp => !string.IsNullOrWhiteSpace(kvp.Key)) - .Select(kvp => $"{kvp.Key?.Trim()}={kvp.Value?.Trim()}")); - } - } - - #endregion } \ No newline at end of file diff --git a/Jellyfin.Plugin.JavTube/Extensions/EnumerableExtensions.cs b/Jellyfin.Plugin.JavTube/Extensions/EnumerableExtensions.cs index 44505d7..98d5bb1 100644 --- a/Jellyfin.Plugin.JavTube/Extensions/EnumerableExtensions.cs +++ b/Jellyfin.Plugin.JavTube/Extensions/EnumerableExtensions.cs @@ -10,9 +10,7 @@ internal static class EnumerableExtensions public static IEnumerable Substitute(this IEnumerable source, Dictionary table) { if (table?.Any() != true) - { return source; - } var target = new List(); diff --git a/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs b/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs index 08f185f..dcb2386 100644 --- a/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs +++ b/Jellyfin.Plugin.JavTube/Providers/MovieProvider.cs @@ -121,13 +121,11 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider