normalize media source container

This commit is contained in:
Luke Pulverenti 2017-08-23 13:27:53 -04:00
parent 6736f79abe
commit 2d0c98733a

View File

@ -369,6 +369,8 @@ namespace Emby.Server.Implementations.Dto
{
dto.MediaSources = _mediaSourceManager().GetStaticMediaSources(hasMediaSources, true, user);
}
NormalizeMediaSourceContainers(dto);
}
}
@ -413,6 +415,45 @@ namespace Emby.Server.Implementations.Dto
return dto;
}
private void NormalizeMediaSourceContainers(BaseItemDto dto)
{
foreach (var mediaSource in dto.MediaSources)
{
var container = mediaSource.Container;
if (string.IsNullOrWhiteSpace(container))
{
continue;
}
var containers = container.Split(new[] { ',' });
if (containers.Length < 2)
{
continue;
}
var path = mediaSource.Path;
string fileExtensionContainer = null;
if (!string.IsNullOrWhiteSpace(path))
{
path = Path.GetExtension(path);
if (!string.IsNullOrWhiteSpace(path))
{
path = Path.GetExtension(path);
if (!string.IsNullOrWhiteSpace(path))
{
path = path.TrimStart('.');
}
if (!string.IsNullOrWhiteSpace(path) && containers.Contains(path, StringComparer.OrdinalIgnoreCase))
{
fileExtensionContainer = path;
}
}
}
mediaSource.Container = fileExtensionContainer ?? containers[0];
}
}
public BaseItemDto GetItemByNameDto(BaseItem item, DtoOptions options, List<BaseItem> taggedItems, Dictionary<string, SyncedItemProgress> syncProgress, User user = null)
{
var dto = GetBaseItemDtoInternal(item, options, user);