mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
fix recording icons
This commit is contained in:
parent
73c772637e
commit
b992659f24
@ -139,11 +139,13 @@ namespace MediaBrowser.Common.Implementations.Networking
|
|||||||
IPAddress address;
|
IPAddress address;
|
||||||
if (IPAddress.TryParse(endpoint, out address))
|
if (IPAddress.TryParse(endpoint, out address))
|
||||||
{
|
{
|
||||||
|
var addressString = address.ToString();
|
||||||
|
|
||||||
int lengthMatch = 100;
|
int lengthMatch = 100;
|
||||||
if (address.AddressFamily == AddressFamily.InterNetwork)
|
if (address.AddressFamily == AddressFamily.InterNetwork)
|
||||||
{
|
{
|
||||||
lengthMatch = 4;
|
lengthMatch = 4;
|
||||||
if (IsInPrivateAddressSpaceIpv4(endpoint))
|
if (IsInPrivateAddressSpaceIpv4(addressString))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -158,9 +160,9 @@ namespace MediaBrowser.Common.Implementations.Networking
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Should be even be doing this with ipv6?
|
// Should be even be doing this with ipv6?
|
||||||
if (endpoint.Length >= lengthMatch)
|
if (addressString.Length >= lengthMatch)
|
||||||
{
|
{
|
||||||
var prefix = endpoint.Substring(0, lengthMatch);
|
var prefix = addressString.Substring(0, lengthMatch);
|
||||||
|
|
||||||
if (GetLocalIpAddresses()
|
if (GetLocalIpAddresses()
|
||||||
.Any(i => i.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)))
|
.Any(i => i.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)))
|
||||||
@ -168,9 +170,8 @@ namespace MediaBrowser.Common.Implementations.Networking
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (resolveHost)
|
||||||
if (resolveHost && !IPAddress.TryParse(endpoint, out address))
|
|
||||||
{
|
{
|
||||||
Uri uri;
|
Uri uri;
|
||||||
if (Uri.TryCreate(endpoint, UriKind.RelativeOrAbsolute, out uri))
|
if (Uri.TryCreate(endpoint, UriKind.RelativeOrAbsolute, out uri))
|
||||||
|
@ -565,7 +565,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
isNew = true;
|
isNew = true;
|
||||||
}
|
}
|
||||||
item.ParentId = parentFolderId;
|
item.ParentId = parentFolderId;
|
||||||
|
|
||||||
item.ChannelType = channelInfo.ChannelType;
|
item.ChannelType = channelInfo.ChannelType;
|
||||||
item.ServiceName = serviceName;
|
item.ServiceName = serviceName;
|
||||||
item.Number = channelInfo.Number;
|
item.Number = channelInfo.Number;
|
||||||
@ -633,7 +633,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
forceUpdate = true;
|
forceUpdate = true;
|
||||||
}
|
}
|
||||||
item.ParentId = channel.Id;
|
item.ParentId = channel.Id;
|
||||||
|
|
||||||
//item.ChannelType = channelType;
|
//item.ChannelType = channelType;
|
||||||
if (!string.Equals(item.ServiceName, serviceName, StringComparison.Ordinal))
|
if (!string.Equals(item.ServiceName, serviceName, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
@ -781,7 +781,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
dataChanged = true;
|
dataChanged = true;
|
||||||
}
|
}
|
||||||
item.ParentId = parentFolderId;
|
item.ParentId = parentFolderId;
|
||||||
|
|
||||||
if (!item.HasImage(ImageType.Primary))
|
if (!item.HasImage(ImageType.Primary))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(info.ImagePath))
|
if (!string.IsNullOrWhiteSpace(info.ImagePath))
|
||||||
@ -847,7 +847,10 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
|
|
||||||
var dto = _dtoService.GetBaseItemDto(program, new DtoOptions(), user);
|
var dto = _dtoService.GetBaseItemDto(program, new DtoOptions(), user);
|
||||||
|
|
||||||
await AddRecordingInfo(new[] { dto }, cancellationToken).ConfigureAwait(false);
|
var list = new List<Tuple<BaseItemDto, string, string>>();
|
||||||
|
list.Add(new Tuple<BaseItemDto, string, string>(dto, program.ServiceName, program.ExternalId));
|
||||||
|
|
||||||
|
await AddRecordingInfo(list, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
@ -889,14 +892,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
var queryResult = _libraryManager.QueryItems(internalQuery);
|
var queryResult = _libraryManager.QueryItems(internalQuery);
|
||||||
|
|
||||||
var returnArray = queryResult.Items
|
var returnArray = queryResult.Items
|
||||||
.Select(i => _dtoService.GetBaseItemDto(i, options, user))
|
.Cast<LiveTvProgram>()
|
||||||
|
.Select(i => new Tuple<BaseItemDto, string, string>(_dtoService.GetBaseItemDto(i, options, user), i.ServiceName, i.ExternalId))
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
var result = new QueryResult<BaseItemDto>
|
var result = new QueryResult<BaseItemDto>
|
||||||
{
|
{
|
||||||
Items = returnArray,
|
Items = returnArray.Select(i => i.Item1).ToArray(),
|
||||||
TotalRecordCount = queryResult.TotalRecordCount
|
TotalRecordCount = queryResult.TotalRecordCount
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -968,14 +972,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
var user = _userManager.GetUserById(query.UserId);
|
var user = _userManager.GetUserById(query.UserId);
|
||||||
|
|
||||||
var returnArray = internalResult.Items
|
var returnArray = internalResult.Items
|
||||||
.Select(i => _dtoService.GetBaseItemDto(i, options, user))
|
.Select(i => new Tuple<BaseItemDto, string, string>(_dtoService.GetBaseItemDto(i, options, user), i.ServiceName, i.ExternalId))
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
await AddRecordingInfo(returnArray, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
var result = new QueryResult<BaseItemDto>
|
var result = new QueryResult<BaseItemDto>
|
||||||
{
|
{
|
||||||
Items = returnArray,
|
Items = returnArray.Select(i => i.Item1).ToArray(),
|
||||||
TotalRecordCount = internalResult.TotalRecordCount
|
TotalRecordCount = internalResult.TotalRecordCount
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1051,44 +1055,46 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
|||||||
}).Sum();
|
}).Sum();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task AddRecordingInfo(IEnumerable<BaseItemDto> programs, CancellationToken cancellationToken)
|
private async Task AddRecordingInfo(IEnumerable<Tuple<BaseItemDto, string, string>> programs, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var timers = new Dictionary<string, List<TimerInfo>>();
|
var timers = new Dictionary<string, List<TimerInfo>>();
|
||||||
|
|
||||||
foreach (var program in programs)
|
foreach (var programTuple in programs)
|
||||||
{
|
{
|
||||||
var internalProgram = GetInternalProgram(program.Id);
|
var program = programTuple.Item1;
|
||||||
|
var serviceName = programTuple.Item2;
|
||||||
|
var externalProgramId = programTuple.Item3;
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(internalProgram.ServiceName))
|
if (string.IsNullOrWhiteSpace(serviceName))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<TimerInfo> timerList;
|
List<TimerInfo> timerList;
|
||||||
if (!timers.TryGetValue(internalProgram.ServiceName, out timerList))
|
if (!timers.TryGetValue(serviceName, out timerList))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var tempTimers = await GetService(internalProgram.ServiceName).GetTimersAsync(cancellationToken).ConfigureAwait(false);
|
var tempTimers = await GetService(serviceName).GetTimersAsync(cancellationToken).ConfigureAwait(false);
|
||||||
timers[internalProgram.ServiceName] = timerList = tempTimers.ToList();
|
timers[serviceName] = timerList = tempTimers.ToList();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.ErrorException("Error getting timer infos", ex);
|
_logger.ErrorException("Error getting timer infos", ex);
|
||||||
timers[internalProgram.ServiceName] = timerList = new List<TimerInfo>();
|
timers[serviceName] = timerList = new List<TimerInfo>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var timer = timerList.FirstOrDefault(i => string.Equals(i.ProgramId, internalProgram.ExternalId, StringComparison.OrdinalIgnoreCase));
|
var timer = timerList.FirstOrDefault(i => string.Equals(i.ProgramId, externalProgramId, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
if (timer != null)
|
if (timer != null)
|
||||||
{
|
{
|
||||||
program.TimerId = _tvDtoService.GetInternalTimerId(internalProgram.ServiceName, timer.Id)
|
program.TimerId = _tvDtoService.GetInternalTimerId(serviceName, timer.Id)
|
||||||
.ToString("N");
|
.ToString("N");
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(timer.SeriesTimerId))
|
if (!string.IsNullOrEmpty(timer.SeriesTimerId))
|
||||||
{
|
{
|
||||||
program.SeriesTimerId = _tvDtoService.GetInternalSeriesTimerId(internalProgram.ServiceName, timer.SeriesTimerId)
|
program.SeriesTimerId = _tvDtoService.GetInternalSeriesTimerId(serviceName, timer.SeriesTimerId)
|
||||||
.ToString("N");
|
.ToString("N");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1059,7 +1059,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
|||||||
var tvItem = item as ILiveTvItem;
|
var tvItem = item as ILiveTvItem;
|
||||||
if (tvItem != null)
|
if (tvItem != null)
|
||||||
{
|
{
|
||||||
item.ForcedSortName = reader.GetString(43);
|
tvItem.ServiceName = reader.GetString(43);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user