aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-06-29 13:59:44 -0400
committerGitHub <noreply@github.com>2016-06-29 13:59:44 -0400
commitd62fe7113592f9b1dfd5d68349a05de38a550843 (patch)
tree78e8c82618b27e350c583760afc2082868bdfb27 /MediaBrowser.Server.Implementations
parent1d6421dde983a6127c30314aec51497fa6161cc7 (diff)
parent636969e7ffbaafec3f458de4299966776bc72737 (diff)
Merge pull request #1888 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj6
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs11
-rw-r--r--MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs58
-rw-r--r--MediaBrowser.Server.Implementations/packages.config4
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