Switch to using declarations in MediaBrowser.Providers

This commit is contained in:
Patrick Barron 2021-02-25 20:38:18 -05:00
parent c54ca489f1
commit 9413d974f3
4 changed files with 149 additions and 183 deletions

View File

@ -69,58 +69,52 @@ namespace MediaBrowser.Providers.Music
private IEnumerable<RemoteSearchResult> GetResultsFromResponse(Stream stream) private IEnumerable<RemoteSearchResult> GetResultsFromResponse(Stream stream)
{ {
using (var oReader = new StreamReader(stream, Encoding.UTF8)) using var oReader = new StreamReader(stream, Encoding.UTF8);
var settings = new XmlReaderSettings()
{ {
var settings = new XmlReaderSettings() ValidationType = ValidationType.None,
{ CheckCharacters = false,
ValidationType = ValidationType.None, IgnoreProcessingInstructions = true,
CheckCharacters = false, IgnoreComments = true
IgnoreProcessingInstructions = true, };
IgnoreComments = true
};
using (var reader = XmlReader.Create(oReader, settings)) using var reader = XmlReader.Create(oReader, settings);
{ reader.MoveToContent();
reader.MoveToContent(); reader.Read();
reader.Read();
// Loop through each element // Loop through each element
while (!reader.EOF && reader.ReadState == ReadState.Interactive) while (!reader.EOF && reader.ReadState == ReadState.Interactive)
{
if (reader.NodeType == XmlNodeType.Element)
{
switch (reader.Name)
{ {
if (reader.NodeType == XmlNodeType.Element) case "artist-list":
{ {
switch (reader.Name) if (reader.IsEmptyElement)
{ {
case "artist-list": reader.Read();
{ continue;
if (reader.IsEmptyElement)
{
reader.Read();
continue;
}
using (var subReader = reader.ReadSubtree())
{
return ParseArtistList(subReader).ToList();
}
}
default:
{
reader.Skip();
break;
}
} }
using var subReader = reader.ReadSubtree();
return ParseArtistList(subReader).ToList();
} }
else
default:
{ {
reader.Read(); reader.Skip();
break;
} }
} }
}
return Enumerable.Empty<RemoteSearchResult>(); else
{
reader.Read();
} }
} }
return Enumerable.Empty<RemoteSearchResult>();
} }
private IEnumerable<RemoteSearchResult> ParseArtistList(XmlReader reader) private IEnumerable<RemoteSearchResult> ParseArtistList(XmlReader reader)
@ -145,13 +139,11 @@ namespace MediaBrowser.Providers.Music
var mbzId = reader.GetAttribute("id"); var mbzId = reader.GetAttribute("id");
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
var artist = ParseArtist(subReader, mbzId);
if (artist != null)
{ {
var artist = ParseArtist(subReader, mbzId); yield return artist;
if (artist != null)
{
yield return artist;
}
} }
break; break;

View File

@ -128,53 +128,49 @@ namespace MediaBrowser.Providers.Music
private IEnumerable<RemoteSearchResult> GetResultsFromResponse(Stream stream) private IEnumerable<RemoteSearchResult> GetResultsFromResponse(Stream stream)
{ {
using (var oReader = new StreamReader(stream, Encoding.UTF8)) using var oReader = new StreamReader(stream, Encoding.UTF8);
var settings = new XmlReaderSettings()
{ {
var settings = new XmlReaderSettings() ValidationType = ValidationType.None,
CheckCharacters = false,
IgnoreProcessingInstructions = true,
IgnoreComments = true
};
using var reader = XmlReader.Create(oReader, settings);
var results = ReleaseResult.Parse(reader);
return results.Select(i =>
{
var result = new RemoteSearchResult
{ {
ValidationType = ValidationType.None, Name = i.Title,
CheckCharacters = false, ProductionYear = i.Year
IgnoreProcessingInstructions = true,
IgnoreComments = true
}; };
using (var reader = XmlReader.Create(oReader, settings)) if (i.Artists.Count > 0)
{ {
var results = ReleaseResult.Parse(reader); result.AlbumArtist = new RemoteSearchResult
return results.Select(i =>
{ {
var result = new RemoteSearchResult SearchProviderName = Name,
{ Name = i.Artists[0].Item1
Name = i.Title, };
ProductionYear = i.Year
};
if (i.Artists.Count > 0) result.AlbumArtist.SetProviderId(MetadataProvider.MusicBrainzArtist, i.Artists[0].Item2);
{
result.AlbumArtist = new RemoteSearchResult
{
SearchProviderName = Name,
Name = i.Artists[0].Item1
};
result.AlbumArtist.SetProviderId(MetadataProvider.MusicBrainzArtist, i.Artists[0].Item2);
}
if (!string.IsNullOrWhiteSpace(i.ReleaseId))
{
result.SetProviderId(MetadataProvider.MusicBrainzAlbum, i.ReleaseId);
}
if (!string.IsNullOrWhiteSpace(i.ReleaseGroupId))
{
result.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, i.ReleaseGroupId);
}
return result;
});
} }
}
if (!string.IsNullOrWhiteSpace(i.ReleaseId))
{
result.SetProviderId(MetadataProvider.MusicBrainzAlbum, i.ReleaseId);
}
if (!string.IsNullOrWhiteSpace(i.ReleaseGroupId))
{
result.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, i.ReleaseGroupId);
}
return result;
});
} }
/// <inheritdoc /> /// <inheritdoc />
@ -339,10 +335,8 @@ namespace MediaBrowser.Providers.Music
continue; continue;
} }
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
{ return ParseReleaseList(subReader).ToList();
return ParseReleaseList(subReader).ToList();
}
} }
default: default:
@ -383,13 +377,11 @@ namespace MediaBrowser.Providers.Music
var releaseId = reader.GetAttribute("id"); var releaseId = reader.GetAttribute("id");
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
var release = ParseRelease(subReader, releaseId);
if (release != null)
{ {
var release = ParseRelease(subReader, releaseId); yield return release;
if (release != null)
{
yield return release;
}
} }
break; break;
@ -460,14 +452,12 @@ namespace MediaBrowser.Providers.Music
case "artist-credit": case "artist-credit":
{ {
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
{ var artist = ParseArtistCredit(subReader);
var artist = ParseArtistCredit(subReader);
if (!string.IsNullOrEmpty(artist.Item1)) if (!string.IsNullOrEmpty(artist.Item1))
{ {
result.Artists.Add(artist); result.Artists.Add(artist);
}
} }
break; break;
@ -505,12 +495,10 @@ namespace MediaBrowser.Providers.Music
switch (reader.Name) switch (reader.Name)
{ {
case "name-credit": case "name-credit":
{ {
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
{ return ParseArtistNameCredit(subReader);
return ParseArtistNameCredit(subReader); }
}
}
default: default:
{ {
@ -545,10 +533,8 @@ namespace MediaBrowser.Providers.Music
case "artist": case "artist":
{ {
var id = reader.GetAttribute("id"); var id = reader.GetAttribute("id");
using (var subReader = reader.ReadSubtree()) using var subReader = reader.ReadSubtree();
{ return ParseArtistArtistCredit(subReader, id);
return ParseArtistArtistCredit(subReader, id);
}
} }
default: default:
@ -647,47 +633,43 @@ namespace MediaBrowser.Providers.Music
IgnoreComments = true IgnoreComments = true
}; };
using (var reader = XmlReader.Create(oReader, settings)) using var reader = XmlReader.Create(oReader, settings);
reader.MoveToContent();
reader.Read();
// Loop through each element
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
{ {
reader.MoveToContent(); if (reader.NodeType == XmlNodeType.Element)
reader.Read();
// Loop through each element
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
{ {
if (reader.NodeType == XmlNodeType.Element) switch (reader.Name)
{ {
switch (reader.Name) case "release-group-list":
{ {
case "release-group-list": if (reader.IsEmptyElement)
{ {
if (reader.IsEmptyElement) reader.Read();
{ continue;
reader.Read();
continue;
}
using (var subReader = reader.ReadSubtree())
{
return GetFirstReleaseGroupId(subReader);
}
} }
default: using var subReader = reader.ReadSubtree();
{ return GetFirstReleaseGroupId(subReader);
reader.Skip(); }
break;
} default:
{
reader.Skip();
break;
} }
} }
else
{
reader.Read();
}
} }
else
return null; {
reader.Read();
}
} }
return null;
} }
private string GetFirstReleaseGroupId(XmlReader reader) private string GetFirstReleaseGroupId(XmlReader reader)

View File

@ -171,25 +171,21 @@ namespace MediaBrowser.Providers.Studios
public IEnumerable<string> GetAvailableImages(string file) public IEnumerable<string> GetAvailableImages(string file)
{ {
using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) using var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
using var reader = new StreamReader(fileStream);
var lines = new List<string>();
while (!reader.EndOfStream)
{ {
using (var reader = new StreamReader(fileStream)) var text = reader.ReadLine();
if (!string.IsNullOrWhiteSpace(text))
{ {
var lines = new List<string>(); lines.Add(text);
while (!reader.EndOfStream)
{
var text = reader.ReadLine();
if (!string.IsNullOrWhiteSpace(text))
{
lines.Add(text);
}
}
return lines;
} }
} }
return lines;
} }
} }
} }

View File

@ -187,31 +187,29 @@ namespace MediaBrowser.Providers.Subtitles
{ {
var saveInMediaFolder = libraryOptions.SaveSubtitlesWithMedia; var saveInMediaFolder = libraryOptions.SaveSubtitlesWithMedia;
using (var stream = response.Stream) using var stream = response.Stream;
using (var memoryStream = new MemoryStream()) using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream).ConfigureAwait(false);
memoryStream.Position = 0;
var savePaths = new List<string>();
var saveFileName = Path.GetFileNameWithoutExtension(video.Path) + "." + response.Language.ToLowerInvariant();
if (response.IsForced)
{ {
await stream.CopyToAsync(memoryStream).ConfigureAwait(false); saveFileName += ".forced";
memoryStream.Position = 0;
var savePaths = new List<string>();
var saveFileName = Path.GetFileNameWithoutExtension(video.Path) + "." + response.Language.ToLowerInvariant();
if (response.IsForced)
{
saveFileName += ".forced";
}
saveFileName += "." + response.Format.ToLowerInvariant();
if (saveInMediaFolder)
{
savePaths.Add(Path.Combine(video.ContainingFolderPath, saveFileName));
}
savePaths.Add(Path.Combine(video.GetInternalMetadataPath(), saveFileName));
await TrySaveToFiles(memoryStream, savePaths).ConfigureAwait(false);
} }
saveFileName += "." + response.Format.ToLowerInvariant();
if (saveInMediaFolder)
{
savePaths.Add(Path.Combine(video.ContainingFolderPath, saveFileName));
}
savePaths.Add(Path.Combine(video.GetInternalMetadataPath(), saveFileName));
await TrySaveToFiles(memoryStream, savePaths).ConfigureAwait(false);
} }
private async Task TrySaveToFiles(Stream stream, List<string> savePaths) private async Task TrySaveToFiles(Stream stream, List<string> savePaths)
@ -228,10 +226,8 @@ namespace MediaBrowser.Providers.Subtitles
{ {
Directory.CreateDirectory(Path.GetDirectoryName(savePath)); Directory.CreateDirectory(Path.GetDirectoryName(savePath));
using (var fs = new FileStream(savePath, FileMode.Create, FileAccess.Write, FileShare.Read, FileStreamBufferSize, true)) using var fs = new FileStream(savePath, FileMode.Create, FileAccess.Write, FileShare.Read, FileStreamBufferSize, true);
{ await stream.CopyToAsync(fs).ConfigureAwait(false);
await stream.CopyToAsync(fs).ConfigureAwait(false);
}
return; return;
} }