update GetItems method

pull/1154/head
Luke Pulverenti 7 years ago
parent d21e8d3c33
commit 33014f77aa

@ -31,7 +31,6 @@ using Emby.Common.Implementations.Net;
using Emby.Common.Implementations.EnvironmentInfo;
using Emby.Common.Implementations.Threading;
using MediaBrowser.Common;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.Cryptography;
using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.Net;

@ -98,6 +98,11 @@ namespace Emby.Common.Implementations.Diagnostics
return _process.WaitForExit(timeMs);
}
public Task<bool> WaitForExitAsync(int timeMs)
{
return Task.FromResult(_process.WaitForExit(timeMs));
}
public void Dispose()
{
_process.Dispose();

@ -72,6 +72,7 @@
<Compile Include="IO\IsoManager.cs" />
<Compile Include="IO\LnkShortcutHandler.cs" />
<Compile Include="IO\ManagedFileSystem.cs" />
<Compile Include="IO\ProgressStream.cs" />
<Compile Include="IO\SharpCifsFileSystem.cs" />
<Compile Include="IO\SharpCifs\Config.cs" />
<Compile Include="IO\SharpCifs\Dcerpc\DcerpcBind.cs" />

@ -1,7 +1,6 @@
using System.Net.Sockets;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
@ -17,6 +16,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Emby.Common.Implementations.HttpClientManager;
using Emby.Common.Implementations.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Common;

@ -1,7 +1,7 @@
using System;
using System.IO;
namespace MediaBrowser.Common.IO
namespace Emby.Common.Implementations.IO
{
/// <summary>
/// Measures progress when reading from a stream or writing to one
@ -155,6 +155,21 @@ namespace MediaBrowser.Common.IO
return read;
}
public override int EndRead(IAsyncResult asyncResult)
{
var read = base.EndRead(asyncResult);
BytesProcessed += read;
double percent = BytesProcessed;
percent /= ReadLength ?? BaseStream.Length;
percent *= 100;
ProgressAction(percent);
return read;
}
/// <summary>
/// When overridden in a derived class, sets the position within the current stream.
/// </summary>
@ -194,6 +209,21 @@ namespace MediaBrowser.Common.IO
ProgressAction(percent);
}
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
var result = base.BeginWrite(buffer, offset, count, callback, state);
BytesProcessed += count;
double percent = BytesProcessed;
percent /= WriteLength;
percent *= 100;
ProgressAction(percent);
return result;
}
/// <summary>
/// Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources.
/// </summary>

@ -108,6 +108,18 @@ namespace Emby.Common.Implementations.Net
return completionSource.Task;
}
public IAsyncResult BeginSendFile(string path, byte[] preBuffer, byte[] postBuffer, AsyncCallback callback, object state)
{
var options = TransmitFileOptions.UseDefaultWorkerThread;
return Socket.BeginSendFile(path, preBuffer, postBuffer, options, new AsyncCallback(FileSendCallback), state);
}
public void EndSendFile(IAsyncResult result)
{
Socket.EndSendFile(result);
}
private void FileSendCallback(IAsyncResult ar)
{
// Retrieve the socket from the state object.

@ -5,7 +5,6 @@ using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;

@ -86,7 +86,7 @@ namespace Emby.Dlna.ContentDirectory
return HandleGetSystemUpdateID();
if (string.Equals(methodName, "Browse", StringComparison.OrdinalIgnoreCase))
return HandleBrowse(methodParams, user, deviceId).Result;
return HandleBrowse(methodParams, user, deviceId);
if (string.Equals(methodName, "X_GetFeatureList", StringComparison.OrdinalIgnoreCase))
return HandleXGetFeatureList();
@ -98,10 +98,10 @@ namespace Emby.Dlna.ContentDirectory
return HandleXSetBookmark(methodParams, user);
if (string.Equals(methodName, "Search", StringComparison.OrdinalIgnoreCase))
return HandleSearch(methodParams, user, deviceId).Result;
return HandleSearch(methodParams, user, deviceId);
if (string.Equals(methodName, "X_BrowseByLetter", StringComparison.OrdinalIgnoreCase))
return HandleX_BrowseByLetter(methodParams, user, deviceId).Result;
return HandleX_BrowseByLetter(methodParams, user, deviceId);
throw new ResourceNotFoundException("Unexpected control request name: " + methodName);
}
@ -203,7 +203,7 @@ namespace Emby.Dlna.ContentDirectory
return defaultValue;
}
private async Task<IEnumerable<KeyValuePair<string, string>>> HandleBrowse(IDictionary<string, string> sparams, User user, string deviceId)
private IEnumerable<KeyValuePair<string, string>> HandleBrowse(IDictionary<string, string> sparams, User user, string deviceId)
{
var id = sparams["ObjectID"];
var flag = sparams["BrowseFlag"];
@ -263,7 +263,7 @@ namespace Emby.Dlna.ContentDirectory
if (item.IsDisplayedAsFolder || serverItem.StubType.HasValue)
{
var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false));
var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
_didlBuilder.WriteFolderElement(writer, item, serverItem.StubType, null, childrenResult.TotalRecordCount, filter, id);
}
@ -276,7 +276,7 @@ namespace Emby.Dlna.ContentDirectory
}
else
{
var childrenResult = (await GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount).ConfigureAwait(false));
var childrenResult = (GetUserItems(item, serverItem.StubType, user, sortCriteria, start, requestedCount));
totalCount = childrenResult.TotalRecordCount;
provided = childrenResult.Items.Length;
@ -288,7 +288,7 @@ namespace Emby.Dlna.ContentDirectory
if (childItem.IsDisplayedAsFolder || displayStubType.HasValue)
{
var childCount = (await GetUserItems(childItem, displayStubType, user, sortCriteria, null, 0).ConfigureAwait(false))
var childCount = (GetUserItems(childItem, displayStubType, user, sortCriteria, null, 0))
.TotalRecordCount;
_didlBuilder.WriteFolderElement(writer, childItem, displayStubType, item, childCount, filter);
@ -314,13 +314,13 @@ namespace Emby.Dlna.ContentDirectory
};
}
private Task<IEnumerable<KeyValuePair<string, string>>> HandleX_BrowseByLetter(IDictionary<string, string> sparams, User user, string deviceId)
private IEnumerable<KeyValuePair<string, string>> HandleX_BrowseByLetter(IDictionary<string, string> sparams, User user, string deviceId)
{
// TODO: Implement this method
return HandleSearch(sparams, user, deviceId);
}
private async Task<IEnumerable<KeyValuePair<string, string>>> HandleSearch(IDictionary<string, string> sparams, User user, string deviceId)
private IEnumerable<KeyValuePair<string, string>> HandleSearch(IDictionary<string, string> sparams, User user, string deviceId)
{
var searchCriteria = new SearchCriteria(GetValueOrDefault(sparams, "SearchCriteria", ""));
var sortCriteria = new SortCriteria(GetValueOrDefault(sparams, "SortCriteria", ""));
@ -374,7 +374,7 @@ namespace Emby.Dlna.ContentDirectory
var item = serverItem.Item;
var childrenResult = (await GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount).ConfigureAwait(false));
var childrenResult = (GetChildrenSorted(item, user, searchCriteria, sortCriteria, start, requestedCount));
totalCount = childrenResult.TotalRecordCount;
@ -384,7 +384,7 @@ namespace Emby.Dlna.ContentDirectory
{
if (i.IsDisplayedAsFolder)
{
var childCount = (await GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0).ConfigureAwait(false))
var childCount = (GetChildrenSorted(i, user, searchCriteria, sortCriteria, null, 0))
.TotalRecordCount;
_didlBuilder.WriteFolderElement(writer, i, null, item, childCount, filter);
@ -410,7 +410,7 @@ namespace Emby.Dlna.ContentDirectory
};
}
private Task<QueryResult<BaseItem>> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
private QueryResult<BaseItem> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
{
var folder = (Folder)item;
@ -470,7 +470,7 @@ namespace Emby.Dlna.ContentDirectory
return new DtoOptions(true);
}
private async Task<QueryResult<ServerItem>> GetUserItems(BaseItem item, StubType? stubType, User user, SortCriteria sort, int? startIndex, int? limit)
private QueryResult<ServerItem> GetUserItems(BaseItem item, StubType? stubType, User user, SortCriteria sort, int? startIndex, int? limit)
{
if (item is MusicGenre)
{
@ -518,15 +518,15 @@ namespace Emby.Dlna.ContentDirectory
StartIndex = startIndex,
User = user,
IsMissing = false,
PresetViews = new[] {CollectionType.Movies, CollectionType.TvShows, CollectionType.Music},
ExcludeItemTypes = new[] {typeof (Game).Name, typeof (Book).Name},
PresetViews = new[] { CollectionType.Movies, CollectionType.TvShows, CollectionType.Music },
ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name },
IsPlaceHolder = false,
DtoOptions = GetDtoOptions()
};
SetSorting(query, sort, folder.IsPreSorted);
var queryResult = await folder.GetItems(query).ConfigureAwait(false);
var queryResult = folder.GetItems(query);
return ToResult(queryResult);
}
@ -557,8 +557,8 @@ namespace Emby.Dlna.ContentDirectory
{
Recursive = true,
ParentId = parentId,
GenreIds = new[] {item.Id.ToString("N")},
IncludeItemTypes = new[] {typeof (MusicAlbum).Name},
GenreIds = new[] { item.Id.ToString("N") },
IncludeItemTypes = new[] { typeof(MusicAlbum).Name },
Limit = limit,
StartIndex = startIndex,
DtoOptions = GetDtoOptions()

@ -18,6 +18,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Configuration;
@ -111,14 +112,14 @@ namespace Emby.Dlna.Didl
}
}
public void WriteItemElement(DlnaOptions options,
XmlWriter writer,
BaseItem item,
public void WriteItemElement(DlnaOptions options,
XmlWriter writer,
BaseItem item,
User user,
BaseItem context,
StubType? contextStubType,
string deviceId,
Filter filter,
BaseItem context,
StubType? contextStubType,
string deviceId,
Filter filter,
StreamInfo streamInfo = null)
{
var clientId = GetClientId(item, null);
@ -920,7 +921,7 @@ namespace Emby.Dlna.Didl
if (item is Video)
{
var userData = _userDataManager.GetUserDataDto(item, _user).Result;
var userData = _userDataManager.GetUserDataDto(item, _user);
playbackPercentage = Convert.ToInt32(userData.PlayedPercentage ?? 0);
if (playbackPercentage >= 100 || userData.Played)
@ -930,7 +931,7 @@ namespace Emby.Dlna.Didl
}
else if (item is Series || item is Season || item is BoxSet)
{
var userData = _userDataManager.GetUserDataDto(item, _user).Result;
var userData = _userDataManager.GetUserDataDto(item, _user);
if (userData.Played)
{

@ -5,7 +5,7 @@ using MediaBrowser.Model.Drawing;
using System;
using System.IO;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -2,7 +2,7 @@
using MediaBrowser.Common.Configuration;
using System;
using System.Collections.Generic;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -2,8 +2,6 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Model.Drawing;
using System.Globalization;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
namespace Emby.Drawing.ImageMagick

@ -5,7 +5,7 @@ using MediaBrowser.Model.Drawing;
using System;
using System.IO;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using System.Reflection;

@ -4,7 +4,7 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Model.Drawing;
using System.Globalization;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -4,7 +4,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -17,7 +17,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using Emby.Drawing.Common;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Net;

@ -589,7 +589,7 @@ namespace Emby.Server.Core
FileOrganizationRepository = GetFileOrganizationRepository();
RegisterSingleInstance(FileOrganizationRepository);
AuthenticationRepository = await GetAuthenticationRepository().ConfigureAwait(false);
AuthenticationRepository = GetAuthenticationRepository();
RegisterSingleInstance(AuthenticationRepository);
UserManager = new UserManager(LogManager.GetLogger("UserManager"), ServerConfigurationManager, UserRepository, XmlSerializer, NetworkManager, () => ImageProcessor, () => DtoService, () => ConnectManager, this, JsonSerializer, FileSystemManager, CryptographyProvider, _defaultUserNameFactory());
@ -948,7 +948,7 @@ namespace Emby.Server.Core
return repo;
}
private async Task<IAuthenticationRepository> GetAuthenticationRepository()
private IAuthenticationRepository GetAuthenticationRepository()
{
var repo = new AuthenticationRepository(LogManager.GetLogger("AuthenticationRepository"), ServerConfigurationManager.ApplicationPaths);

@ -23,7 +23,7 @@ using System.Linq;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
@ -120,7 +120,7 @@ namespace Emby.Server.Implementations.Channels
if (query.IsFavorite.HasValue)
{
var val = query.IsFavorite.Value;
channels = channels.Where(i => _userDataManager.GetUserData(user, i).IsFavorite == val)
channels = channels.Where(i => _userDataManager.GetUserData(user, i).IsFavorite == val)
.ToList();
}
@ -263,7 +263,7 @@ namespace Emby.Server.Implementations.Channels
}
catch
{
}
return;
}
@ -273,7 +273,7 @@ namespace Emby.Server.Implementations.Channels
_jsonSerializer.SerializeToFile(mediaSources, path);
}
public async Task<IEnumerable<MediaSourceInfo>> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken)
public IEnumerable<MediaSourceInfo> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken)
{
IEnumerable<ChannelMediaInfo> results = GetSavedMediaSources(item);
@ -963,7 +963,7 @@ namespace Emby.Server.Implementations.Channels
}
}
return await GetReturnItems(internalItems, providerTotalRecordCount, user, query).ConfigureAwait(false);
return GetReturnItems(internalItems, providerTotalRecordCount, user, query);
}
public async Task<QueryResult<BaseItemDto>> GetChannelItems(ChannelItemQuery query, CancellationToken cancellationToken)
@ -1154,7 +1154,7 @@ namespace Emby.Server.Implementations.Channels
filename + ".json");
}
private async Task<QueryResult<BaseItem>> GetReturnItems(IEnumerable<BaseItem> items,
private QueryResult<BaseItem> GetReturnItems(IEnumerable<BaseItem> items,
int? totalCountFromProvider,
User user,
ChannelItemQuery query)

@ -32,7 +32,7 @@ namespace Emby.Server.Implementations.Collections
return base.Supports(item);
}
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var playlist = (BoxSet)item;
@ -73,10 +73,10 @@ namespace Emby.Server.Implementations.Collections
.DistinctBy(i => i.Id)
.ToList();
return Task.FromResult(GetFinalItems(items, 2));
return GetFinalItems(items, 2);
}
protected string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
protected override string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
{
return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary);
}

@ -1,7 +1,7 @@
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Entities;
using System.IO;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.IO;

@ -5,7 +5,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Providers;

@ -16,7 +16,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;

@ -24,7 +24,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Extensions;
@ -107,7 +107,7 @@ namespace Emby.Server.Implementations.Dto
foreach (var item in items)
{
var dto = await GetBaseItemDtoInternal(item, options, user, owner).ConfigureAwait(false);
var dto = GetBaseItemDtoInternal(item, options, user, owner);
var tvChannel = item as LiveTvChannel;
if (tvChannel != null)
@ -160,7 +160,7 @@ namespace Emby.Server.Implementations.Dto
{
var syncDictionary = GetSyncedItemProgress(options);
var dto = GetBaseItemDtoInternal(item, options, user, owner).Result;
var dto = GetBaseItemDtoInternal(item, options, user, owner);
var tvChannel = item as LiveTvChannel;
if (tvChannel != null)
{
@ -292,7 +292,7 @@ namespace Emby.Server.Implementations.Dto
}
}
private async Task<BaseItemDto> GetBaseItemDtoInternal(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null)
private BaseItemDto GetBaseItemDtoInternal(BaseItem item, DtoOptions options, User user = null, BaseItem owner = null)
{
var fields = options.Fields;
@ -341,7 +341,7 @@ namespace Emby.Server.Implementations.Dto
if (user != null)
{
await AttachUserSpecificInfo(dto, item, user, options).ConfigureAwait(false);
AttachUserSpecificInfo(dto, item, user, options);
}
var hasMediaSources = item as IHasMediaSources;
@ -402,7 +402,7 @@ namespace Emby.Server.Implementations.Dto
public BaseItemDto GetItemByNameDto(BaseItem item, DtoOptions options, List<BaseItem> taggedItems, Dictionary<string, SyncedItemProgress> syncProgress, User user = null)
{
var dto = GetBaseItemDtoInternal(item, options, user).Result;
var dto = GetBaseItemDtoInternal(item, options, user);
if (taggedItems != null && options.Fields.Contains(ItemFields.ItemCounts))
{
@ -455,7 +455,7 @@ namespace Emby.Server.Implementations.Dto
/// <summary>
/// Attaches the user specific info.
/// </summary>
private async Task AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, DtoOptions dtoOptions)
private void AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, DtoOptions dtoOptions)
{
var fields = dtoOptions.Fields;
@ -465,7 +465,7 @@ namespace Emby.Server.Implementations.Dto
if (dtoOptions.EnableUserData)
{
dto.UserData = await _userDataRepository.GetUserDataDto(item, dto, user, dtoOptions.Fields).ConfigureAwait(false);
dto.UserData = _userDataRepository.GetUserDataDto(item, dto, user, dtoOptions.Fields);
}
if (!dto.ChildCount.HasValue && item.SourceType == SourceType.Library)
@ -497,7 +497,7 @@ namespace Emby.Server.Implementations.Dto
{
if (dtoOptions.EnableUserData)
{
dto.UserData = await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
dto.UserData = _userDataRepository.GetUserDataDto(item, user);
}
}

@ -122,7 +122,7 @@ namespace Emby.Server.Implementations.EntryPoints
.DistinctBy(i => i.Id)
.Select(i =>
{
var dto = _userDataManager.GetUserDataDto(i, user).Result;
var dto = _userDataManager.GetUserDataDto(i, user);
dto.ItemId = i.Id.ToString("N");
return dto;
})

@ -15,7 +15,6 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Emby.Server.Implementations.Library;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;

@ -17,7 +17,7 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Events;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.Tasks;

@ -8,7 +8,7 @@ using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Tasks;

@ -10,7 +10,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -34,6 +34,9 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
private readonly bool _enableDualMode;
private readonly IEnvironmentInfo _environment;
private CancellationTokenSource _disposeCancellationTokenSource = new CancellationTokenSource();
private CancellationToken _disposeCancellationToken;
public WebSocketSharpListener(ILogger logger, ICertificate certificate, IMemoryStreamFactory memoryStreamProvider, ITextEncoding textEncoding, INetworkManager networkManager, ISocketFactory socketFactory, ICryptoProvider cryptoProvider, IStreamFactory streamFactory, bool enableDualMode, Func<HttpListenerContext, IHttpRequest> httpRequestFactory, IFileSystem fileSystem, IEnvironmentInfo environment)
{
_logger = logger;
@ -48,6 +51,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
_httpRequestFactory = httpRequestFactory;
_fileSystem = fileSystem;
_environment = environment;
_disposeCancellationToken = _disposeCancellationTokenSource.Token;
}
public Action<Exception, IRequest, bool> ErrorHandler { get; set; }
@ -83,7 +88,7 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
private void ProcessContext(HttpListenerContext context)
{
//Task.Factory.StartNew(() => InitTask(context), TaskCreationOptions.DenyChildAttach | TaskCreationOptions.PreferFairness);
Task.Run(() => InitTask(context, CancellationToken.None));
Task.Run(() => InitTask(context, _disposeCancellationToken));
}
private Task InitTask(HttpListenerContext context, CancellationToken cancellationToken)
@ -173,6 +178,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
public void Stop()
{
_disposeCancellationTokenSource.Cancel();
if (_listener != null)
{
foreach (var prefix in _listener.Prefixes.ToList())

@ -5,7 +5,7 @@ using System.Globalization;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.Services;
namespace Emby.Server.Implementations.HttpServer

@ -6,7 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;

@ -1,6 +1,6 @@
using System;
using System.IO;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -12,7 +12,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.IO;
@ -59,33 +59,6 @@ namespace Emby.Server.Implementations.Images
//return GetSupportedImages(item).Where(i => IsEnabled(options, i, item)).ToList();
}
private bool IsEnabled(MetadataOptions options, ImageType type, IHasImages item)
{
if (type == ImageType.Backdrop)
{
if (item.LockedFields.Contains(MetadataFields.Backdrops))
{
return false;
}
}
else if (type == ImageType.Screenshot)
{
if (item.LockedFields.Contains(MetadataFields.Screenshots))
{
return false;
}
}
else
{
if (item.LockedFields.Contains(MetadataFields.Images))
{
return false;
}
}
return options.IsEnabled(type);
}
public async Task<ItemUpdateType> FetchAsync(T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
{
if (!Supports(item))
@ -128,7 +101,7 @@ namespace Emby.Server.Implementations.Images
}
}
var items = await GetItemsWithImages(item).ConfigureAwait(false);
var items = GetItemsWithImages(item);
return await FetchToFileInternal(item, items, imageType, cancellationToken).ConfigureAwait(false);
}
@ -159,7 +132,7 @@ namespace Emby.Server.Implementations.Images
return ItemUpdateType.ImageUpdate;
}
protected abstract Task<List<BaseItem>> GetItemsWithImages(IHasImages item);
protected abstract List<BaseItem> GetItemsWithImages(IHasImages item);
protected string CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
{

@ -6,7 +6,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;

@ -40,7 +40,7 @@ using MediaBrowser.Model.Net;
using SortOrder = MediaBrowser.Model.Entities.SortOrder;
using VideoResolver = MediaBrowser.Naming.Video.VideoResolver;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Model.Tasks;

@ -5,8 +5,6 @@ using System;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
namespace Emby.Server.Implementations.Library

@ -8,7 +8,7 @@ using MediaBrowser.Naming.Audio;
using System;
using System.Collections.Generic;
using System.IO;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;

@ -6,7 +6,7 @@ using MediaBrowser.Model.Logging;
using System;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;

@ -11,7 +11,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;

@ -5,7 +5,7 @@ using MediaBrowser.Controller.Resolvers;
using System;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -10,7 +10,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;

@ -182,21 +182,21 @@ namespace Emby.Server.Implementations.Library
return GetUserData(userId, item.Id, item.GetUserDataKeys());
}
public async Task<UserItemDataDto> GetUserDataDto(IHasUserData item, User user)
public UserItemDataDto GetUserDataDto(IHasUserData item, User user)
{
var userData = GetUserData(user.Id, item);
var dto = GetUserItemDataDto(userData);
await item.FillUserDataDtoValues(dto, userData, null, user, new List<ItemFields>()).ConfigureAwait(false);
item.FillUserDataDtoValues(dto, userData, null, user, new List<ItemFields>());
return dto;
}
public async Task<UserItemDataDto> GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields)
public UserItemDataDto GetUserDataDto(IHasUserData item, BaseItemDto itemDto, User user, List<ItemFields> fields)
{
var userData = GetUserData(user.Id, item);
var dto = GetUserItemDataDto(userData);
await item.FillUserDataDtoValues(dto, userData, itemDto, user, fields).ConfigureAwait(false);
item.FillUserDataDtoValues(dto, userData, itemDto, user, fields);
return dto;
}

@ -11,7 +11,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -3,7 +3,7 @@ using System.IO;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;

@ -28,7 +28,7 @@ using System.Xml;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
@ -1636,7 +1636,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
return;
}
var episodesToDelete = (await librarySeries.GetItems(new InternalItemsQuery
var episodesToDelete = (librarySeries.GetItems(new InternalItemsQuery
{
SortBy = new[] { ItemSortBy.DateCreated },
SortOrder = SortOrder.Descending,
@ -1645,7 +1645,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
Recursive = true,
DtoOptions = new DtoOptions(true)
}).ConfigureAwait(false))
}))
.Items
.Where(i => i.LocationType == LocationType.FileSystem && _fileSystem.FileExists(i.Path))
.Skip(seriesTimer.KeepUpTo - 1)
@ -1785,7 +1785,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
throw new InvalidOperationException("Emby DVR Requires an active Emby Premiere subscription.");
}
private async void OnSuccessfulRecording(TimerInfo timer, string path)
private void OnSuccessfulRecording(TimerInfo timer, string path)
{
//if (timer.IsProgramSeries && GetConfiguration().EnableAutoOrganize)
//{

@ -8,7 +8,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration;

@ -4,7 +4,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -2,8 +2,6 @@
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Serialization;
using System;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
namespace Emby.Server.Implementations.LiveTv.EmbyTV

@ -8,7 +8,7 @@ using System.Collections.Concurrent;
using System.Globalization;
using System.Linq;
using System.Threading;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv;

@ -26,7 +26,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Events;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Security;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;

@ -115,7 +115,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
var lockkeyMsg = CreateGetMessage(tuner, "lockkey");
await socket.SendToAsync(lockkeyMsg, 0, lockkeyMsg.Length, ipEndPoint, cancellationToken);
var response = await socket.ReceiveAsync(cancellationToken).ConfigureAwait(false);
var receiveBuffer = new byte[8192];
var response = await socket.ReceiveAsync(receiveBuffer, 0, receiveBuffer.Length, cancellationToken).ConfigureAwait(false);
string returnVal;
ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal);

@ -11,7 +11,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller;

@ -8,7 +8,6 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.IO;

@ -13,7 +13,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Library;

@ -25,7 +25,7 @@ namespace Emby.Server.Implementations.Migrations
_taskManager = taskManager;
}
public async Task Run()
public Task Run()
{
var name = "GuideRefresh3";
@ -42,6 +42,8 @@ namespace Emby.Server.Implementations.Migrations
_config.Configuration.Migrations = list.ToArray();
_config.SaveConfiguration();
}
return Task.FromResult(true);
}
}
}

@ -25,7 +25,7 @@ namespace Emby.Server.Implementations.Migrations
_taskManager = taskManager;
}
public async Task Run()
public Task Run()
{
var name = "LibraryScan6";
@ -42,6 +42,8 @@ namespace Emby.Server.Implementations.Migrations
_config.Configuration.Migrations = list.ToArray();
_config.SaveConfiguration();
}
return Task.FromResult(true);
}
}
}

@ -18,12 +18,12 @@ namespace Emby.Server.Implementations.Photos
{
}
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var photoAlbum = (PhotoAlbum)item;
var items = GetFinalItems(photoAlbum.Children.ToList());
return Task.FromResult(items);
return items;
}
protected string CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)

@ -10,7 +10,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Emby.Server.Implementations.Images;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.IO;
@ -27,7 +27,7 @@ namespace Emby.Server.Implementations.Playlists
{
}
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var playlist = (Playlist)item;
@ -68,7 +68,7 @@ namespace Emby.Server.Implementations.Playlists
.DistinctBy(i => i.Id)
.ToList();
return Task.FromResult(GetFinalItems(items));
return GetFinalItems(items);
}
}
@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.Playlists
_libraryManager = libraryManager;
}
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var items = _libraryManager.GetItemList(new InternalItemsQuery
{
@ -95,7 +95,7 @@ namespace Emby.Server.Implementations.Playlists
}).ToList();
return Task.FromResult(GetFinalItems(items));
return GetFinalItems(items);
}
//protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)
@ -113,7 +113,7 @@ namespace Emby.Server.Implementations.Playlists
_libraryManager = libraryManager;
}
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var items = _libraryManager.GetItemList(new InternalItemsQuery
{
@ -127,7 +127,7 @@ namespace Emby.Server.Implementations.Playlists
}).ToList();
return Task.FromResult(GetFinalItems(items));
return GetFinalItems(items);
}
//protected override Task<string> CreateImage(IHasImages item, List<BaseItem> itemsWithImages, string outputPathWithoutExtension, ImageType imageType, int imageIndex)

@ -12,7 +12,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
@ -164,7 +164,7 @@ namespace Emby.Server.Implementations.Playlists
return path;
}
private Task<IEnumerable<BaseItem>> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options)
private IEnumerable<BaseItem> GetPlaylistItems(IEnumerable<string> itemIds, string playlistMediaType, User user, DtoOptions options)
{
var items = itemIds.Select(i => _libraryManager.GetItemById(i)).Where(i => i != null);
@ -192,7 +192,7 @@ namespace Emby.Server.Implementations.Playlists
var list = new List<LinkedChild>();
var items = (await GetPlaylistItems(itemIds, playlist.MediaType, user, options).ConfigureAwait(false))
var items = (GetPlaylistItems(itemIds, playlist.MediaType, user, options))
.Where(i => i.SupportsAddingToPlaylist)
.ToList();
@ -278,7 +278,7 @@ namespace Emby.Server.Implementations.Playlists
{
var typeName = "PlaylistsFolder";
return _libraryManager.RootFolder.Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal)) ??
return _libraryManager.RootFolder.Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal)) ??
_libraryManager.GetUserRootFolder().Children.OfType<Folder>().FirstOrDefault(i => string.Equals(i.GetType().Name, typeName, StringComparison.Ordinal));
}
}

@ -10,7 +10,6 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -4,7 +4,7 @@ using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -12,7 +12,7 @@ using System.Collections.Specialized;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;
using MediaBrowser.Model.Text;

@ -9,7 +9,6 @@ using System.Collections.Specialized;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;
using MediaBrowser.Model.Text;

@ -124,7 +124,7 @@ namespace Emby.Server.Implementations.Services
response.ContentType = "application/octet-stream";
response.SetContentLength(bytes.Length);
await response.OutputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
await response.OutputStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
return;
}
@ -133,7 +133,7 @@ namespace Emby.Server.Implementations.Services
{
bytes = Encoding.UTF8.GetBytes(responseText);
response.SetContentLength(bytes.Length);
await response.OutputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
await response.OutputStream.WriteAsync(bytes, 0, bytes.Length, cancellationToken).ConfigureAwait(false);
return;
}

@ -187,7 +187,7 @@ namespace Emby.Server.Implementations.Services
return null;
}
public async Task<object> Execute(HttpListenerHost appHost, object requestDto, IRequest req)
public Task<object> Execute(HttpListenerHost appHost, object requestDto, IRequest req)
{
req.Dto = requestDto;
var requestType = requestDto.GetType();
@ -209,9 +209,7 @@ namespace Emby.Server.Implementations.Services
req.Dto = requestDto;
//Executes the service and returns the result
var response = await ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName()).ConfigureAwait(false);
return response;
return ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName());
}
}

@ -143,7 +143,8 @@ namespace Emby.Server.Implementations.Services
var rawResponse = await appHost.ServiceController.Execute(appHost, request, httpReq).ConfigureAwait(false);
var response = await HandleResponseAsync(rawResponse).ConfigureAwait(false);
//var response = await HandleResponseAsync(rawResponse).ConfigureAwait(false);
var response = rawResponse;
// Apply response filters
foreach (var responseFilter in appHost.ResponseFilters)

@ -985,7 +985,7 @@ namespace Emby.Server.Implementations.Session
var list = new List<BaseItem>();
foreach (var itemId in command.ItemIds)
{
var subItems = await TranslateItemForPlayback(itemId, user).ConfigureAwait(false);
var subItems = TranslateItemForPlayback(itemId, user);
list.AddRange(subItems);
}
@ -1052,7 +1052,7 @@ namespace Emby.Server.Implementations.Session
await session.SessionController.SendPlayCommand(command, cancellationToken).ConfigureAwait(false);
}
private async Task<List<BaseItem>> TranslateItemForPlayback(string id, User user)
private List<BaseItem> TranslateItemForPlayback(string id, User user)
{
var item = _libraryManager.GetItemById(id);
@ -1089,7 +1089,7 @@ namespace Emby.Server.Implementations.Session
{
var folder = (Folder)item;
var itemsResult = await folder.GetItems(new InternalItemsQuery(user)
var itemsResult = folder.GetItems(new InternalItemsQuery(user)
{
Recursive = true,
IsFolder = false,
@ -1102,7 +1102,7 @@ namespace Emby.Server.Implementations.Session
}
}
}).ConfigureAwait(false);
});
return FilterToSingleMediaType(itemsResult.Items)
.OrderBy(i => i.SortName)

@ -57,7 +57,6 @@ namespace Emby.Server.Implementations.Session
_json = json;
_httpServer = httpServer;
_serverManager = serverManager;
httpServer.WebSocketConnecting += _httpServer_WebSocketConnecting;
serverManager.WebSocketConnected += _serverManager_WebSocketConnected;
}
@ -84,27 +83,6 @@ namespace Emby.Server.Implementations.Session
}
}
async void _httpServer_WebSocketConnecting(object sender, WebSocketConnectingEventArgs e)
{
//var token = e.QueryString["api_key"];
//if (!string.IsNullOrWhiteSpace(token))
//{
// try
// {
// var session = await GetSession(e.QueryString, e.Endpoint).ConfigureAwait(false);
// if (session == null)
// {
// e.AllowConnection = false;
// }
// }
// catch (Exception ex)
// {
// _logger.ErrorException("Error getting session info", ex);
// }
//}
}
private Task<SessionInfo> GetSession(QueryParamCollection queryString, string remoteEndpoint)
{
if (queryString == null)
@ -123,7 +101,6 @@ namespace Emby.Server.Implementations.Session
public void Dispose()
{
_httpServer.WebSocketConnecting -= _httpServer_WebSocketConnecting;
_serverManager.WebSocketConnected -= _serverManager_WebSocketConnected;
}

@ -11,7 +11,6 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Emby.Server.Implementations.Images;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.Dto;
@ -37,20 +36,20 @@ namespace Emby.Server.Implementations.UserViews
};
}
protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var view = (CollectionFolder)item;
var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
var result = await view.GetItems(new InternalItemsQuery
var result = view.GetItems(new InternalItemsQuery
{
CollapseBoxSetItems = false,
Recursive = recursive,
ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" },
DtoOptions = new DtoOptions(false)
}).ConfigureAwait(false);
});
var items = result.Items.Select(i =>
{
@ -135,7 +134,7 @@ namespace Emby.Server.Implementations.UserViews
};
}
protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var view = (ManualCollectionsFolder)item;

@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.UserViews
};
}
protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{
var view = (UserView)item;
@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.UserViews
if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
string.Equals(view.ViewType, SpecialFolder.TvGenre, StringComparison.OrdinalIgnoreCase))
{
var userItemsResult = await view.GetItems(new InternalItemsQuery
var userItemsResult = view.GetItems(new InternalItemsQuery
{
CollapseBoxSetItems = false,
DtoOptions = new DtoOptions(false)
@ -82,15 +82,14 @@ namespace Emby.Server.Implementations.UserViews
var isUsingCollectionStrip = IsUsingCollectionStrip(view);
var recursive = isUsingCollectionStrip && !new[] { CollectionType.Channels, CollectionType.BoxSets, CollectionType.Playlists }.Contains(view.ViewType ?? string.Empty, StringComparer.OrdinalIgnoreCase);
var result = await view.GetItems(new InternalItemsQuery
var result = view.GetItems(new InternalItemsQuery
{
User = view.UserId.HasValue ? _userManager.GetUserById(view.UserId.Value) : null,
CollapseBoxSetItems = false,
Recursive = recursive,
ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Person" },
DtoOptions = new DtoOptions(false)
}).ConfigureAwait(false);
});
var items = result.Items.Select(i =>
{

@ -15,7 +15,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Diagnostics;
@ -399,7 +399,7 @@ namespace MediaBrowser.Api
}
}
private async void PingTimer(TranscodingJob job, bool isProgressCheckIn)
private void PingTimer(TranscodingJob job, bool isProgressCheckIn)
{
if (job.HasExited)
{

@ -8,7 +8,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.MediaEncoding;
@ -113,8 +113,7 @@ namespace MediaBrowser.Api
public void Post(UpdateMediaEncoderPath request)
{
var task = _mediaEncoder.UpdateEncoderPath(request.Path, request.PathType);
Task.WaitAll(task);
_mediaEncoder.UpdateEncoderPath(request.Path, request.PathType);
}
/// <summary>

@ -5,7 +5,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;

@ -52,7 +52,7 @@ namespace MediaBrowser.Api
_userManager = userManager;
}
public async Task<object> Get(GetQueryFilters request)
public object Get(GetQueryFilters request)
{
var parentItem = string.IsNullOrEmpty(request.ParentId) ? null : _libraryManager.GetItemById(request.ParentId);
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
@ -61,7 +61,7 @@ namespace MediaBrowser.Api
user == null ? _libraryManager.RootFolder : user.RootFolder :
parentItem;
var result = await ((Folder)item).GetItems(GetItemsQuery(request, user));
var result = ((Folder)item).GetItems(GetItemsQuery(request, user));
return ToOptimizedResult(GetFilters(result.Items));
}

@ -8,8 +8,6 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;

@ -14,7 +14,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;

@ -14,7 +14,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;
@ -141,11 +141,6 @@ namespace MediaBrowser.Api.Images
{
var item = _libraryManager.GetItemById(request.Id);
return await GetRemoteImageResult(item, request).ConfigureAwait(false);
}
private async Task<RemoteImageResult> GetRemoteImageResult(BaseItem item, BaseRemoteImageRequest request)
{
var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
{
ProviderName = request.ProviderName,

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Providers;
using System.Threading;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;

@ -21,7 +21,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.IO;

@ -8,7 +8,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;

@ -17,7 +17,7 @@ using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Api.Playback.Progressive;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.IO;

@ -5,7 +5,7 @@ using System;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;

@ -9,8 +9,6 @@ using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;
using System.Collections.Generic;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Net;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;

@ -6,7 +6,7 @@ using System.Threading.Tasks;
using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Net;
using System.Collections.Generic;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Services;

@ -67,7 +67,7 @@ namespace MediaBrowser.Api.Reports
/// <summary> Gets the given request. </summary>
/// <param name="request"> The request. </param>
/// <returns> A Task&lt;object&gt; </returns>
public async Task<object> Get(GetReportHeaders request)
public object Get(GetReportHeaders request)
{
if (string.IsNullOrEmpty(request.IncludeItemTypes))
return null;
@ -95,14 +95,14 @@ namespace MediaBrowser.Api.Reports
/// <summary> Gets the given request. </summary>
/// <param name="request"> The request. </param>
/// <returns> A Task&lt;object&gt; </returns>
public async Task<object> Get(GetItemReport request)
public object Get(GetItemReport request)
{
if (string.IsNullOrEmpty(request.IncludeItemTypes))
return null;
request.DisplayType = "Screen";
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
var reportResult = await GetReportResult(request, user);
var reportResult = GetReportResult(request, user);
return ToOptimizedResult(reportResult);
}
@ -110,7 +110,7 @@ namespace MediaBrowser.Api.Reports
/// <summary> Gets the given request. </summary>
/// <param name="request"> The request. </param>
/// <returns> A Task&lt;object&gt; </returns>
public async Task<object> Get(GetReportDownload request)
public object Get(GetReportDownload request)
{
if (string.IsNullOrEmpty(request.IncludeItemTypes))
return null;
@ -142,7 +142,7 @@ namespace MediaBrowser.Api.Reports
case ReportViewType.ReportData:
ReportIncludeItemTypes reportRowType = ReportHelper.GetRowType(request.IncludeItemTypes);
ReportBuilder dataBuilder = new ReportBuilder(_libraryManager);
QueryResult<BaseItem> queryResult = await GetQueryResult(request, user).ConfigureAwait(false);
QueryResult<BaseItem> queryResult = GetQueryResult(request, user);
result = dataBuilder.GetResult(queryResult.Items, request);
result.TotalRecordCount = queryResult.TotalRecordCount;
break;
@ -314,7 +314,7 @@ namespace MediaBrowser.Api.Reports
return query;
}
private async Task<QueryResult<BaseItem>> GetQueryResult(BaseReportRequest request, User user)
private QueryResult<BaseItem> GetQueryResult(BaseReportRequest request, User user)
{
// all report queries currently need this because it's not being specified
request.Recursive = true;
@ -344,7 +344,7 @@ namespace MediaBrowser.Api.Reports
{
request.Recursive = true;
var query = GetItemsQuery(request, user);
var result = await folder.GetItems(query).ConfigureAwait(false);
var result = folder.GetItems(query);
if (string.IsNullOrWhiteSpace(request.SortBy))
{
@ -359,19 +359,19 @@ namespace MediaBrowser.Api.Reports
if (request.Recursive)
{
return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false);
return folder.GetItems(GetItemsQuery(request, user));
}
if (user == null)
{
return await folder.GetItems(GetItemsQuery(request, null)).ConfigureAwait(false);
return folder.GetItems(GetItemsQuery(request, null));
}
var userRoot = item as UserRootFolder;
if (userRoot == null)
{
return await folder.GetItems(GetItemsQuery(request, user)).ConfigureAwait(false);
return folder.GetItems(GetItemsQuery(request, user));
}
IEnumerable<BaseItem> items = folder.GetChildren(user, true);
@ -412,10 +412,10 @@ namespace MediaBrowser.Api.Reports
/// <summary> Gets report result. </summary>
/// <param name="request"> The request. </param>
/// <returns> The report result. </returns>
private async Task<ReportResult> GetReportResult(GetItemReport request, User user)
private ReportResult GetReportResult(GetItemReport request, User user)
{
ReportBuilder reportBuilder = new ReportBuilder(_libraryManager);
QueryResult<BaseItem> queryResult = await GetQueryResult(request, user).ConfigureAwait(false);
QueryResult<BaseItem> queryResult = GetQueryResult(request, user);
ReportResult reportResult = reportBuilder.GetResult(queryResult.Items, request);
reportResult.TotalRecordCount = queryResult.TotalRecordCount;

@ -14,7 +14,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services;

@ -9,7 +9,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Net;

@ -432,14 +432,14 @@ namespace MediaBrowser.Api
throw new ResourceNotFoundException("Series not found");
}
var seasons = (await series.GetItems(new InternalItemsQuery(user)
var seasons = (series.GetItems(new InternalItemsQuery(user)
{
IsMissing = request.IsMissing,
IsVirtualUnaired = request.IsVirtualUnaired,
IsSpecialSeason = request.IsSpecialSeason,
AdjacentTo = request.AdjacentTo
}).ConfigureAwait(false)).Items.OfType<Season>();
})).Items.OfType<Season>();
var dtoOptions = GetDtoOptions(_authContext, request);

@ -105,7 +105,7 @@ namespace MediaBrowser.Api.UserLibrary
var dtoOptions = GetDtoOptions(_authContext, request);
var result = await GetQueryResult(request, dtoOptions, user).ConfigureAwait(false);
var result = GetQueryResult(request, dtoOptions, user);
if (result == null)
{
@ -134,7 +134,7 @@ namespace MediaBrowser.Api.UserLibrary
/// <summary>
/// Gets the items to serialize.
/// </summary>
private async Task<QueryResult<BaseItem>> GetQueryResult(GetItems request, DtoOptions dtoOptions, User user)
private QueryResult<BaseItem> GetQueryResult(GetItems request, DtoOptions dtoOptions, User user)
{
var item = string.IsNullOrEmpty(request.ParentId) ?
null :
@ -169,14 +169,14 @@ namespace MediaBrowser.Api.UserLibrary
if (request.Recursive || !string.IsNullOrEmpty(request.Ids) || user == null)
{
return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false);
return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
}
var userRoot = item as UserRootFolder;
if (userRoot == null)
{
return await folder.GetItems(GetItemsQuery(request, dtoOptions, user)).ConfigureAwait(false);
return folder.GetItems(GetItemsQuery(request, dtoOptions, user));
}
IEnumerable<BaseItem> items = folder.GetChildren(user, true);

@ -427,7 +427,7 @@ namespace MediaBrowser.Api.UserLibrary
await item.MarkUnplayed(user).ConfigureAwait(false);
}
return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
return _userDataRepository.GetUserDataDto(item, user);
}
}
}

@ -11,7 +11,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
@ -542,7 +541,7 @@ namespace MediaBrowser.Api.UserLibrary
await _userDataRepository.SaveUserData(user.Id, item, data, UserDataSaveReason.UpdateUserRating, CancellationToken.None).ConfigureAwait(false);
return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
return _userDataRepository.GetUserDataDto(item, user);
}
/// <summary>
@ -587,7 +586,7 @@ namespace MediaBrowser.Api.UserLibrary
await _userDataRepository.SaveUserData(user.Id, item, data, UserDataSaveReason.UpdateUserRating, CancellationToken.None).ConfigureAwait(false);
return await _userDataRepository.GetUserDataDto(item, user).ConfigureAwait(false);
return _userDataRepository.GetUserDataDto(item, user);
}
}
}

@ -103,7 +103,7 @@ namespace MediaBrowser.Api.UserLibrary
return ToOptimizedResult(result);
}
public async Task<object> Get(GetGroupingOptions request)
public object Get(GetGroupingOptions request)
{
var user = _userManager.GetUserById(request.UserId);

@ -9,7 +9,7 @@ using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Dto;

@ -47,7 +47,6 @@
<Compile Include="Extensions\BaseExtensions.cs" />
<Compile Include="Extensions\ResourceNotFoundException.cs" />
<Compile Include="IDependencyContainer.cs" />
<Compile Include="IO\ProgressStream.cs" />
<Compile Include="Configuration\IApplicationPaths.cs" />
<Compile Include="Net\HttpRequestOptions.cs" />
<Compile Include="Net\HttpResponseInfo.cs" />
@ -76,6 +75,7 @@
<ItemGroup>
<None Include="project.json" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent />

@ -38,12 +38,12 @@ namespace MediaBrowser.Controller.Channels
set { }
}
protected override async Task<QueryResult<BaseItem>> GetItemsInternal(InternalItemsQuery query)
protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
{
try
{
// Don't blow up here because it could cause parent screens with other content to fail
return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
return ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
{
ChannelId = Id.ToString("N"),
Limit = query.Limit,
@ -52,7 +52,7 @@ namespace MediaBrowser.Controller.Channels
SortBy = query.SortBy,
SortOrder = query.SortOrder
}, new Progress<double>(), CancellationToken.None);
}, new Progress<double>(), CancellationToken.None).Result;
}
catch
{

@ -110,7 +110,7 @@ namespace MediaBrowser.Controller.Channels
/// <param name="item">The item.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{IEnumerable{MediaSourceInfo}}.</returns>
Task<IEnumerable<MediaSourceInfo>> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken);
IEnumerable<MediaSourceInfo> GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken);
/// <summary>
/// Gets the channel folder.

@ -6,7 +6,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Serialization;

@ -209,7 +209,7 @@ namespace MediaBrowser.Controller.Entities.Audio
if (SourceType == SourceType.Channel)
{
var sources = ChannelManager.GetStaticMediaSources(this, CancellationToken.None)
.Result.ToList();
.ToList();
if (sources.Count > 0)
{

@ -21,7 +21,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Extensions;
using MediaBrowser.Controller.IO;
@ -2253,7 +2253,7 @@ namespace MediaBrowser.Controller.Entities
return path;
}
public virtual Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields)
public virtual void FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> fields)
{
if (RunTimeTicks.HasValue)
{
@ -2269,8 +2269,6 @@ namespace MediaBrowser.Controller.Entities
}
}
}
return Task.FromResult(true);
}
protected Task RefreshMetadataForOwnedItem(BaseItem ownedItem, bool copyTitleMetadata, MetadataRefreshOptions options, CancellationToken cancellationToken)

@ -7,7 +7,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Extensions;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save