aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-24 21:22:21 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-24 21:22:21 -0400
commit92cd71143daa2d49abb0421a9cb641e9bf4489ae (patch)
treeb76e22c51681e90d85235fa06f51c76d3f2f9d06 /MediaBrowser.Controller
parent12c6bc27f291fda668faaceba2fdc0920c446445 (diff)
Only fire metadata savers when appropriate
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Dto/DtoBuilder.cs5
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs7
-rw-r--r--MediaBrowser.Controller/Entities/User.cs4
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs7
-rw-r--r--MediaBrowser.Controller/Library/ItemUpdateType.cs13
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs23
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs5
-rw-r--r--MediaBrowser.Controller/Providers/IProviderManager.cs6
9 files changed, 62 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs
index 2e28d7ad6..2bd338431 100644
--- a/MediaBrowser.Controller/Dto/DtoBuilder.cs
+++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs
@@ -389,6 +389,11 @@ namespace MediaBrowser.Controller.Dto
dto.SortName = item.SortName;
}
+ if (fields.Contains(ItemFields.CustomRating))
+ {
+ dto.CustomRating = item.CustomRating;
+ }
+
if (fields.Contains(ItemFields.Taglines))
{
dto.Taglines = item.Taglines;
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index dbfeff747..695ea2583 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -834,12 +834,15 @@ namespace MediaBrowser.Controller.Entities
cancellationToken.ThrowIfCancellationRequested();
// Get the result from the item task
- var changed = await itemRefreshTask.ConfigureAwait(false);
+ var updateReason = await itemRefreshTask.ConfigureAwait(false);
+
+ var changed = updateReason.HasValue;
if (changed || forceSave || themeSongsChanged || themeVideosChanged || localTrailersChanged)
{
cancellationToken.ThrowIfCancellationRequested();
- await LibraryManager.UpdateItem(this, cancellationToken).ConfigureAwait(false);
+
+ await LibraryManager.UpdateItem(this, updateReason ?? ItemUpdateType.Unspecified, cancellationToken).ConfigureAwait(false);
}
return changed;
diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs
index a2c5f98b8..79a813bb5 100644
--- a/MediaBrowser.Controller/Entities/User.cs
+++ b/MediaBrowser.Controller/Entities/User.cs
@@ -315,7 +315,9 @@ namespace MediaBrowser.Controller.Entities
ResolveArgs = null;
}
- var changed = await ProviderManager.ExecuteMetadataProviders(this, cancellationToken, forceRefresh, allowSlowProviders).ConfigureAwait(false);
+ var updateReason = await ProviderManager.ExecuteMetadataProviders(this, cancellationToken, forceRefresh, allowSlowProviders).ConfigureAwait(false);
+
+ var changed = updateReason.HasValue;
if (changed || forceSave)
{
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index 46a6d38df..f1d5dce89 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -152,13 +152,15 @@ namespace MediaBrowser.Controller.Library
/// <param name="itemComparers">The item comparers.</param>
/// <param name="prescanTasks">The prescan tasks.</param>
/// <param name="postscanTasks">The postscan tasks.</param>
+ /// <param name="savers">The savers.</param>
void AddParts(IEnumerable<IResolverIgnoreRule> rules,
IEnumerable<IVirtualFolderCreator> pluginFolders,
IEnumerable<IItemResolver> resolvers,
IEnumerable<IIntroProvider> introProviders,
IEnumerable<IBaseItemComparer> itemComparers,
IEnumerable<ILibraryPrescanTask> prescanTasks,
- IEnumerable<ILibraryPostScanTask> postscanTasks);
+ IEnumerable<ILibraryPostScanTask> postscanTasks,
+ IEnumerable<IMetadataSaver> savers);
/// <summary>
/// Sorts the specified items.
@@ -205,9 +207,10 @@ namespace MediaBrowser.Controller.Library
/// Updates the item.
/// </summary>
/// <param name="item">The item.</param>
+ /// <param name="updateReason">The update reason.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- Task UpdateItem(BaseItem item, CancellationToken cancellationToken);
+ Task UpdateItem(BaseItem item, ItemUpdateType updateReason, CancellationToken cancellationToken);
/// <summary>
/// Retrieves the item.
diff --git a/MediaBrowser.Controller/Library/ItemUpdateType.cs b/MediaBrowser.Controller/Library/ItemUpdateType.cs
new file mode 100644
index 000000000..56ae2cbbd
--- /dev/null
+++ b/MediaBrowser.Controller/Library/ItemUpdateType.cs
@@ -0,0 +1,13 @@
+using System;
+
+namespace MediaBrowser.Controller.Library
+{
+ [Flags]
+ public enum ItemUpdateType
+ {
+ Unspecified = 1,
+ MetadataImport = 2,
+ ImageUpdate = 4,
+ MetadataEdit = 16
+ }
+}
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 0bd82eaa7..2c6a6df08 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -81,6 +81,7 @@
<Compile Include="Library\ILibraryPostScanTask.cs" />
<Compile Include="Library\ILibraryPrescanTask.cs" />
<Compile Include="Library\IMetadataSaver.cs" />
+ <Compile Include="Library\ItemUpdateType.cs" />
<Compile Include="Localization\ILocalizationManager.cs" />
<Compile Include="Reflection\TypeMapper.cs" />
<Compile Include="Session\ISessionManager.cs" />
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
index 29cf43f28..6c3d08a14 100644
--- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
+++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
@@ -124,6 +124,17 @@ namespace MediaBrowser.Controller.Providers
break;
}
+ case "CriticRating":
+ {
+ var text = reader.ReadElementContentAsString();
+ float value;
+ if (float.TryParse(text, NumberStyles.Any, _usCulture, out value))
+ {
+ item.CriticRating = value;
+ }
+
+ break;
+ }
case "Budget":
{
var text = reader.ReadElementContentAsString();
@@ -163,6 +174,18 @@ namespace MediaBrowser.Controller.Providers
break;
}
+ case "CriticRatingSummary":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ item.CriticRatingSummary = val;
+ }
+
+ break;
+ }
+
case "TagLine":
{
var tagline = reader.ReadElementContentAsString();
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index 625910c0b..e415c6859 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -75,6 +75,11 @@ namespace MediaBrowser.Controller.Providers
}
}
+ public virtual ItemUpdateType ItemUpdateType
+ {
+ get { return RequiresInternet ? ItemUpdateType.MetadataEdit : ItemUpdateType.MetadataImport; }
+ }
+
/// <summary>
/// Gets a value indicating whether [refresh on version change].
/// </summary>
diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs
index 7f80973e9..643dbe1c2 100644
--- a/MediaBrowser.Controller/Providers/IProviderManager.cs
+++ b/MediaBrowser.Controller/Providers/IProviderManager.cs
@@ -55,15 +55,13 @@ namespace MediaBrowser.Controller.Providers
/// <param name="force">if set to <c>true</c> [force].</param>
/// <param name="allowSlowProviders">if set to <c>true</c> [allow slow providers].</param>
/// <returns>Task{System.Boolean}.</returns>
- Task<bool> ExecuteMetadataProviders(BaseItem item, CancellationToken cancellationToken, bool force = false, bool allowSlowProviders = true);
+ Task<ItemUpdateType?> ExecuteMetadataProviders(BaseItem item, CancellationToken cancellationToken, bool force = false, bool allowSlowProviders = true);
/// <summary>
/// Adds the metadata providers.
/// </summary>
/// <param name="providers">The providers.</param>
- /// <param name="savers">The savers.</param>
- void AddParts(IEnumerable<BaseMetadataProvider> providers,
- IEnumerable<IMetadataSaver> savers);
+ void AddParts(IEnumerable<BaseMetadataProvider> providers);
/// <summary>
/// Gets the save path.