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:
martinek-stepan
2020-12-31 12:09:25 +01:00
committed by GitHub
parent 1327bd9f7d
commit cc92f7afe5
13 changed files with 42 additions and 26 deletions

View File

@@ -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)
{

View File

@@ -19,6 +19,7 @@
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Nullable>enable</Nullable>
</PropertyGroup>
<!-- Code Analyzers-->

View File

@@ -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);
}

View File

@@ -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))
{

View File

@@ -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))
{

View File

@@ -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);
}
}

View File

@@ -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)

View File

@@ -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);

View File

@@ -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)
{