Improve platform checks
This commit is contained in:
parent
951a9f39c0
commit
8528e9bddb
|
@ -27,11 +27,9 @@ using MediaBrowser.Controller.TV;
|
||||||
using MediaBrowser.Model.Dlna;
|
using MediaBrowser.Model.Dlna;
|
||||||
using MediaBrowser.Model.Globalization;
|
using MediaBrowser.Model.Globalization;
|
||||||
using MediaBrowser.Model.Net;
|
using MediaBrowser.Model.Net;
|
||||||
using MediaBrowser.Model.System;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Rssdp;
|
using Rssdp;
|
||||||
using Rssdp.Infrastructure;
|
using Rssdp.Infrastructure;
|
||||||
using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
|
|
||||||
|
|
||||||
namespace Emby.Dlna.Main
|
namespace Emby.Dlna.Main
|
||||||
{
|
{
|
||||||
|
@ -204,8 +202,8 @@ namespace Emby.Dlna.Main
|
||||||
{
|
{
|
||||||
if (_communicationsServer == null)
|
if (_communicationsServer == null)
|
||||||
{
|
{
|
||||||
var enableMultiSocketBinding = OperatingSystem.Id == OperatingSystemId.Windows ||
|
var enableMultiSocketBinding = OperatingSystem.IsWindows() ||
|
||||||
OperatingSystem.Id == OperatingSystemId.Linux;
|
OperatingSystem.IsLinux();
|
||||||
|
|
||||||
_communicationsServer = new SsdpCommunicationsServer(_socketFactory, _networkManager, _logger, enableMultiSocketBinding)
|
_communicationsServer = new SsdpCommunicationsServer(_socketFactory, _networkManager, _logger, enableMultiSocketBinding)
|
||||||
{
|
{
|
||||||
|
@ -268,7 +266,12 @@ namespace Emby.Dlna.Main
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_publisher = new SsdpDevicePublisher(_communicationsServer, _networkManager, OperatingSystem.Name, Environment.OSVersion.VersionString, _config.GetDlnaConfiguration().SendOnlyMatchedHost)
|
_publisher = new SsdpDevicePublisher(
|
||||||
|
_communicationsServer,
|
||||||
|
_networkManager,
|
||||||
|
MediaBrowser.Common.System.OperatingSystem.Name,
|
||||||
|
Environment.OSVersion.VersionString,
|
||||||
|
_config.GetDlnaConfiguration().SendOnlyMatchedHost)
|
||||||
{
|
{
|
||||||
LogFunction = LogMessage,
|
LogFunction = LogMessage,
|
||||||
SupportPnpRootDevice = false
|
SupportPnpRootDevice = false
|
||||||
|
|
|
@ -103,7 +103,6 @@ using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Prometheus.DotNetRuntime;
|
using Prometheus.DotNetRuntime;
|
||||||
using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
|
|
||||||
using WebSocketManager = Emby.Server.Implementations.HttpServer.WebSocketManager;
|
using WebSocketManager = Emby.Server.Implementations.HttpServer.WebSocketManager;
|
||||||
|
|
||||||
namespace Emby.Server.Implementations
|
namespace Emby.Server.Implementations
|
||||||
|
@ -150,13 +149,7 @@ namespace Emby.Server.Implementations
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OperatingSystem.Id == OperatingSystemId.Windows
|
return OperatingSystem.IsWindows() || OperatingSystem.IsMacOS();
|
||||||
|| OperatingSystem.Id == OperatingSystemId.Darwin)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -721,7 +714,7 @@ namespace Emby.Server.Implementations
|
||||||
|
|
||||||
logger.LogInformation("Environment Variables: {EnvVars}", relevantEnvVars);
|
logger.LogInformation("Environment Variables: {EnvVars}", relevantEnvVars);
|
||||||
logger.LogInformation("Arguments: {Args}", commandLineArgs);
|
logger.LogInformation("Arguments: {Args}", commandLineArgs);
|
||||||
logger.LogInformation("Operating system: {OS}", OperatingSystem.Name);
|
logger.LogInformation("Operating system: {OS}", MediaBrowser.Common.System.OperatingSystem.Name);
|
||||||
logger.LogInformation("Architecture: {Architecture}", RuntimeInformation.OSArchitecture);
|
logger.LogInformation("Architecture: {Architecture}", RuntimeInformation.OSArchitecture);
|
||||||
logger.LogInformation("64-Bit Process: {Is64Bit}", Environment.Is64BitProcess);
|
logger.LogInformation("64-Bit Process: {Is64Bit}", Environment.Is64BitProcess);
|
||||||
logger.LogInformation("User Interactive: {IsUserInteractive}", Environment.UserInteractive);
|
logger.LogInformation("User Interactive: {IsUserInteractive}", Environment.UserInteractive);
|
||||||
|
@ -1098,8 +1091,8 @@ namespace Emby.Server.Implementations
|
||||||
ItemsByNamePath = ApplicationPaths.InternalMetadataPath,
|
ItemsByNamePath = ApplicationPaths.InternalMetadataPath,
|
||||||
InternalMetadataPath = ApplicationPaths.InternalMetadataPath,
|
InternalMetadataPath = ApplicationPaths.InternalMetadataPath,
|
||||||
CachePath = ApplicationPaths.CachePath,
|
CachePath = ApplicationPaths.CachePath,
|
||||||
OperatingSystem = OperatingSystem.Id.ToString(),
|
OperatingSystem = MediaBrowser.Common.System.OperatingSystem.Id.ToString(),
|
||||||
OperatingSystemDisplayName = OperatingSystem.Name,
|
OperatingSystemDisplayName = MediaBrowser.Common.System.OperatingSystem.Name,
|
||||||
CanSelfRestart = CanSelfRestart,
|
CanSelfRestart = CanSelfRestart,
|
||||||
CanLaunchWebBrowser = CanLaunchWebBrowser,
|
CanLaunchWebBrowser = CanLaunchWebBrowser,
|
||||||
TranscodingTempPath = ConfigurationManager.GetTranscodePath(),
|
TranscodingTempPath = ConfigurationManager.GetTranscodePath(),
|
||||||
|
@ -1124,7 +1117,7 @@ namespace Emby.Server.Implementations
|
||||||
Version = ApplicationVersionString,
|
Version = ApplicationVersionString,
|
||||||
ProductName = ApplicationProductName,
|
ProductName = ApplicationProductName,
|
||||||
Id = SystemId,
|
Id = SystemId,
|
||||||
OperatingSystem = OperatingSystem.Id.ToString(),
|
OperatingSystem = MediaBrowser.Common.System.OperatingSystem.Id.ToString(),
|
||||||
ServerName = FriendlyName,
|
ServerName = FriendlyName,
|
||||||
LocalAddress = GetSmartApiUrl(source),
|
LocalAddress = GetSmartApiUrl(source),
|
||||||
StartupWizardCompleted = ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted
|
StartupWizardCompleted = ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted
|
||||||
|
|
|
@ -11,7 +11,6 @@ using MediaBrowser.Common.Configuration;
|
||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.System;
|
using MediaBrowser.Model.System;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
|
|
||||||
|
|
||||||
namespace Emby.Server.Implementations.IO
|
namespace Emby.Server.Implementations.IO
|
||||||
{
|
{
|
||||||
|
@ -24,7 +23,7 @@ namespace Emby.Server.Implementations.IO
|
||||||
|
|
||||||
private readonly List<IShortcutHandler> _shortcutHandlers = new List<IShortcutHandler>();
|
private readonly List<IShortcutHandler> _shortcutHandlers = new List<IShortcutHandler>();
|
||||||
private readonly string _tempPath;
|
private readonly string _tempPath;
|
||||||
private static readonly bool _isEnvironmentCaseInsensitive = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
private static readonly bool _isEnvironmentCaseInsensitive = OperatingSystem.IsWindows();
|
||||||
|
|
||||||
public ManagedFileSystem(
|
public ManagedFileSystem(
|
||||||
ILogger<ManagedFileSystem> logger,
|
ILogger<ManagedFileSystem> logger,
|
||||||
|
@ -402,7 +401,7 @@ namespace Emby.Server.Implementations.IO
|
||||||
|
|
||||||
public virtual void SetHidden(string path, bool isHidden)
|
public virtual void SetHidden(string path, bool isHidden)
|
||||||
{
|
{
|
||||||
if (OperatingSystem.Id != OperatingSystemId.Windows)
|
if (!OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -426,7 +425,7 @@ namespace Emby.Server.Implementations.IO
|
||||||
|
|
||||||
public virtual void SetAttributes(string path, bool isHidden, bool isReadOnly)
|
public virtual void SetAttributes(string path, bool isHidden, bool isReadOnly)
|
||||||
{
|
{
|
||||||
if (OperatingSystem.Id != OperatingSystemId.Windows)
|
if (!OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1380,7 +1380,7 @@ namespace Jellyfin.Api.Controllers
|
||||||
}
|
}
|
||||||
else if (string.Equals(segmentFormat, "mp4", StringComparison.OrdinalIgnoreCase))
|
else if (string.Equals(segmentFormat, "mp4", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var outputFmp4HeaderArg = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) switch
|
var outputFmp4HeaderArg = OperatingSystem.IsWindows() switch
|
||||||
{
|
{
|
||||||
// on Windows, the path of fmp4 header file needs to be configured
|
// on Windows, the path of fmp4 header file needs to be configured
|
||||||
true => " -hls_fmp4_init_filename \"" + outputPrefix + "-1" + outputExtension + "\"",
|
true => " -hls_fmp4_init_filename \"" + outputPrefix + "-1" + outputExtension + "\"",
|
||||||
|
|
|
@ -366,8 +366,7 @@ namespace Jellyfin.Api.Controllers
|
||||||
else if (string.Equals(segmentFormat, "mp4", StringComparison.OrdinalIgnoreCase))
|
else if (string.Equals(segmentFormat, "mp4", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
var outputFmp4HeaderArg = string.Empty;
|
var outputFmp4HeaderArg = string.Empty;
|
||||||
var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
if (OperatingSystem.IsWindows())
|
||||||
if (isWindows)
|
|
||||||
{
|
{
|
||||||
// on Windows, the path of fmp4 header file needs to be configured
|
// on Windows, the path of fmp4 header file needs to be configured
|
||||||
outputFmp4HeaderArg = " -hls_fmp4_init_filename \"" + outputPrefix + "-1" + outputExtension + "\"";
|
outputFmp4HeaderArg = " -hls_fmp4_init_filename \"" + outputPrefix + "-1" + outputExtension + "\"";
|
||||||
|
|
|
@ -99,8 +99,7 @@ namespace Jellyfin.Api.Helpers
|
||||||
return fmp4InitFileName;
|
return fmp4InitFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
if (OperatingSystem.IsWindows())
|
||||||
if (isWindows)
|
|
||||||
{
|
{
|
||||||
// on Windows
|
// on Windows
|
||||||
// #EXT-X-MAP:URI="X:\transcodes\prefix-1.mp4"
|
// #EXT-X-MAP:URI="X:\transcodes\prefix-1.mp4"
|
||||||
|
|
|
@ -318,8 +318,8 @@ namespace Jellyfin.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind to unix socket (only on macOS and Linux)
|
// Bind to unix socket (only on unix systems)
|
||||||
if (startupConfig.UseUnixSocket() && !RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
if (startupConfig.UseUnixSocket() && Environment.OSVersion.Platform == PlatformID.Unix)
|
||||||
{
|
{
|
||||||
var socketPath = startupConfig.GetUnixSocketPath();
|
var socketPath = startupConfig.GetUnixSocketPath();
|
||||||
if (string.IsNullOrEmpty(socketPath))
|
if (string.IsNullOrEmpty(socketPath))
|
||||||
|
@ -404,7 +404,7 @@ namespace Jellyfin.Server
|
||||||
{
|
{
|
||||||
if (options.DataDir != null
|
if (options.DataDir != null
|
||||||
|| Directory.Exists(Path.Combine(dataDir, "config"))
|
|| Directory.Exists(Path.Combine(dataDir, "config"))
|
||||||
|| RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|| OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
// Hang config folder off already set dataDir
|
// Hang config folder off already set dataDir
|
||||||
configDir = Path.Combine(dataDir, "config");
|
configDir = Path.Combine(dataDir, "config");
|
||||||
|
@ -442,7 +442,7 @@ namespace Jellyfin.Server
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(cacheDir))
|
if (string.IsNullOrEmpty(cacheDir))
|
||||||
{
|
{
|
||||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
if (OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
// Hang cache folder off already set dataDir
|
// Hang cache folder off already set dataDir
|
||||||
cacheDir = Path.Combine(dataDir, "cache");
|
cacheDir = Path.Combine(dataDir, "cache");
|
||||||
|
|
|
@ -143,8 +143,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hybrid VPP tonemapping for QSV with VAAPI
|
// Hybrid VPP tonemapping for QSV with VAAPI
|
||||||
var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
if (OperatingSystem.IsLinux() && string.Equals(options.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
|
||||||
if (isLinux && string.Equals(options.HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
{
|
||||||
// Limited to HEVC for now since the filter doesn't accept master data from VP9.
|
// Limited to HEVC for now since the filter doesn't accept master data from VP9.
|
||||||
return IsColorDepth10(state)
|
return IsColorDepth10(state)
|
||||||
|
@ -503,9 +502,9 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
var isQsvEncoder = outputVideoCodec.IndexOf("qsv", StringComparison.OrdinalIgnoreCase) != -1;
|
var isQsvEncoder = outputVideoCodec.IndexOf("qsv", StringComparison.OrdinalIgnoreCase) != -1;
|
||||||
var isNvdecDecoder = videoDecoder.Contains("cuda", StringComparison.OrdinalIgnoreCase);
|
var isNvdecDecoder = videoDecoder.Contains("cuda", StringComparison.OrdinalIgnoreCase);
|
||||||
var isCuvidHevcDecoder = videoDecoder.Contains("hevc_cuvid", StringComparison.OrdinalIgnoreCase);
|
var isCuvidHevcDecoder = videoDecoder.Contains("hevc_cuvid", StringComparison.OrdinalIgnoreCase);
|
||||||
var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
var isWindows = OperatingSystem.IsWindows();
|
||||||
var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
var isLinux = OperatingSystem.IsLinux();
|
||||||
var isMacOS = RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
|
var isMacOS = OperatingSystem.IsMacOS();
|
||||||
var isTonemappingSupported = IsTonemappingSupported(state, encodingOptions);
|
var isTonemappingSupported = IsTonemappingSupported(state, encodingOptions);
|
||||||
var isVppTonemappingSupported = IsVppTonemappingSupported(state, encodingOptions);
|
var isVppTonemappingSupported = IsVppTonemappingSupported(state, encodingOptions);
|
||||||
|
|
||||||
|
@ -1983,7 +1982,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
var videoSizeParam = string.Empty;
|
var videoSizeParam = string.Empty;
|
||||||
var videoDecoder = GetHardwareAcceleratedVideoDecoder(state, options) ?? string.Empty;
|
var videoDecoder = GetHardwareAcceleratedVideoDecoder(state, options) ?? string.Empty;
|
||||||
var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
var isLinux = OperatingSystem.IsLinux();
|
||||||
|
|
||||||
var isVaapiDecoder = videoDecoder.IndexOf("vaapi", StringComparison.OrdinalIgnoreCase) != -1;
|
var isVaapiDecoder = videoDecoder.IndexOf("vaapi", StringComparison.OrdinalIgnoreCase) != -1;
|
||||||
var isVaapiH264Encoder = outputVideoCodec.IndexOf("h264_vaapi", StringComparison.OrdinalIgnoreCase) != -1;
|
var isVaapiH264Encoder = outputVideoCodec.IndexOf("h264_vaapi", StringComparison.OrdinalIgnoreCase) != -1;
|
||||||
|
@ -2528,7 +2527,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
var isCuvidHevcDecoder = videoDecoder.Contains("hevc_cuvid", StringComparison.OrdinalIgnoreCase);
|
var isCuvidHevcDecoder = videoDecoder.Contains("hevc_cuvid", StringComparison.OrdinalIgnoreCase);
|
||||||
var isLibX264Encoder = outputVideoCodec.IndexOf("libx264", StringComparison.OrdinalIgnoreCase) != -1;
|
var isLibX264Encoder = outputVideoCodec.IndexOf("libx264", StringComparison.OrdinalIgnoreCase) != -1;
|
||||||
var isLibX265Encoder = outputVideoCodec.IndexOf("libx265", StringComparison.OrdinalIgnoreCase) != -1;
|
var isLibX265Encoder = outputVideoCodec.IndexOf("libx265", StringComparison.OrdinalIgnoreCase) != -1;
|
||||||
var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
var isLinux = OperatingSystem.IsLinux();
|
||||||
var isColorDepth10 = IsColorDepth10(state);
|
var isColorDepth10 = IsColorDepth10(state);
|
||||||
var isTonemappingSupported = IsTonemappingSupported(state, options);
|
var isTonemappingSupported = IsTonemappingSupported(state, options);
|
||||||
var isVppTonemappingSupported = IsVppTonemappingSupported(state, options);
|
var isVppTonemappingSupported = IsVppTonemappingSupported(state, options);
|
||||||
|
@ -3572,8 +3571,8 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string GetHwaccelType(EncodingJobInfo state, EncodingOptions options, string videoCodec, bool isColorDepth10)
|
public string GetHwaccelType(EncodingJobInfo state, EncodingOptions options, string videoCodec, bool isColorDepth10)
|
||||||
{
|
{
|
||||||
var isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
var isWindows = OperatingSystem.IsWindows();
|
||||||
var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
var isLinux = OperatingSystem.IsLinux();
|
||||||
var isWindows8orLater = Environment.OSVersion.Version.Major > 6 || (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor > 1);
|
var isWindows8orLater = Environment.OSVersion.Version.Major > 6 || (Environment.OSVersion.Version.Major == 6 && Environment.OSVersion.Version.Minor > 1);
|
||||||
var isDxvaSupported = _mediaEncoder.SupportsHwaccel("dxva2") || _mediaEncoder.SupportsHwaccel("d3d11va");
|
var isDxvaSupported = _mediaEncoder.SupportsHwaccel("dxva2") || _mediaEncoder.SupportsHwaccel("d3d11va");
|
||||||
var isCodecAvailable = options.HardwareDecodingCodecs.Contains(videoCodec, StringComparer.OrdinalIgnoreCase);
|
var isCodecAvailable = options.HardwareDecodingCodecs.Contains(videoCodec, StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
|
using System;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using AutoFixture;
|
using AutoFixture;
|
||||||
using AutoFixture.AutoMoq;
|
using AutoFixture.AutoMoq;
|
||||||
using Emby.Server.Implementations.IO;
|
using Emby.Server.Implementations.IO;
|
||||||
using MediaBrowser.Model.System;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Jellyfin.Server.Implementations.Tests.IO
|
namespace Jellyfin.Server.Implementations.Tests.IO
|
||||||
|
@ -31,7 +31,7 @@ namespace Jellyfin.Server.Implementations.Tests.IO
|
||||||
{
|
{
|
||||||
var generatedPath = _sut.MakeAbsolutePath(folderPath, filePath);
|
var generatedPath = _sut.MakeAbsolutePath(folderPath, filePath);
|
||||||
|
|
||||||
if (MediaBrowser.Common.System.OperatingSystem.Id == OperatingSystemId.Windows)
|
if (OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
var expectedWindowsPath = expectedAbsolutePath.Replace('/', '\\');
|
var expectedWindowsPath = expectedAbsolutePath.Replace('/', '\\');
|
||||||
Assert.Equal(expectedWindowsPath, generatedPath.Split(':')[1]);
|
Assert.Equal(expectedWindowsPath, generatedPath.Split(':')[1]);
|
||||||
|
@ -55,7 +55,7 @@ namespace Jellyfin.Server.Implementations.Tests.IO
|
||||||
[SkippableFact]
|
[SkippableFact]
|
||||||
public void GetFileInfo_DanglingSymlink_ExistsFalse()
|
public void GetFileInfo_DanglingSymlink_ExistsFalse()
|
||||||
{
|
{
|
||||||
Skip.If(RuntimeInformation.IsOSPlatform(OSPlatform.Windows));
|
Skip.If(OperatingSystem.IsWindows());
|
||||||
|
|
||||||
string testFileDir = Path.Combine(Path.GetTempPath(), "jellyfin-test-data");
|
string testFileDir = Path.Combine(Path.GetTempPath(), "jellyfin-test-data");
|
||||||
string testFileName = Path.Combine(testFileDir, Path.GetRandomFileName() + "-danglingsym.link");
|
string testFileName = Path.Combine(testFileDir, Path.GetRandomFileName() + "-danglingsym.link");
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
using System.Linq;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using MediaBrowser.Controller.Entities.Movies;
|
using MediaBrowser.Controller.Entities.Movies;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.System;
|
|
||||||
using MediaBrowser.XbmcMetadata.Savers;
|
using MediaBrowser.XbmcMetadata.Savers;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace Jellyfin.XbmcMetadata.Tests.Location
|
||||||
var path2 = "/media/movies/Avengers Endgame/movie.nfo";
|
var path2 = "/media/movies/Avengers Endgame/movie.nfo";
|
||||||
|
|
||||||
// uses ContainingFolderPath which uses Operating system specific paths
|
// uses ContainingFolderPath which uses Operating system specific paths
|
||||||
if (MediaBrowser.Common.System.OperatingSystem.Id == OperatingSystemId.Windows)
|
if (OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
movie.Path = movie.Path.Replace('/', '\\');
|
movie.Path = movie.Path.Replace('/', '\\');
|
||||||
path1 = path1.Replace('/', '\\');
|
path1 = path1.Replace('/', '\\');
|
||||||
|
@ -49,7 +49,7 @@ namespace Jellyfin.XbmcMetadata.Tests.Location
|
||||||
var path2 = "/media/movies/Avengers Endgame/VIDEO_TS/VIDEO_TS.nfo";
|
var path2 = "/media/movies/Avengers Endgame/VIDEO_TS/VIDEO_TS.nfo";
|
||||||
|
|
||||||
// uses ContainingFolderPath which uses Operating system specific paths
|
// uses ContainingFolderPath which uses Operating system specific paths
|
||||||
if (MediaBrowser.Common.System.OperatingSystem.Id == OperatingSystemId.Windows)
|
if (OperatingSystem.IsWindows())
|
||||||
{
|
{
|
||||||
movie.Path = movie.Path.Replace('/', '\\');
|
movie.Path = movie.Path.Replace('/', '\\');
|
||||||
path1 = path1.Replace('/', '\\');
|
path1 = path1.Replace('/', '\\');
|
||||||
|
|
|
@ -59,7 +59,7 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers
|
||||||
_localImageFileMetadata = new FileSystemMetadata()
|
_localImageFileMetadata = new FileSystemMetadata()
|
||||||
{
|
{
|
||||||
Exists = true,
|
Exists = true,
|
||||||
FullName = MediaBrowser.Common.System.OperatingSystem.Id == OperatingSystemId.Windows ?
|
FullName = OperatingSystem.IsWindows() ?
|
||||||
"C:\\media\\movies\\Justice League (2017).jpg"
|
"C:\\media\\movies\\Justice League (2017).jpg"
|
||||||
: "/media/movies/Justice League (2017).jpg"
|
: "/media/movies/Justice League (2017).jpg"
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user