mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-31 21:08:27 +01:00
Enable nullable for MediaBrowser.XbmcMetadata project (#4612)
Co-authored-by: Cody Robibero <cody@robibe.ro> Co-authored-by: Stepan <ste.martinek+git@gmail.com>
This commit is contained in:
@@ -41,7 +41,7 @@ namespace MediaBrowser.XbmcMetadata
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
private void OnUserDataSaved(object sender, UserDataSaveEventArgs e)
|
||||
private void OnUserDataSaved(object? sender, UserDataSaveEventArgs e)
|
||||
{
|
||||
if (e.SaveReason == UserDataSaveReason.PlaybackFinished || e.SaveReason == UserDataSaveReason.TogglePlayed || e.SaveReason == UserDataSaveReason.UpdateUserRating)
|
||||
{
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Code Analyzers-->
|
||||
|
||||
@@ -37,6 +37,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
Logger = logger;
|
||||
_config = config;
|
||||
ProviderManager = providerManager;
|
||||
_validProviderIds = new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
protected CultureInfo UsCulture { get; } = new CultureInfo("en-US");
|
||||
@@ -72,7 +73,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
throw new ArgumentException("The metadata file was empty or null.", nameof(metadataFile));
|
||||
}
|
||||
|
||||
_validProviderIds = _validProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
_validProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
var idInfos = ProviderManager.GetExternalIdInfos(item.Item);
|
||||
|
||||
@@ -376,7 +377,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
}
|
||||
|
||||
return null;
|
||||
}).Where(i => i.HasValue).Select(i => i.Value).ToArray();
|
||||
}).OfType<MetadataField>().ToArray();
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -711,10 +712,10 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
|
||||
default:
|
||||
string readerName = reader.Name;
|
||||
if (_validProviderIds.TryGetValue(readerName, out string providerIdValue))
|
||||
if (_validProviderIds.TryGetValue(readerName, out string? providerIdValue))
|
||||
{
|
||||
var id = reader.ReadElementContentAsString();
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
if (!string.IsNullOrWhiteSpace(providerIdValue) && !string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
item.SetProviderId(providerIdValue, id);
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
{
|
||||
case "id":
|
||||
{
|
||||
string imdbId = reader.GetAttribute("IMDB");
|
||||
string tmdbId = reader.GetAttribute("TMDB");
|
||||
string? imdbId = reader.GetAttribute("IMDB");
|
||||
string? tmdbId = reader.GetAttribute("TMDB");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(imdbId))
|
||||
{
|
||||
|
||||
@@ -40,9 +40,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers
|
||||
{
|
||||
case "id":
|
||||
{
|
||||
string imdbId = reader.GetAttribute("IMDB");
|
||||
string tmdbId = reader.GetAttribute("TMDB");
|
||||
string tvdbId = reader.GetAttribute("TVDB");
|
||||
string? imdbId = reader.GetAttribute("IMDB");
|
||||
string? tmdbId = reader.GetAttribute("TMDB");
|
||||
string? tvdbId = reader.GetAttribute("TVDB");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(tvdbId))
|
||||
{
|
||||
|
||||
@@ -74,6 +74,6 @@ namespace MediaBrowser.XbmcMetadata.Providers
|
||||
|
||||
protected abstract void Fetch(MetadataResult<T> result, string path, CancellationToken cancellationToken);
|
||||
|
||||
protected abstract FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService);
|
||||
protected abstract FileSystemMetadata? GetXmlFile(ItemInfo info, IDirectoryService directoryService);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace MediaBrowser.XbmcMetadata.Providers
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
||||
protected override FileSystemMetadata? GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
||||
{
|
||||
return MovieNfoSaver.GetMovieSavePaths(info)
|
||||
.Select(directoryService.GetFile)
|
||||
|
||||
@@ -200,7 +200,8 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
|
||||
private void SaveToFile(Stream stream, string path)
|
||||
{
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
||||
var directory = Path.GetDirectoryName(path) ?? throw new ArgumentException($"Provided path ({path}) is not valid.", nameof(path));
|
||||
Directory.CreateDirectory(directory);
|
||||
|
||||
// On Windows, savint the file will fail if the file is hidden or readonly
|
||||
FileSystem.SetAttributes(path, false, false);
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override string GetLocalSavePath(BaseItem item)
|
||||
=> GetMovieSavePaths(new ItemInfo(item)).FirstOrDefault();
|
||||
=> GetMovieSavePaths(new ItemInfo(item)).FirstOrDefault() ?? Path.ChangeExtension(item.Path, ".nfo");
|
||||
|
||||
internal static IEnumerable<string> GetMovieSavePaths(ItemInfo item)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user