diff options
| author | Luke <luke.pulverenti@gmail.com> | 2015-02-19 12:50:05 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2015-02-19 12:50:05 -0500 |
| commit | 8c09665c40776060a09655fb4ea04ec65bdffb73 (patch) | |
| tree | b1432a7315a7a7689be21fa2e3cc122350c778b2 /MediaBrowser.Controller | |
| parent | 3cce8731614e6846096bbe54fca8336e7f5d98d9 (diff) | |
| parent | f2c3dade77878b48a9a333d745e5d92a0f913233 (diff) | |
Merge pull request #1016 from MediaBrowser/dev
3.0.5518.5
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Audio/MusicArtist.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Audio/MusicGenre.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/GameGenre.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Genre.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Movies/BoxSet.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Person.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Studio.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserViewBuilder.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Year.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserDataManager.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserManager.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Sync/ISyncManager.cs | 2 |
16 files changed, 94 insertions, 18 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index e65d3c0e7..2b8145041 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -52,6 +52,16 @@ namespace MediaBrowser.Controller.Entities.Audio } } + public override bool IsSaveLocalMetadataEnabled() + { + if (IsAccessedByName) + { + return true; + } + + return base.IsSaveLocalMetadataEnabled(); + } + private readonly Task _cachedTask = Task.FromResult(true); protected override Task ValidateChildrenInternal(IProgress<double> progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) { diff --git a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs index ed0956073..971c09236 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicGenre.cs @@ -44,6 +44,11 @@ namespace MediaBrowser.Controller.Entities.Audio return false; } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + /// <summary> /// Gets a value indicating whether this instance is owned item. /// </summary> diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 3ab02ea21..50a6dda30 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -976,14 +976,21 @@ namespace MediaBrowser.Controller.Entities lang = hasLang.PreferredMetadataLanguage; } - if (string.IsNullOrEmpty(lang)) + if (string.IsNullOrWhiteSpace(lang)) { lang = Parents.OfType<IHasPreferredMetadataLanguage>() .Select(i => i.PreferredMetadataLanguage) - .FirstOrDefault(i => !string.IsNullOrEmpty(i)); + .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i)); } - if (string.IsNullOrEmpty(lang)) + if (string.IsNullOrWhiteSpace(lang)) + { + lang = LibraryManager.GetCollectionFolders(this) + .Select(i => i.PreferredMetadataLanguage) + .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i)); + } + + if (string.IsNullOrWhiteSpace(lang)) { lang = ConfigurationManager.Configuration.PreferredMetadataLanguage; } @@ -1006,14 +1013,21 @@ namespace MediaBrowser.Controller.Entities lang = hasLang.PreferredMetadataCountryCode; } - if (string.IsNullOrEmpty(lang)) + if (string.IsNullOrWhiteSpace(lang)) { lang = Parents.OfType<IHasPreferredMetadataLanguage>() .Select(i => i.PreferredMetadataCountryCode) - .FirstOrDefault(i => !string.IsNullOrEmpty(i)); + .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i)); + } + + if (string.IsNullOrWhiteSpace(lang)) + { + lang = LibraryManager.GetCollectionFolders(this) + .Select(i => i.PreferredMetadataCountryCode) + .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i)); } - if (string.IsNullOrEmpty(lang)) + if (string.IsNullOrWhiteSpace(lang)) { lang = ConfigurationManager.Configuration.MetadataCountryCode; } diff --git a/MediaBrowser.Controller/Entities/GameGenre.cs b/MediaBrowser.Controller/Entities/GameGenre.cs index b246b9388..c91acbe3f 100644 --- a/MediaBrowser.Controller/Entities/GameGenre.cs +++ b/MediaBrowser.Controller/Entities/GameGenre.cs @@ -43,6 +43,11 @@ namespace MediaBrowser.Controller.Entities } } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + public override bool CanDelete() { return false; diff --git a/MediaBrowser.Controller/Entities/Genre.cs b/MediaBrowser.Controller/Entities/Genre.cs index e17a5c1d8..cb68e5dae 100644 --- a/MediaBrowser.Controller/Entities/Genre.cs +++ b/MediaBrowser.Controller/Entities/Genre.cs @@ -34,6 +34,11 @@ namespace MediaBrowser.Controller.Entities } } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + public override bool CanDelete() { return false; diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index d874046ef..0778643da 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -79,6 +79,11 @@ namespace MediaBrowser.Controller.Entities.Movies return true; } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + /// <summary> /// Gets the trailer ids. /// </summary> diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index d8cb69ca1..ef24d4347 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -1,8 +1,8 @@ -using System.Runtime.Serialization; -using MediaBrowser.Controller.Providers; +using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.Serialization; namespace MediaBrowser.Controller.Entities { @@ -50,6 +50,11 @@ namespace MediaBrowser.Controller.Entities return false; } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + /// <summary> /// Gets a value indicating whether this instance is owned item. /// </summary> diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs index 31bbaf422..b8d359369 100644 --- a/MediaBrowser.Controller/Entities/Studio.cs +++ b/MediaBrowser.Controller/Entities/Studio.cs @@ -45,6 +45,11 @@ namespace MediaBrowser.Controller.Entities return false; } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + /// <summary> /// Gets a value indicating whether this instance is owned item. /// </summary> @@ -63,7 +68,6 @@ namespace MediaBrowser.Controller.Entities return inputItems.Where(GetItemFilter()); } - public Func<BaseItem, bool> GetItemFilter() { return i => i.Studios.Contains(Name, StringComparer.OrdinalIgnoreCase); diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 619617e9f..4c34460d7 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -1,7 +1,4 @@ -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Controller.Localization; -using MediaBrowser.Controller.Providers; +using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; @@ -10,6 +7,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; +using System.Threading; +using System.Threading.Tasks; namespace MediaBrowser.Controller.Entities.TV { diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index b5ca053ec..85c10c272 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -1632,7 +1632,7 @@ namespace MediaBrowser.Controller.Entities var ok = new[] { item }.Any(i => i.People != null && i.People.Any(p => - p.Name.Equals(query.Person, StringComparison.OrdinalIgnoreCase) && (types.Contains(p.Type, StringComparer.OrdinalIgnoreCase) || types.Contains(p.Role, StringComparer.OrdinalIgnoreCase)))); + string.Equals(p.Name, query.Person, StringComparison.OrdinalIgnoreCase) && (types.Contains(p.Type ?? string.Empty, StringComparer.OrdinalIgnoreCase) || types.Contains(p.Role ?? string.Empty, StringComparer.OrdinalIgnoreCase)))); if (!ok) { diff --git a/MediaBrowser.Controller/Entities/Year.cs b/MediaBrowser.Controller/Entities/Year.cs index cf3ad3b6a..a1a152387 100644 --- a/MediaBrowser.Controller/Entities/Year.cs +++ b/MediaBrowser.Controller/Entities/Year.cs @@ -52,6 +52,11 @@ namespace MediaBrowser.Controller.Entities } } + public override bool IsSaveLocalMetadataEnabled() + { + return true; + } + public IEnumerable<BaseItem> GetTaggedItems(IEnumerable<BaseItem> inputItems) { int year; diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 9871ef3c5..9c8ed45a5 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -393,5 +393,12 @@ namespace MediaBrowser.Controller.Library /// <returns>IEnumerable<Video>.</returns> IEnumerable<Video> FindExtras(BaseItem owner, List<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService); + + /// <summary> + /// Gets the collection folders. + /// </summary> + /// <param name="item">The item.</param> + /// <returns>IEnumerable<Folder>.</returns> + IEnumerable<Folder> GetCollectionFolders(BaseItem item); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index 06e7d1763..f230f1472 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -64,6 +64,6 @@ namespace MediaBrowser.Controller.Library /// <summary> /// Updates playstate for an item and returns true or false indicating if it was played to completion /// </summary> - bool UpdatePlayState(BaseItem item, UserItemData data, long positionTicks); + bool UpdatePlayState(BaseItem item, UserItemData data, long? positionTicks); } } diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs index 97a3cced9..8119e5afb 100644 --- a/MediaBrowser.Controller/Library/IUserManager.cs +++ b/MediaBrowser.Controller/Library/IUserManager.cs @@ -121,9 +121,8 @@ namespace MediaBrowser.Controller.Library /// Gets the offline user dto. /// </summary> /// <param name="user">The user.</param> - /// <param name="deviceId">The device identifier.</param> /// <returns>UserDto.</returns> - UserDto GetOfflineUserDto(User user, string deviceId); + UserDto GetOfflineUserDto(User user); /// <summary> /// Resets the easy password. diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index a37f7eb8a..a22e492f4 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -294,6 +294,19 @@ namespace MediaBrowser.Controller.Providers break; } + case "CountryCode": + { + var val = reader.ReadElementContentAsString(); + + var hasLanguage = item as IHasPreferredMetadataLanguage; + if (hasLanguage != null) + { + hasLanguage.PreferredMetadataCountryCode = val; + } + + break; + } + case "PlaceOfBirth": { var val = reader.ReadElementContentAsString(); diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs index 4d654575e..4b800cac9 100644 --- a/MediaBrowser.Controller/Sync/ISyncManager.cs +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -123,7 +123,7 @@ namespace MediaBrowser.Controller.Sync /// </summary> /// <param name="targetId">The target identifier.</param> /// <returns>List<SyncedItem>.</returns> - List<SyncedItem> GetReadySyncItems(string targetId); + Task<List<SyncedItem>> GetReadySyncItems(string targetId); /// <summary> /// Synchronizes the data. |
