Merge pull request 'Improve string comparison and code formatting' (#6) from pgsql_conversion into main

Reviewed-on: #6
This commit is contained in:
2026-02-22 12:47:26 -05:00
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,19 +2,20 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Subtitles;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
namespace Jellyfin.Server.Implementations.Events.Consumers.Library
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Subtitles;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
/// <summary>
/// Creates an entry in the activity log whenever a subtitle download fails.
@@ -103,4 +104,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Library
return name;
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Authentication;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Authentication;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using Microsoft.Extensions.Logging;
/// <summary>
/// Creates an entry in the activity log when there is a failed login attempt.
@@ -52,4 +53,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
}).ConfigureAwait(false);
}
}
}
}
@@ -2,15 +2,16 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Authentication;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Security
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Authentication;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Creates an entry in the activity log when there is a successful login attempt.
@@ -49,4 +50,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Security
}).ConfigureAwait(false);
}
}
}
}
@@ -2,21 +2,22 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
/// <summary>
/// Creates an entry in the activity log whenever a user starts playback.
@@ -109,4 +110,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
return "Playback";
}
}
}
}
@@ -2,21 +2,22 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
/// <summary>
/// Creates an activity log entry whenever a user stops playback.
@@ -117,4 +118,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
return null;
}
}
}
}
@@ -2,15 +2,16 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Session;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Session;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Creates an entry in the activity log whenever a session ends.
@@ -55,4 +56,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
}).ConfigureAwait(false);
}
}
}
}
@@ -2,15 +2,16 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Session;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Session
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Session;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Creates an entry in the activity log when a session is started.
@@ -55,4 +56,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Session
}).ConfigureAwait(false);
}
}
}
}
@@ -2,13 +2,14 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
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
{
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.System;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
/// <summary>
/// Notifies users when there is a pending restart.
@@ -32,4 +33,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.System
await _sessionManager.SendRestartRequiredNotification(CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,20 +2,21 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using MediaBrowser.Model.Tasks;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using MediaBrowser.Model.Tasks;
using Microsoft.Extensions.Logging;
/// <summary>
/// Creates an activity log entry whenever a task is completed.
@@ -159,4 +160,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.System
value == 1 ? description : string.Format(CultureInfo.InvariantCulture, "{0}s", description));
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
using MediaBrowser.Model.Tasks;
namespace Jellyfin.Server.Implementations.Events.Consumers.System
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
using MediaBrowser.Model.Tasks;
/// <summary>
/// Notifies admin users when a task is completed.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.System
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.ScheduledTaskEnded, eventArgs.Result, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies admin users when a plugin installation is cancelled.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.PackageInstallationCancelled, eventArgs.Argument, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Common.Updates;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Common.Updates;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
/// <summary>
/// Creates an entry in the activity log when a package installation fails.
@@ -52,4 +53,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
}).ConfigureAwait(false);
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Updates;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.Updates;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies admin users when a plugin installation fails.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.PackageInstallationFailed, eventArgs.InstallationInfo, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
/// <summary>
/// Creates an entry in the activity log when a plugin is installed.
@@ -51,4 +52,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
}).ConfigureAwait(false);
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies admin users when a plugin is installed.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.PackageInstallationCompleted, eventArgs.Argument, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies admin users when a plugin is being installed.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.PackageInstalling, eventArgs.Argument, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
/// <summary>
/// Creates an entry in the activity log when a plugin is uninstalled.
@@ -46,4 +47,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
.ConfigureAwait(false);
}
}
}
}
@@ -2,14 +2,15 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies admin users when a plugin is uninstalled.
@@ -33,4 +34,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
await _sessionManager.SendMessageToAdminSessions(SessionMessageType.PackageUninstalled, eventArgs.Argument, CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Events.Updates;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
/// <summary>
/// Creates an entry in the activity log when a plugin is updated.
@@ -52,4 +53,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Updates
}).ConfigureAwait(false);
}
}
}
}
@@ -2,15 +2,16 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Creates an entry in the activity log when a user is created.
@@ -44,4 +45,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
.ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,17 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Adds an entry to the activity log when a user is deleted.
/// </summary>
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies the user's sessions when a user is deleted.
@@ -40,4 +41,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Notifications;
using Microsoft.Extensions.Logging;
/// <summary>
/// Creates an entry in the activity log when a user is locked out.
@@ -48,4 +49,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
}).ConfigureAwait(false);
}
}
}
}
@@ -2,15 +2,16 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System.Globalization;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using Jellyfin.Database.Implementations.Entities;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Globalization;
/// <summary>
/// Creates an entry in the activity log when a user's password is changed.
@@ -44,4 +45,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
.ConfigureAwait(false);
}
}
}
}
@@ -2,17 +2,18 @@
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
namespace Jellyfin.Server.Implementations.Events.Consumers.Users
{
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Data.Events.Users;
using MediaBrowser.Controller.Events;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Session;
/// <summary>
/// Notifies a user when their account has been updated.
@@ -43,4 +44,4 @@ namespace Jellyfin.Server.Implementations.Events.Consumers.Users
CancellationToken.None).ConfigureAwait(false);
}
}
}
}
@@ -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": [