Improve string comparison and code formatting

Updated string comparison logic to use explicit StringComparison parameters for correctness and performance. Moved using statements outside namespace in event consumer classes. Added minor formatting fixes and closing braces. Suppressed IDisposableAnalyzers and reduced StyleCop rule severity in .editorconfig. Updated project cache and assembly info files. No changes to business logic.
This commit is contained in:
2026-02-22 12:44:55 -05:00
parent 8c300533f9
commit d1e6fbc122
78 changed files with 318 additions and 283 deletions
+13 -1
View File
@@ -27,7 +27,11 @@ dotnet_diagnostic.SA1601.severity = none
dotnet_diagnostic.SA1413.severity = silent
dotnet_diagnostic.SA1515.severity = silent
dotnet_diagnostic.SA1512.severity = silent
dotnet_diagnostic.SA1518.severity = warning
dotnet_diagnostic.SA1518.severity = silent
dotnet_diagnostic.SA1505.severity = silent
dotnet_diagnostic.SA1108.severity = silent
dotnet_diagnostic.SA1009.severity = silent
dotnet_diagnostic.SA1128.severity = silent
dotnet_diagnostic.SA1648.severity = none
# StyleCop Analyzer Rules - Additional suppressions
@@ -52,6 +56,14 @@ dotnet_diagnostic.IDE0300.severity = silent
dotnet_diagnostic.IDE0301.severity = silent
dotnet_diagnostic.IDE0305.severity = silent
# IDisposableAnalyzers Rules - Suppress for project consistency
dotnet_diagnostic.IDISP001.severity = none
dotnet_diagnostic.IDISP003.severity = none
dotnet_diagnostic.IDISP004.severity = none
dotnet_diagnostic.IDISP007.severity = none
dotnet_diagnostic.IDISP008.severity = none
dotnet_diagnostic.IDISP009.severity = none
# Code Analysis Rules - Keep important warnings
dotnet_diagnostic.CA1307.severity = warning
dotnet_diagnostic.CA1310.severity = warning
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "M3eEjXrprD8=",
"dgSpecHash": "qWdnDCktJdY=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Naming\\Emby.Naming.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "leFWYb0Dcsk=",
"dgSpecHash": "DaMoU2oavX0=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Photos\\Emby.Photos.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "ZVA5ePVHqjg=",
"dgSpecHash": "CU3WcVn0qXE=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Server.Implementations\\Emby.Server.Implementations.csproj",
"expectedPackageFiles": [
@@ -57,7 +57,7 @@ public class EnvironmentController : BaseJellyfinApiController
[FromQuery] bool includeDirectories = false)
{
if (path.StartsWith(UncStartPrefix, StringComparison.OrdinalIgnoreCase)
&& path.LastIndexOf(UncSeparator) == 1)
&& path.LastIndexOf(UncSeparator, StringComparison.Ordinal) == 1)
{
return Array.Empty<FileSystemEntryInfo>();
}
@@ -156,7 +156,7 @@ public class EnvironmentController : BaseJellyfinApiController
if (string.IsNullOrEmpty(parent))
{
// Check if unc share
var index = path.LastIndexOf(UncSeparator);
var index = path.LastIndexOf(UncSeparator, StringComparison.Ordinal);
if (index != -1 && path[0] == UncSeparator)
{
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "4CpeL+8YFHs=",
"dgSpecHash": "sEpjYe2J48k=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Api\\Jellyfin.Api.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "R6LANlB4kiE=",
"dgSpecHash": "V+/rEcS1v1k=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Data\\Jellyfin.Data.csproj",
"expectedPackageFiles": [
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Library;
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -16,6 +14,8 @@ using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
namespace Jellyfin.Server.Implementations.Events.Consumers.Library;
/// <summary>
/// Creates an entry in the activity log whenever a lyric download fails.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Library
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -16,6 +14,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Library
using MediaBrowser.Model.Globalization;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
namespace Jellyfin.Server.Implementations.Events.Consumers.Library
{
/// <summary>
/// Creates an entry in the activity log whenever a subtitle download fails.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
using MediaBrowser.Model.Globalization;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
/// <summary>
/// Creates an entry in the activity log when there is a failed login attempt.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
@@ -12,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
/// <summary>
/// Creates an entry in the activity log when there is a successful login attempt.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -18,6 +16,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
/// <summary>
/// Creates an entry in the activity log whenever a user starts playback.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -18,6 +16,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
/// <summary>
/// Creates an activity log entry whenever a user stops playback.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
@@ -12,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
/// <summary>
/// Creates an entry in the activity log whenever a session ends.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
@@ -12,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
/// <summary>
/// Creates an entry in the activity log when a session is started.
/// </summary>
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.System;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
/// <summary>
/// Notifies users when there is a pending restart.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -17,6 +15,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.System
using MediaBrowser.Model.Tasks;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
/// <summary>
/// Creates an activity log entry whenever a task is completed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.System
using MediaBrowser.Model.Session;
using MediaBrowser.Model.Tasks;
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
/// <summary>
/// Notifies admin users when a task is completed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Notifies admin users when a plugin installation is cancelled.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Creates an entry in the activity log when a package installation fails.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Updates;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Notifies admin users when a plugin installation fails.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Creates an entry in the activity log when a plugin is installed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Notifies admin users when a plugin is installed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Notifies admin users when a plugin is being installed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Creates an entry in the activity log when a plugin is uninstalled.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
@@ -11,6 +9,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Notifies admin users when a plugin is uninstalled.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
/// <summary>
/// Creates an entry in the activity log when a plugin is updated.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
@@ -12,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Creates an entry in the activity log when a user is created.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Globalization;
using System.Threading.Tasks;
@@ -13,6 +11,8 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Adds an entry to the activity log when a user is deleted.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Notifies the user's sessions when a user is deleted.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Creates an entry in the activity log when a user is locked out.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
@@ -12,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Creates an entry in the activity log when a user's password is changed.
/// </summary>
@@ -2,8 +2,6 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Collections.Generic;
using System.Threading;
@@ -14,6 +12,9 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
/// <summary>
/// Notifies a user when their account has been updated.
/// </summary>
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "8rGyZK2RqJs=",
"dgSpecHash": "2uqnqkg9VpI=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server.Implementations\\Jellyfin.Server.Implementations.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "WNAhlXOd1t0=",
"dgSpecHash": "uvfyRwbCsEk=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server\\Jellyfin.Server.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "TOGQe6JoQmo=",
"dgSpecHash": "JKxQaRKDB/g=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "oIB4cupu3LM=",
"dgSpecHash": "No+LvUzpMog=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Controller\\MediaBrowser.Controller.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "GeC+ga1Uo2A=",
"dgSpecHash": "MUG8U7vEPzE=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.LocalMetadata\\MediaBrowser.LocalMetadata.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "aQOA3jWvZ/0=",
"dgSpecHash": "GTQOs1iNxFU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.MediaEncoding\\MediaBrowser.MediaEncoding.csproj",
"expectedPackageFiles": [
@@ -25,7 +25,7 @@ public static class ContainerHelper
public static bool ContainsContainer(string? profileContainers, string? inputContainer)
{
var isNegativeList = false;
if (profileContainers is not null && profileContainers.StartsWith('-'))
if (profileContainers is not null && profileContainers.StartsWith('-', StringComparison.Ordinal))
{
isNegativeList = true;
profileContainers = profileContainers[1..];
@@ -46,7 +46,7 @@ public static class ContainerHelper
public static bool ContainsContainer(string? profileContainers, ReadOnlySpan<char> inputContainer)
{
var isNegativeList = false;
if (profileContainers is not null && profileContainers.StartsWith('-'))
if (profileContainers is not null && profileContainers.StartsWith('-', StringComparison.Ordinal))
{
isNegativeList = true;
profileContainers = profileContainers[1..];
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "3yWrXzucBNg=",
"dgSpecHash": "xzRZKMjouOE=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Model\\MediaBrowser.Model.csproj",
"expectedPackageFiles": [
@@ -268,7 +268,7 @@ namespace MediaBrowser.Providers.MediaInfo
{
item.ShortcutPath = File.ReadAllLines(item.Path)
.Select(NormalizeStrmLine)
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i) && !i.StartsWith('#'));
.FirstOrDefault(i => !string.IsNullOrWhiteSpace(i) && !i.StartsWith('#', StringComparison.Ordinal));
}
/// <summary>
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "ncCtXCalGV4=",
"dgSpecHash": "O+ANw3v7loA=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Providers\\MediaBrowser.Providers.csproj",
"expectedPackageFiles": [
@@ -170,7 +170,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
// If closing tag exists, move to end of Tag
if (index != -1)
{
index = xml.IndexOf('>', index);
index = xml.IndexOf('>', index, StringComparison.Ordinal);
}
if (index != -1)
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "P3fDKwImSWA=",
"dgSpecHash": "rQazb3gGG1E=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.XbmcMetadata\\MediaBrowser.XbmcMetadata.csproj",
"expectedPackageFiles": [
@@ -1,7 +1,6 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -14,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dbeec2e9f0c8f46c715f999e2be12d779e1fbd62")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8c300533f94f1b44d8ac6fcc166769d27acfd10c")]
[assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
9034528098f49c58c86624aecd413bc8526e219cc0c6d56bad4cbb6d5ce48570
6962aa3d5d796665d2b25b34dd7aff91349dcb7e0e8dd2fdad8668462b4f7a34
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "Y7Khl1IIiuQ=",
"dgSpecHash": "OZOEm6CP/lY=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "o3KwAigR2H0=",
"dgSpecHash": "wWhRHr+gc4I=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "vHGJFlfns3Y=",
"dgSpecHash": "7p0VjWNAkOM=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "Fpoz11tqLl0=",
"dgSpecHash": "HMW40QmobtY=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "Vcdm+k15Tts=",
"dgSpecHash": "kfdiYX/qdMo=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing\\Jellyfin.Drawing.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "bmcoRiE2ZBQ=",
"dgSpecHash": "jFXUtLlrjTY=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Extensions\\Jellyfin.Extensions.csproj",
"expectedPackageFiles": [
+1 -1
View File
@@ -95,7 +95,7 @@ namespace Jellyfin.LiveTv.TunerHosts
{
extInf = trimmedLine.Substring(ExtInfPrefix.Length).Trim();
}
else if (!string.IsNullOrWhiteSpace(extInf) && !trimmedLine.StartsWith('#'))
else if (!string.IsNullOrWhiteSpace(extInf) && !trimmedLine.StartsWith('#', StringComparison.Ordinal))
{
var channel = GetChannelInfo(extInf, tunerHostId, trimmedLine);
channel.Id = channelIdPrefix + trimmedLine.GetMD5().ToString("N", CultureInfo.InvariantCulture);
+1 -1
View File
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "9I/zz4fLYTY=",
"dgSpecHash": "Wq1Uahcka68=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.LiveTv\\Jellyfin.LiveTv.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "svddOISkg9E=",
"dgSpecHash": "2kUNnZdwGG8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Hls\\Jellyfin.MediaEncoding.Hls.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "fWFpFkhudto=",
"dgSpecHash": "mTVFQQSIGo8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Keyframes\\Jellyfin.MediaEncoding.Keyframes.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "nYThmTXT+N4=",
"dgSpecHash": "o8ef9/49oOU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Networking\\Jellyfin.Networking.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "jz3od75Vj9o=",
"dgSpecHash": "I6cvgut0KE0=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Api.Tests\\Jellyfin.Api.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "D3+az8yIj/g=",
"dgSpecHash": "rSTC0c4hKeg=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Common.Tests\\Jellyfin.Common.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "GDKjP2XUxGM=",
"dgSpecHash": "rCzbZx73oRU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Controller.Tests\\Jellyfin.Controller.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "cBK/w0WVJEs=",
"dgSpecHash": "en/g4Rojfa8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Extensions.Tests\\Jellyfin.Extensions.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "nbns8k6jJuA=",
"dgSpecHash": "YQ4opaxxEO8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.LiveTv.Tests\\Jellyfin.LiveTv.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "hvFFds1OJpc=",
"dgSpecHash": "/lT1/xD3XnU=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Hls.Tests\\Jellyfin.MediaEncoding.Hls.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "5g3aj0khPqM=",
"dgSpecHash": "0nvUEzLEN94=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Keyframes.Tests\\Jellyfin.MediaEncoding.Keyframes.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "2rGlge7UbGY=",
"dgSpecHash": "SBmVy71j/UM=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Tests\\Jellyfin.MediaEncoding.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "E+3Xf4aE0A8=",
"dgSpecHash": "S2M6GE9E6Mw=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Model.Tests\\Jellyfin.Model.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "w013NueXjWs=",
"dgSpecHash": "aetk2kDndoI=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Naming.Tests\\Jellyfin.Naming.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "dtvsyCwkixc=",
"dgSpecHash": "VqeAp96kZ+8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Networking.Tests\\Jellyfin.Networking.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "99YmHljNark=",
"dgSpecHash": "yVpchsJCVR8=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Providers.Tests\\Jellyfin.Providers.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "ekBTYkgmpdU=",
"dgSpecHash": "SB6n8FaqhDk=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Implementations.Tests\\Jellyfin.Server.Implementations.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "wWSnrqDiePs=",
"dgSpecHash": "F/F7p6QhWSM=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Integration.Tests\\Jellyfin.Server.Integration.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "2W4hzYZ52SM=",
"dgSpecHash": "W1tIaEHAq1A=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Tests\\Jellyfin.Server.Tests.csproj",
"expectedPackageFiles": [
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "cjfpv0pWthU=",
"dgSpecHash": "+lkQwnGRsbE=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.XbmcMetadata.Tests\\Jellyfin.XbmcMetadata.Tests.csproj",
"expectedPackageFiles": [