aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/MusicVideo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/MusicVideo.cs')
-rw-r--r--MediaBrowser.Controller/Entities/MusicVideo.cs79
1 files changed, 79 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs
new file mode 100644
index 000000000..78f9d0671
--- /dev/null
+++ b/MediaBrowser.Controller/Entities/MusicVideo.cs
@@ -0,0 +1,79 @@
+using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Configuration;
+using System.Collections.Generic;
+using MediaBrowser.Model.Serialization;
+using System;
+
+namespace MediaBrowser.Controller.Entities
+{
+ public class MusicVideo : Video, IHasArtist, IHasMusicGenres, IHasLookupInfo<MusicVideoInfo>
+ {
+ [IgnoreDataMember]
+ public string[] Artists { get; set; }
+
+ public MusicVideo()
+ {
+ Artists = new string[] {};
+ }
+
+ [IgnoreDataMember]
+ public string[] AllArtists
+ {
+ get
+ {
+ return Artists;
+ }
+ }
+
+ public override UnratedItem GetBlockUnratedType()
+ {
+ return UnratedItem.Music;
+ }
+
+ public MusicVideoInfo GetLookupInfo()
+ {
+ var info = GetItemLookupInfo<MusicVideoInfo>();
+
+ info.Artists = Artists;
+
+ return info;
+ }
+
+ public override bool BeforeMetadataRefresh(bool replaceAllMetdata)
+ {
+ var hasChanges = base.BeforeMetadataRefresh(replaceAllMetdata);
+
+ if (!ProductionYear.HasValue)
+ {
+ var info = LibraryManager.ParseName(Name);
+
+ var yearInName = info.Year;
+
+ if (yearInName.HasValue)
+ {
+ ProductionYear = yearInName;
+ hasChanges = true;
+ }
+ else
+ {
+ // Try to get the year from the folder name
+ if (!IsInMixedFolder)
+ {
+ info = LibraryManager.ParseName(System.IO.Path.GetFileName(ContainingFolderPath));
+
+ yearInName = info.Year;
+
+ if (yearInName.HasValue)
+ {
+ ProductionYear = yearInName;
+ hasChanges = true;
+ }
+ }
+ }
+ }
+
+ return hasChanges;
+ }
+ }
+}