diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-25 15:17:44 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-07-25 15:17:44 -0400 |
| commit | bb721f610b4063c64111ca524920cd8062e64ec3 (patch) | |
| tree | b03f8a14a204b732c790940e53ed5aa7599e7770 | |
| parent | 4c19b9382feb560e3735f4a16fe691f1851b5244 (diff) | |
Added CumulativeRunTimeTicks
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/BaseItemDto.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemFields.cs | 5 |
4 files changed, 30 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 078b3c664..6f9836448 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -277,12 +277,16 @@ namespace MediaBrowser.Controller.Dto if (item.IsFolder) { - if (fields.Contains(ItemFields.ItemCounts)) + var hasItemCounts = fields.Contains(ItemFields.ItemCounts); + + if (hasItemCounts || fields.Contains(ItemFields.CumulativeRunTimeTicks)) { var folder = (Folder)item; - // Skip sorting since all we want is a count - dto.ChildCount = folder.GetChildren(user, true).Count(); + if (hasItemCounts) + { + dto.ChildCount = folder.GetChildren(user, true).Count(); + } SetSpecialCounts(folder, user, dto, _userDataRepository); } @@ -749,6 +753,7 @@ namespace MediaBrowser.Controller.Dto var rcentlyAddedItemCount = 0; var recursiveItemCount = 0; var unplayed = 0; + long runtime = 0; double totalPercentPlayed = 0; @@ -788,6 +793,8 @@ namespace MediaBrowser.Controller.Dto { unplayed++; } + + runtime += child.RunTimeTicks ?? 0; } dto.RecursiveItemCount = recursiveItemCount; @@ -798,6 +805,11 @@ namespace MediaBrowser.Controller.Dto { dto.PlayedPercentage = totalPercentPlayed / recursiveItemCount; } + + if (runtime > 0) + { + dto.CumulativeRunTimeTicks = runtime; + } } /// <summary> @@ -833,7 +845,9 @@ namespace MediaBrowser.Controller.Dto )).ConfigureAwait(false); - var dictionary = entities.Where(i => i != null).ToDictionary(i => i.Name, StringComparer.OrdinalIgnoreCase); + var dictionary = entities.Where(i => i != null) + .Distinct() + .ToDictionary(i => i.Name, StringComparer.OrdinalIgnoreCase); for (var i = 0; i < people.Count; i++) { diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index d57c354f7..9564bf5a8 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -24,6 +24,7 @@ namespace MediaBrowser.Controller.Resolvers ".m2ts", ".img", ".iso", + ".mk3d", ".ts", ".rmvb", ".mov", diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index d6217c1e7..1c0fbed07 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -113,6 +113,12 @@ namespace MediaBrowser.Model.Dto /// </summary> /// <value>The original run time ticks.</value> public long? OriginalRunTimeTicks { get; set; } + + /// <summary> + /// Gets or sets the cumulative run time ticks. + /// </summary> + /// <value>The cumulative run time ticks.</value> + public long? CumulativeRunTimeTicks { get; set; } /// <summary> /// Gets or sets the run time ticks. diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs index 4e412d0ac..b39325fe2 100644 --- a/MediaBrowser.Model/Querying/ItemFields.cs +++ b/MediaBrowser.Model/Querying/ItemFields.cs @@ -22,6 +22,11 @@ namespace MediaBrowser.Model.Querying CriticRatingSummary, /// <summary> + /// The cumulative run time ticks + /// </summary> + CumulativeRunTimeTicks, + + /// <summary> /// The custom rating /// </summary> CustomRating, |
