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.EnvironmentInfo;
using Emby.Common.Implementations.Threading; using Emby.Common.Implementations.Threading;
using MediaBrowser.Common; using MediaBrowser.Common;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.Cryptography; using MediaBrowser.Model.Cryptography;
using MediaBrowser.Model.Diagnostics; using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;

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

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

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

@ -1,7 +1,7 @@
using System; using System;
using System.IO; using System.IO;
namespace MediaBrowser.Common.IO namespace Emby.Common.Implementations.IO
{ {
/// <summary> /// <summary>
/// Measures progress when reading from a stream or writing to one /// Measures progress when reading from a stream or writing to one
@ -155,6 +155,21 @@ namespace MediaBrowser.Common.IO
return read; 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> /// <summary>
/// When overridden in a derived class, sets the position within the current stream. /// When overridden in a derived class, sets the position within the current stream.
/// </summary> /// </summary>
@ -194,6 +209,21 @@ namespace MediaBrowser.Common.IO
ProgressAction(percent); 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> /// <summary>
/// Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources. /// Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources.
/// </summary> /// </summary>

@ -108,6 +108,18 @@ namespace Emby.Common.Implementations.Net
return completionSource.Task; 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) private void FileSendCallback(IAsyncResult ar)
{ {
// Retrieve the socket from the state object. // Retrieve the socket from the state object.

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

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

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

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

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

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

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

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

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

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

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

@ -23,7 +23,7 @@ using System.Linq;
using System.Net; using System.Net;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.Movies;
@ -120,7 +120,7 @@ namespace Emby.Server.Implementations.Channels
if (query.IsFavorite.HasValue) if (query.IsFavorite.HasValue)
{ {
var val = query.IsFavorite.Value; 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(); .ToList();
} }
@ -263,7 +263,7 @@ namespace Emby.Server.Implementations.Channels
} }
catch catch
{ {
} }
return; return;
} }
@ -273,7 +273,7 @@ namespace Emby.Server.Implementations.Channels
_jsonSerializer.SerializeToFile(mediaSources, path); _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); 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) public async Task<QueryResult<BaseItemDto>> GetChannelItems(ChannelItemQuery query, CancellationToken cancellationToken)
@ -1154,7 +1154,7 @@ namespace Emby.Server.Implementations.Channels
filename + ".json"); filename + ".json");
} }
private async Task<QueryResult<BaseItem>> GetReturnItems(IEnumerable<BaseItem> items, private QueryResult<BaseItem> GetReturnItems(IEnumerable<BaseItem> items,
int? totalCountFromProvider, int? totalCountFromProvider,
User user, User user,
ChannelItemQuery query) ChannelItemQuery query)

@ -32,7 +32,7 @@ namespace Emby.Server.Implementations.Collections
return base.Supports(item); return base.Supports(item);
} }
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item) protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{ {
var playlist = (BoxSet)item; var playlist = (BoxSet)item;
@ -73,10 +73,10 @@ namespace Emby.Server.Implementations.Collections
.DistinctBy(i => i.Id) .DistinctBy(i => i.Id)
.ToList(); .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); return CreateSingleImage(itemsWithImages, outputPathWithoutExtension, ImageType.Primary);
} }

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

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

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

@ -24,7 +24,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
@ -107,7 +107,7 @@ namespace Emby.Server.Implementations.Dto
foreach (var item in items) 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; var tvChannel = item as LiveTvChannel;
if (tvChannel != null) if (tvChannel != null)
@ -160,7 +160,7 @@ namespace Emby.Server.Implementations.Dto
{ {
var syncDictionary = GetSyncedItemProgress(options); var syncDictionary = GetSyncedItemProgress(options);
var dto = GetBaseItemDtoInternal(item, options, user, owner).Result; var dto = GetBaseItemDtoInternal(item, options, user, owner);
var tvChannel = item as LiveTvChannel; var tvChannel = item as LiveTvChannel;
if (tvChannel != null) 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; var fields = options.Fields;
@ -341,7 +341,7 @@ namespace Emby.Server.Implementations.Dto
if (user != null) if (user != null)
{ {
await AttachUserSpecificInfo(dto, item, user, options).ConfigureAwait(false); AttachUserSpecificInfo(dto, item, user, options);
} }
var hasMediaSources = item as IHasMediaSources; 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) 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)) if (taggedItems != null && options.Fields.Contains(ItemFields.ItemCounts))
{ {
@ -455,7 +455,7 @@ namespace Emby.Server.Implementations.Dto
/// <summary> /// <summary>
/// Attaches the user specific info. /// Attaches the user specific info.
/// </summary> /// </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; var fields = dtoOptions.Fields;
@ -465,7 +465,7 @@ namespace Emby.Server.Implementations.Dto
if (dtoOptions.EnableUserData) 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) if (!dto.ChildCount.HasValue && item.SourceType == SourceType.Library)
@ -497,7 +497,7 @@ namespace Emby.Server.Implementations.Dto
{ {
if (dtoOptions.EnableUserData) 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) .DistinctBy(i => i.Id)
.Select(i => .Select(i =>
{ {
var dto = _userDataManager.GetUserDataDto(i, user).Result; var dto = _userDataManager.GetUserDataDto(i, user);
dto.ItemId = i.Id.ToString("N"); dto.ItemId = i.Id.ToString("N");
return dto; return dto;
}) })

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

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

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

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

@ -34,6 +34,9 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
private readonly bool _enableDualMode; private readonly bool _enableDualMode;
private readonly IEnvironmentInfo _environment; 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) 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; _logger = logger;
@ -48,6 +51,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
_httpRequestFactory = httpRequestFactory; _httpRequestFactory = httpRequestFactory;
_fileSystem = fileSystem; _fileSystem = fileSystem;
_environment = environment; _environment = environment;
_disposeCancellationToken = _disposeCancellationTokenSource.Token;
} }
public Action<Exception, IRequest, bool> ErrorHandler { get; set; } public Action<Exception, IRequest, bool> ErrorHandler { get; set; }
@ -83,7 +88,7 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
private void ProcessContext(HttpListenerContext context) private void ProcessContext(HttpListenerContext context)
{ {
//Task.Factory.StartNew(() => InitTask(context), TaskCreationOptions.DenyChildAttach | TaskCreationOptions.PreferFairness); //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) private Task InitTask(HttpListenerContext context, CancellationToken cancellationToken)
@ -173,6 +178,8 @@ namespace Emby.Server.Implementations.HttpServer.SocketSharp
public void Stop() public void Stop()
{ {
_disposeCancellationTokenSource.Cancel();
if (_listener != null) if (_listener != null)
{ {
foreach (var prefix in _listener.Prefixes.ToList()) foreach (var prefix in _listener.Prefixes.ToList())

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

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

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

@ -12,7 +12,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
@ -59,33 +59,6 @@ namespace Emby.Server.Implementations.Images
//return GetSupportedImages(item).Where(i => IsEnabled(options, i, item)).ToList(); //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) public async Task<ItemUpdateType> FetchAsync(T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
{ {
if (!Supports(item)) 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); return await FetchToFileInternal(item, items, imageType, cancellationToken).ConfigureAwait(false);
} }
@ -159,7 +132,7 @@ namespace Emby.Server.Implementations.Images
return ItemUpdateType.ImageUpdate; 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) protected string CreateThumbCollage(IHasImages primaryItem, List<BaseItem> items, string outputPath)
{ {

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

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

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

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

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

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

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

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

@ -182,21 +182,21 @@ namespace Emby.Server.Implementations.Library
return GetUserData(userId, item.Id, item.GetUserDataKeys()); 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 userData = GetUserData(user.Id, item);
var dto = GetUserItemDataDto(userData); 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; 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 userData = GetUserData(user.Id, item);
var dto = GetUserItemDataDto(userData); var dto = GetUserItemDataDto(userData);
await item.FillUserDataDtoValues(dto, userData, itemDto, user, fields).ConfigureAwait(false); item.FillUserDataDtoValues(dto, userData, itemDto, user, fields);
return dto; return dto;
} }

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

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

@ -28,7 +28,7 @@ using System.Xml;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Common.Events; using MediaBrowser.Common.Events;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
@ -1636,7 +1636,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
return; return;
} }
var episodesToDelete = (await librarySeries.GetItems(new InternalItemsQuery var episodesToDelete = (librarySeries.GetItems(new InternalItemsQuery
{ {
SortBy = new[] { ItemSortBy.DateCreated }, SortBy = new[] { ItemSortBy.DateCreated },
SortOrder = SortOrder.Descending, SortOrder = SortOrder.Descending,
@ -1645,7 +1645,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
Recursive = true, Recursive = true,
DtoOptions = new DtoOptions(true) DtoOptions = new DtoOptions(true)
}).ConfigureAwait(false)) }))
.Items .Items
.Where(i => i.LocationType == LocationType.FileSystem && _fileSystem.FileExists(i.Path)) .Where(i => i.LocationType == LocationType.FileSystem && _fileSystem.FileExists(i.Path))
.Skip(seriesTimer.KeepUpTo - 1) .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."); 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) //if (timer.IsProgramSeries && GetConfiguration().EnableAutoOrganize)
//{ //{

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

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

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

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

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

@ -115,7 +115,10 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
var lockkeyMsg = CreateGetMessage(tuner, "lockkey"); var lockkeyMsg = CreateGetMessage(tuner, "lockkey");
await socket.SendToAsync(lockkeyMsg, 0, lockkeyMsg.Length, ipEndPoint, cancellationToken); 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; string returnVal;
ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal); ParseReturnMessage(response.Buffer, response.ReceivedBytes, out returnVal);

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

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

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

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

@ -25,7 +25,7 @@ namespace Emby.Server.Implementations.Migrations
_taskManager = taskManager; _taskManager = taskManager;
} }
public async Task Run() public Task Run()
{ {
var name = "LibraryScan6"; var name = "LibraryScan6";
@ -42,6 +42,8 @@ namespace Emby.Server.Implementations.Migrations
_config.Configuration.Migrations = list.ToArray(); _config.Configuration.Migrations = list.ToArray();
_config.SaveConfiguration(); _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 photoAlbum = (PhotoAlbum)item;
var items = GetFinalItems(photoAlbum.Children.ToList()); 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) 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.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Emby.Server.Implementations.Images; using Emby.Server.Implementations.Images;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.IO; 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; var playlist = (Playlist)item;
@ -68,7 +68,7 @@ namespace Emby.Server.Implementations.Playlists
.DistinctBy(i => i.Id) .DistinctBy(i => i.Id)
.ToList(); .ToList();
return Task.FromResult(GetFinalItems(items)); return GetFinalItems(items);
} }
} }
@ -81,7 +81,7 @@ namespace Emby.Server.Implementations.Playlists
_libraryManager = libraryManager; _libraryManager = libraryManager;
} }
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item) protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{ {
var items = _libraryManager.GetItemList(new InternalItemsQuery var items = _libraryManager.GetItemList(new InternalItemsQuery
{ {
@ -95,7 +95,7 @@ namespace Emby.Server.Implementations.Playlists
}).ToList(); }).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) //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; _libraryManager = libraryManager;
} }
protected override Task<List<BaseItem>> GetItemsWithImages(IHasImages item) protected override List<BaseItem> GetItemsWithImages(IHasImages item)
{ {
var items = _libraryManager.GetItemList(new InternalItemsQuery var items = _libraryManager.GetItemList(new InternalItemsQuery
{ {
@ -127,7 +127,7 @@ namespace Emby.Server.Implementations.Playlists
}).ToList(); }).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) //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.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
@ -164,7 +164,7 @@ namespace Emby.Server.Implementations.Playlists
return path; 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); 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 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) .Where(i => i.SupportsAddingToPlaylist)
.ToList(); .ToList();
@ -278,7 +278,7 @@ namespace Emby.Server.Implementations.Playlists
{ {
var typeName = "PlaylistsFolder"; 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)); _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.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;

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

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

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

@ -124,7 +124,7 @@ namespace Emby.Server.Implementations.Services
response.ContentType = "application/octet-stream"; response.ContentType = "application/octet-stream";
response.SetContentLength(bytes.Length); 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; return;
} }
@ -133,7 +133,7 @@ namespace Emby.Server.Implementations.Services
{ {
bytes = Encoding.UTF8.GetBytes(responseText); bytes = Encoding.UTF8.GetBytes(responseText);
response.SetContentLength(bytes.Length); 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; return;
} }

@ -187,7 +187,7 @@ namespace Emby.Server.Implementations.Services
return null; 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; req.Dto = requestDto;
var requestType = requestDto.GetType(); var requestType = requestDto.GetType();
@ -209,9 +209,7 @@ namespace Emby.Server.Implementations.Services
req.Dto = requestDto; req.Dto = requestDto;
//Executes the service and returns the result //Executes the service and returns the result
var response = await ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName()).ConfigureAwait(false); return ServiceExecGeneral.Execute(serviceType, req, service, requestDto, requestType.GetMethodName());
return response;
} }
} }

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

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

@ -57,7 +57,6 @@ namespace Emby.Server.Implementations.Session
_json = json; _json = json;
_httpServer = httpServer; _httpServer = httpServer;
_serverManager = serverManager; _serverManager = serverManager;
httpServer.WebSocketConnecting += _httpServer_WebSocketConnecting;
serverManager.WebSocketConnected += _serverManager_WebSocketConnected; 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) private Task<SessionInfo> GetSession(QueryParamCollection queryString, string remoteEndpoint)
{ {
if (queryString == null) if (queryString == null)
@ -123,7 +101,6 @@ namespace Emby.Server.Implementations.Session
public void Dispose() public void Dispose()
{ {
_httpServer.WebSocketConnecting -= _httpServer_WebSocketConnecting;
_serverManager.WebSocketConnected -= _serverManager_WebSocketConnected; _serverManager.WebSocketConnected -= _serverManager_WebSocketConnected;
} }

@ -11,7 +11,6 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Emby.Server.Implementations.Images; using Emby.Server.Implementations.Images;
using MediaBrowser.Common.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Controller.Collections; using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.Dto; 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 view = (CollectionFolder)item;
var recursive = !new[] { CollectionType.Playlists, CollectionType.Channels }.Contains(view.CollectionType ?? string.Empty, StringComparer.OrdinalIgnoreCase); 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, CollapseBoxSetItems = false,
Recursive = recursive, Recursive = recursive,
ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" }, ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Playlist" },
DtoOptions = new DtoOptions(false) DtoOptions = new DtoOptions(false)
}).ConfigureAwait(false); });
var items = result.Items.Select(i => 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; 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; var view = (UserView)item;
@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.UserViews
if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) || if (string.Equals(view.ViewType, SpecialFolder.MovieGenre, StringComparison.OrdinalIgnoreCase) ||
string.Equals(view.ViewType, SpecialFolder.TvGenre, 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, CollapseBoxSetItems = false,
DtoOptions = new DtoOptions(false) DtoOptions = new DtoOptions(false)
@ -82,15 +82,14 @@ namespace Emby.Server.Implementations.UserViews
var isUsingCollectionStrip = IsUsingCollectionStrip(view); var isUsingCollectionStrip = IsUsingCollectionStrip(view);
var recursive = isUsingCollectionStrip && !new[] { CollectionType.Channels, CollectionType.BoxSets, CollectionType.Playlists }.Contains(view.ViewType ?? string.Empty, StringComparer.OrdinalIgnoreCase); 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, User = view.UserId.HasValue ? _userManager.GetUserById(view.UserId.Value) : null,
CollapseBoxSetItems = false, CollapseBoxSetItems = false,
Recursive = recursive, Recursive = recursive,
ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Person" }, ExcludeItemTypes = new[] { "UserView", "CollectionFolder", "Person" },
DtoOptions = new DtoOptions(false) DtoOptions = new DtoOptions(false)
});
}).ConfigureAwait(false);
var items = result.Items.Select(i => var items = result.Items.Select(i =>
{ {

@ -15,7 +15,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Diagnostics; 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) if (job.HasExited)
{ {

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

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

@ -52,7 +52,7 @@ namespace MediaBrowser.Api
_userManager = userManager; _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 parentItem = string.IsNullOrEmpty(request.ParentId) ? null : _libraryManager.GetItemById(request.ParentId);
var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null; var user = !string.IsNullOrWhiteSpace(request.UserId) ? _userManager.GetUserById(request.UserId) : null;
@ -61,7 +61,7 @@ namespace MediaBrowser.Api
user == null ? _libraryManager.RootFolder : user.RootFolder : user == null ? _libraryManager.RootFolder : user.RootFolder :
parentItem; parentItem;
var result = await ((Folder)item).GetItems(GetItemsQuery(request, user)); var result = ((Folder)item).GetItems(GetItemsQuery(request, user));
return ToOptimizedResult(GetFilters(result.Items)); return ToOptimizedResult(GetFilters(result.Items));
} }

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

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

@ -14,7 +14,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
@ -141,11 +141,6 @@ namespace MediaBrowser.Api.Images
{ {
var item = _libraryManager.GetItemById(request.Id); 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 var images = await _providerManager.GetAvailableRemoteImages(item, new RemoteImageQuery
{ {
ProviderName = request.ProviderName, ProviderName = request.ProviderName,

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

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

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

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

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

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

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

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

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

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

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

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

@ -427,7 +427,7 @@ namespace MediaBrowser.Api.UserLibrary
await item.MarkUnplayed(user).ConfigureAwait(false); 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.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.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); 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> /// <summary>
@ -587,7 +586,7 @@ namespace MediaBrowser.Api.UserLibrary
await _userDataRepository.SaveUserData(user.Id, item, data, UserDataSaveReason.UpdateUserRating, CancellationToken.None).ConfigureAwait(false); 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); return ToOptimizedResult(result);
} }
public async Task<object> Get(GetGroupingOptions request) public object Get(GetGroupingOptions request)
{ {
var user = _userManager.GetUserById(request.UserId); var user = _userManager.GetUserById(request.UserId);

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

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

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

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

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

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

@ -21,7 +21,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Extensions; using MediaBrowser.Controller.Extensions;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
@ -2253,7 +2253,7 @@ namespace MediaBrowser.Controller.Entities
return path; 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) 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) protected Task RefreshMetadataForOwnedItem(BaseItem ownedItem, bool copyTitleMetadata, MetadataRefreshOptions options, CancellationToken cancellationToken)

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

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

Loading…
Cancel
Save