mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
update GetItems method
This commit is contained in:
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<object> </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<object> </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<object> </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…
x
Reference in New Issue
Block a user