mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-26 03:55:01 +01:00
update notification styles
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using System.Globalization;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.IO;
|
||||
using MediaBrowser.Controller.Channels;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
@@ -299,8 +300,25 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
? null
|
||||
: _userManager.GetUserById(new Guid(query.UserId));
|
||||
|
||||
var itemsResult = await GetChannelItems(channelProvider, user, query.FolderId, providerStartIndex, providerLimit, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
ChannelItemSortField? sortField = null;
|
||||
ChannelItemSortField parsedField;
|
||||
if (query.SortBy.Length == 1 &&
|
||||
Enum.TryParse(query.SortBy[0], true, out parsedField))
|
||||
{
|
||||
sortField = parsedField;
|
||||
}
|
||||
|
||||
var sortDescending = query.SortOrder.HasValue && query.SortOrder.Value == SortOrder.Descending;
|
||||
|
||||
var itemsResult = await GetChannelItems(channelProvider,
|
||||
user,
|
||||
query.FolderId,
|
||||
providerStartIndex,
|
||||
providerLimit,
|
||||
sortField,
|
||||
sortDescending,
|
||||
cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
var providerTotalRecordCount = providerLimit.HasValue ? itemsResult.TotalRecordCount : null;
|
||||
|
||||
@@ -322,9 +340,16 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
}
|
||||
|
||||
private readonly SemaphoreSlim _resourcePool = new SemaphoreSlim(1, 1);
|
||||
private async Task<ChannelItemResult> GetChannelItems(IChannel channel, User user, string folderId, int? startIndex, int? limit, CancellationToken cancellationToken)
|
||||
private async Task<ChannelItemResult> GetChannelItems(IChannel channel,
|
||||
User user,
|
||||
string folderId,
|
||||
int? startIndex,
|
||||
int? limit,
|
||||
ChannelItemSortField? sortField,
|
||||
bool sortDescending,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var cachePath = GetChannelDataCachePath(channel, user, folderId);
|
||||
var cachePath = GetChannelDataCachePath(channel, user, folderId, sortField, sortDescending);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -376,7 +401,9 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
{
|
||||
User = user,
|
||||
StartIndex = startIndex,
|
||||
Limit = limit
|
||||
Limit = limit,
|
||||
SortBy = sortField,
|
||||
SortDescending = sortDescending
|
||||
};
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(folderId))
|
||||
@@ -415,7 +442,11 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
}
|
||||
}
|
||||
|
||||
private string GetChannelDataCachePath(IChannel channel, User user, string folderId)
|
||||
private string GetChannelDataCachePath(IChannel channel,
|
||||
User user,
|
||||
string folderId,
|
||||
ChannelItemSortField? sortField,
|
||||
bool sortDescending)
|
||||
{
|
||||
var channelId = GetInternalChannelId(channel.Name).ToString("N");
|
||||
|
||||
@@ -423,7 +454,26 @@ namespace MediaBrowser.Server.Implementations.Channels
|
||||
|
||||
var version = string.IsNullOrWhiteSpace(channel.DataVersion) ? "0" : channel.DataVersion;
|
||||
|
||||
return Path.Combine(_config.ApplicationPaths.CachePath, "channels", channelId, version, folderKey, user.Id.ToString("N") + ".json");
|
||||
var filename = user.Id.ToString("N");
|
||||
var hashfilename = false;
|
||||
|
||||
if (sortField.HasValue)
|
||||
{
|
||||
filename += "-sortField-" + sortField.Value;
|
||||
hashfilename = true;
|
||||
}
|
||||
if (sortDescending)
|
||||
{
|
||||
filename += "-sortDescending";
|
||||
hashfilename = true;
|
||||
}
|
||||
|
||||
if (hashfilename)
|
||||
{
|
||||
filename = filename.GetMD5().ToString("N");
|
||||
}
|
||||
|
||||
return Path.Combine(_config.ApplicationPaths.CachePath, "channels", channelId, version, folderKey, filename + ".json");
|
||||
}
|
||||
|
||||
private async Task<QueryResult<BaseItemDto>> GetReturnItems(IEnumerable<BaseItem> items, int? totalCountFromProvider, User user, ChannelItemQuery query, CancellationToken cancellationToken)
|
||||
|
||||
@@ -21,6 +21,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
|
||||
namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
{
|
||||
@@ -37,6 +38,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
private readonly IUserDataManager _userDataManager;
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
private readonly ITaskManager _taskManager;
|
||||
private readonly IJsonSerializer _json;
|
||||
|
||||
private readonly LiveTvDtoService _tvDtoService;
|
||||
|
||||
@@ -51,7 +53,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
private readonly SemaphoreSlim _refreshSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
public LiveTvManager(IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager, ILibraryManager libraryManager, ITaskManager taskManager)
|
||||
public LiveTvManager(IServerConfigurationManager config, IFileSystem fileSystem, ILogger logger, IItemRepository itemRepo, IImageProcessor imageProcessor, IUserDataManager userDataManager, IDtoService dtoService, IUserManager userManager, ILibraryManager libraryManager, ITaskManager taskManager, IJsonSerializer json)
|
||||
{
|
||||
_config = config;
|
||||
_fileSystem = fileSystem;
|
||||
@@ -60,6 +62,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
_userManager = userManager;
|
||||
_libraryManager = libraryManager;
|
||||
_taskManager = taskManager;
|
||||
_json = json;
|
||||
_userDataManager = userDataManager;
|
||||
|
||||
_tvDtoService = new LiveTvDtoService(dtoService, userDataManager, imageProcessor, logger, _itemRepo);
|
||||
@@ -294,6 +297,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
var result = await service.GetRecordingStream(recording.Id, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
_logger.Debug("Live stream info: " + _json.SerializeToString(result));
|
||||
|
||||
if (!string.IsNullOrEmpty(result.Id))
|
||||
{
|
||||
_openStreams.AddOrUpdate(result.Id, result, (key, info) => result);
|
||||
@@ -327,6 +332,8 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
|
||||
var result = await service.GetChannelStream(channel.ExternalId, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
_logger.Debug("Live stream info: " + _json.SerializeToString(result));
|
||||
|
||||
if (!string.IsNullOrEmpty(result.Id))
|
||||
{
|
||||
_openStreams.AddOrUpdate(result.Id, result, (key, info) => result);
|
||||
@@ -1525,6 +1532,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||
try
|
||||
{
|
||||
await service.CloseLiveStream(id, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
LiveStreamInfo removed;
|
||||
_openStreams.TryRemove(id, out removed);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user