aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/BaseItem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItem.cs')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs105
1 files changed, 61 insertions, 44 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index e1a7741c9..2aa53d651 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
-using MediaBrowser.Controller.Localization;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
@@ -19,14 +18,20 @@ using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
-using System.Runtime.Serialization;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
-using CommonIO;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Extensions;
+using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Sorting;
+using MediaBrowser.Model.Extensions;
+using MediaBrowser.Model.Globalization;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Providers;
+using MediaBrowser.Model.Querying;
+using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Controller.Entities
{
@@ -138,6 +143,15 @@ namespace MediaBrowser.Controller.Entities
}
}
+ [IgnoreDataMember]
+ public virtual bool SupportsPositionTicksResume
+ {
+ get
+ {
+ return false;
+ }
+ }
+
public bool DetectIsInMixedFolder()
{
if (SupportsIsInMixedFolderDetection)
@@ -199,6 +213,19 @@ namespace MediaBrowser.Controller.Entities
get { return PremiereDate.HasValue && PremiereDate.Value.ToLocalTime().Date >= DateTime.Now.Date; }
}
+ public int? TotalBitrate { get; set; }
+ public ExtraType? ExtraType { get; set; }
+
+ [IgnoreDataMember]
+ public bool IsThemeMedia
+ {
+ get
+ {
+ return ExtraType.HasValue && (ExtraType.Value == Model.Entities.ExtraType.ThemeSong || ExtraType.Value == Model.Entities.ExtraType.ThemeVideo);
+ }
+ }
+
+ [IgnoreDataMember]
public string OriginalTitle { get; set; }
/// <summary>
@@ -279,28 +306,11 @@ namespace MediaBrowser.Controller.Entities
/// If this content came from an external service, the id of the content on that service
/// </summary>
[IgnoreDataMember]
- public string ExternalId
- {
- get { return this.GetProviderId("ProviderExternalId"); }
- set
- {
- this.SetProviderId("ProviderExternalId", value);
- }
- }
+ public string ExternalId { get; set; }
[IgnoreDataMember]
public string ExternalSeriesId { get; set; }
- [IgnoreDataMember]
- public string ExternalSeriesIdLegacy
- {
- get { return this.GetProviderId("ProviderExternalSeriesId"); }
- set
- {
- this.SetProviderId("ProviderExternalSeriesId", value);
- }
- }
-
/// <summary>
/// Gets or sets the etag.
/// </summary>
@@ -1031,7 +1041,7 @@ namespace MediaBrowser.Controller.Entities
audio = dbItem;
}
- audio.ExtraType = ExtraType.ThemeSong;
+ audio.ExtraType = MediaBrowser.Model.Entities.ExtraType.ThemeSong;
return audio;
@@ -1061,7 +1071,7 @@ namespace MediaBrowser.Controller.Entities
item = dbItem;
}
- item.ExtraType = ExtraType.ThemeVideo;
+ item.ExtraType = MediaBrowser.Model.Entities.ExtraType.ThemeVideo;
return item;
@@ -1211,7 +1221,7 @@ namespace MediaBrowser.Controller.Entities
if (!i.IsThemeMedia)
{
- i.ExtraType = ExtraType.ThemeVideo;
+ i.ExtraType = MediaBrowser.Model.Entities.ExtraType.ThemeVideo;
subOptions.ForceSave = true;
}
@@ -1241,7 +1251,7 @@ namespace MediaBrowser.Controller.Entities
if (!i.IsThemeMedia)
{
- i.ExtraType = ExtraType.ThemeSong;
+ i.ExtraType = MediaBrowser.Model.Entities.ExtraType.ThemeSong;
subOptions.ForceSave = true;
}
@@ -1569,6 +1579,12 @@ namespace MediaBrowser.Controller.Entities
return IsVisibleStandaloneInternal(user, true);
}
+ [IgnoreDataMember]
+ public virtual bool SupportsInheritedParentImages
+ {
+ get { return false; }
+ }
+
protected bool IsVisibleStandaloneInternal(User user, bool checkFolders)
{
if (!IsVisible(user))
@@ -1875,19 +1891,7 @@ namespace MediaBrowser.Controller.Entities
if (info.IsLocalFile)
{
- // Delete the source file
- var currentFile = new FileInfo(info.Path);
-
- // Deletion will fail if the file is hidden so remove the attribute first
- if (currentFile.Exists)
- {
- if ((currentFile.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
- {
- currentFile.Attributes &= ~FileAttributes.Hidden;
- }
-
- FileSystem.DeleteFile(currentFile.FullName);
- }
+ FileSystem.DeleteFile(info.Path);
}
return UpdateToRepository(ItemUpdateType.ImageUpdate, CancellationToken.None);
@@ -2146,7 +2150,7 @@ namespace MediaBrowser.Controller.Entities
{
MetadataCountryCode = GetPreferredMetadataCountryCode(),
MetadataLanguage = GetPreferredMetadataLanguage(),
- Name = Name,
+ Name = GetNameForMetadataLookup(),
ProviderIds = ProviderIds,
IndexNumber = IndexNumber,
ParentIndexNumber = ParentIndexNumber,
@@ -2155,6 +2159,11 @@ namespace MediaBrowser.Controller.Entities
};
}
+ protected virtual string GetNameForMetadataLookup()
+ {
+ return Name;
+ }
+
/// <summary>
/// This is called before any metadata refresh and returns true or false indicating if changes were made
/// </summary>
@@ -2183,7 +2192,7 @@ namespace MediaBrowser.Controller.Entities
return path;
}
- public virtual Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user)
+ public virtual Task FillUserDataDtoValues(UserItemDataDto dto, UserItemData userData, BaseItemDto itemDto, User user, List<ItemFields> itemFields)
{
if (RunTimeTicks.HasValue)
{
@@ -2336,17 +2345,25 @@ namespace MediaBrowser.Controller.Entities
{
get
{
- if (GetParent() is AggregateFolder || this is BasePluginFolder || this is Channel)
+ if (this is BasePluginFolder || this is Channel)
{
return true;
}
var view = this as UserView;
- if (view != null && string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ if (view != null)
{
- return true;
+ if (string.Equals(view.ViewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+ if (string.Equals(view.ViewType, CollectionType.Channels, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
}
- if (view != null && string.Equals(view.ViewType, CollectionType.Channels, StringComparison.OrdinalIgnoreCase))
+
+ if (GetParent() is AggregateFolder)
{
return true;
}