diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-06-29 13:59:44 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-29 13:59:44 -0400 |
| commit | d62fe7113592f9b1dfd5d68349a05de38a550843 (patch) | |
| tree | 78e8c82618b27e350c583760afc2082868bdfb27 /MediaBrowser.Server.Implementations | |
| parent | 1d6421dde983a6127c30314aec51497fa6161cc7 (diff) | |
| parent | 636969e7ffbaafec3f458de4299966776bc72737 (diff) | |
Merge pull request #1888 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations')
4 files changed, 25 insertions, 54 deletions
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index cfe0564fb..d58528b44 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -46,7 +46,7 @@ <HintPath>..\packages\CommonIO.1.0.0.9\lib\net45\CommonIO.dll</HintPath> </Reference> <Reference Include="Emby.XmlTv, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> - <HintPath>..\packages\Emby.XmlTv.1.0.0.53\lib\net45\Emby.XmlTv.dll</HintPath> + <HintPath>..\packages\Emby.XmlTv.1.0.0.54\lib\net45\Emby.XmlTv.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="INIFileParser, Version=2.3.0.0, Culture=neutral, PublicKeyToken=79af7b307b65cf3c, processorArchitecture=MSIL"> @@ -69,8 +69,8 @@ <Reference Include="ServiceStack.Api.Swagger"> <HintPath>..\ThirdParty\ServiceStack\ServiceStack.Api.Swagger.dll</HintPath> </Reference> - <Reference Include="SimpleInjector, Version=3.1.5.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL"> - <HintPath>..\packages\SimpleInjector.3.1.5\lib\net45\SimpleInjector.dll</HintPath> + <Reference Include="SimpleInjector, Version=3.2.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL"> + <HintPath>..\packages\SimpleInjector.3.2.0\lib\net45\SimpleInjector.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="SocketHttpListener, Version=1.0.5955.1537, Culture=neutral, processorArchitecture=MSIL"> diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 096cdf880..d0c351c5d 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -2663,6 +2663,12 @@ namespace MediaBrowser.Server.Implementations.Persistence cmd.Parameters.Add(cmd, "@SlugName", DbType.String).Value = query.SlugName; } + if (!string.IsNullOrWhiteSpace(query.MinSortName)) + { + whereClauses.Add("SortName>=@MinSortName"); + cmd.Parameters.Add(cmd, "@MinSortName", DbType.String).Value = query.MinSortName; + } + if (!string.IsNullOrWhiteSpace(query.Name)) { whereClauses.Add("CleanName=@Name"); @@ -3773,7 +3779,8 @@ namespace MediaBrowser.Server.Implementations.Persistence } else { - whereText += " And itemTypes not null"; + //whereText += " And itemTypes not null"; + whereText += " And CleanName In (Select CleanValue from ItemValues where Type=@ItemValueType AND ItemId in (select guid from TypedBaseItems" + innerWhereText + "))"; } var outerQuery = new InternalItemsQuery(query.User) @@ -3855,7 +3862,7 @@ namespace MediaBrowser.Server.Implementations.Persistence ? (CommandBehavior.SequentialAccess | CommandBehavior.SingleResult) : CommandBehavior.SequentialAccess; - //Logger.Debug("GetItemValues: " + cmd.CommandText); + Logger.Debug("GetItemValues: " + cmd.CommandText); using (var reader = cmd.ExecuteReader(commandBehavior)) { diff --git a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs index 82232ffae..ba6534a7c 100644 --- a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs +++ b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs @@ -107,7 +107,6 @@ namespace MediaBrowser.Server.Implementations.TV var currentUser = user; return series - .AsParallel() .Select(i => GetNextUp(i, currentUser)) // Include if an episode was found, and either the series is not unwatched or the specific series was requested .Where(i => i.Item1 != null && (!i.Item3 || !string.IsNullOrWhiteSpace(request.SeriesId))) @@ -124,67 +123,32 @@ namespace MediaBrowser.Server.Implementations.TV /// <returns>Task{Episode}.</returns> private Tuple<Episode, DateTime, bool> GetNextUp(Series series, User user) { - var firstUnwatchedEpisode = _libraryManager.GetItemList(new InternalItemsQuery(user) + var lastWatchedEpisode = _libraryManager.GetItemList(new InternalItemsQuery(user) { AncestorWithPresentationUniqueKey = series.PresentationUniqueKey, IncludeItemTypes = new[] { typeof(Episode).Name }, SortBy = new[] { ItemSortBy.SortName }, - SortOrder = SortOrder.Ascending, + SortOrder = SortOrder.Descending, + IsPlayed = true, Limit = 1, - IsPlayed = false, IsVirtualItem = false, ParentIndexNumberNotEquals = 0 - }).Cast<Episode>().FirstOrDefault(); - - // series is fully played - if (firstUnwatchedEpisode == null) - { - return new Tuple<Episode, DateTime, bool>(null, DateTime.MinValue, true); - } + }).FirstOrDefault(); - var lastWatchedEpisode = _libraryManager.GetItemList(new InternalItemsQuery(user) + var firstUnwatchedEpisode = _libraryManager.GetItemList(new InternalItemsQuery(user) { AncestorWithPresentationUniqueKey = series.PresentationUniqueKey, IncludeItemTypes = new[] { typeof(Episode).Name }, - SortBy = new[] { ItemSortBy.DatePlayed }, - SortOrder = SortOrder.Descending, + SortBy = new[] { ItemSortBy.SortName }, + SortOrder = SortOrder.Ascending, Limit = 1, + IsPlayed = false, IsVirtualItem = false, - ParentIndexNumberNotEquals = 0 + ParentIndexNumberNotEquals = 0, + MinSortName = lastWatchedEpisode == null ? null : lastWatchedEpisode.SortName - }).FirstOrDefault(); - - //// Get them in display order, then reverse - //var allEpisodes = series.GetEpisodes(user, false, false) - // .Where(i => !i.ParentIndexNumber.HasValue || i.ParentIndexNumber.Value != 0) - // .Reverse() - // .ToList(); - - //Episode lastWatched = null; - //var lastWatchedDate = DateTime.MinValue; - //Episode nextUp = null; - - //// Go back starting with the most recent episodes - //foreach (var episode in allEpisodes) - //{ - // var userData = _userDataManager.GetUserData(user, episode); - - // if (userData.Played) - // { - // if (lastWatched != null || nextUp == null) - // { - // break; - // } - - // lastWatched = episode; - // lastWatchedDate = userData.LastPlayedDate ?? DateTime.MinValue; - // } - // else - // { - // nextUp = episode; - // } - //} + }).Cast<Episode>().FirstOrDefault(); if (lastWatchedEpisode != null) { diff --git a/MediaBrowser.Server.Implementations/packages.config b/MediaBrowser.Server.Implementations/packages.config index 326721ff3..93a7f03b9 100644 --- a/MediaBrowser.Server.Implementations/packages.config +++ b/MediaBrowser.Server.Implementations/packages.config @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CommonIO" version="1.0.0.9" targetFramework="net45" />
- <package id="Emby.XmlTv" version="1.0.0.53" targetFramework="net45" />
+ <package id="Emby.XmlTv" version="1.0.0.54" targetFramework="net45" />
<package id="ini-parser" version="2.3.0" targetFramework="net45" />
<package id="Interfaces.IO" version="1.0.0.5" targetFramework="net45" />
<package id="MediaBrowser.Naming" version="1.0.0.52" targetFramework="net45" />
<package id="Mono.Nat" version="1.2.24.0" targetFramework="net45" />
<package id="morelinq" version="1.4.0" targetFramework="net45" />
<package id="Patterns.Logging" version="1.0.0.2" targetFramework="net45" />
- <package id="SimpleInjector" version="3.1.5" targetFramework="net45" />
+ <package id="SimpleInjector" version="3.2.0" targetFramework="net45" />
<package id="SocketHttpListener" version="1.0.0.30" targetFramework="net45" />
</packages>
\ No newline at end of file |
