|
|
|
@ -207,7 +207,7 @@ namespace MediaBrowser.Providers.Subtitles
|
|
|
|
|
{
|
|
|
|
|
var mediaFolderPath = Path.GetFullPath(Path.Combine(video.ContainingFolderPath, saveFileName));
|
|
|
|
|
// TODO: Add some error handling to the API user: return BadRequest("Could not save subtitle, bad path.");
|
|
|
|
|
if (mediaFolderPath.StartsWith(video.ContainingFolderPath))
|
|
|
|
|
if (mediaFolderPath.StartsWith(video.ContainingFolderPath, StringComparison.Ordinal))
|
|
|
|
|
{
|
|
|
|
|
savePaths.Add(mediaFolderPath);
|
|
|
|
|
}
|
|
|
|
@ -216,7 +216,7 @@ namespace MediaBrowser.Providers.Subtitles
|
|
|
|
|
var internalPath = Path.GetFullPath(Path.Combine(video.GetInternalMetadataPath(), saveFileName));
|
|
|
|
|
|
|
|
|
|
// TODO: Add some error to the user: return BadRequest("Could not save subtitle, bad path.");
|
|
|
|
|
if (internalPath.StartsWith(video.GetInternalMetadataPath()))
|
|
|
|
|
if (internalPath.StartsWith(video.GetInternalMetadataPath(), StringComparison.Ordinal))
|
|
|
|
|
{
|
|
|
|
|
savePaths.Add(internalPath);
|
|
|
|
|
}
|
|
|
|
@ -234,7 +234,7 @@ namespace MediaBrowser.Providers.Subtitles
|
|
|
|
|
|
|
|
|
|
private async Task TrySaveToFiles(Stream stream, List<string> savePaths)
|
|
|
|
|
{
|
|
|
|
|
Exception exceptionToThrow = null;
|
|
|
|
|
List<Exception> exs = null;
|
|
|
|
|
|
|
|
|
|
foreach (var savePath in savePaths)
|
|
|
|
|
{
|
|
|
|
@ -256,7 +256,7 @@ namespace MediaBrowser.Providers.Subtitles
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
exceptionToThrow ??= ex;
|
|
|
|
|
(exs ??= new List<Exception>()).Add(ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
@ -266,9 +266,9 @@ namespace MediaBrowser.Providers.Subtitles
|
|
|
|
|
stream.Position = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (exceptionToThrow != null)
|
|
|
|
|
if (exs != null)
|
|
|
|
|
{
|
|
|
|
|
throw exceptionToThrow;
|
|
|
|
|
throw new AggregateException(exs);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|