aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-09 21:36:24 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-12-09 21:36:24 -0500
commite23efc9a84d7fbb02176c0dfd481664f8b0c2416 (patch)
treecaa176683971b4edcd01f01fddbae40d8a43a736
parentde005051f8e6840bb8f4478a0da0c97d0779a0a4 (diff)
have seasons refresh on series folder changes
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs63
-rw-r--r--MediaBrowser.Mono.userprefs36
-rw-r--r--MediaBrowser.Providers/CollectionFolderImageProvider.cs7
-rw-r--r--MediaBrowser.Providers/ImageFromMediaLocationProvider.cs15
-rw-r--r--MediaBrowser.Providers/ImagesByNameProvider.cs7
5 files changed, 59 insertions, 69 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index 40afe0b54..0acb45f93 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -325,6 +325,16 @@ namespace MediaBrowser.Controller.Providers
return !item.ResolveArgs.IsDirectory;
}
+ protected virtual IEnumerable<BaseItem> GetItemsForFileStampComparison(BaseItem item)
+ {
+ if (UseParentFileSystemStamp(item) && item.Parent != null)
+ {
+ return new[] { item.Parent };
+ }
+
+ return new[] { item };
+ }
+
/// <summary>
/// Gets the item's current file system stamp
/// </summary>
@@ -332,12 +342,7 @@ namespace MediaBrowser.Controller.Providers
/// <returns>Guid.</returns>
private Guid GetCurrentFileSystemStamp(BaseItem item)
{
- if (UseParentFileSystemStamp(item) && item.Parent != null)
- {
- return GetFileSystemStamp(item.Parent);
- }
-
- return GetFileSystemStamp(item);
+ return GetFileSystemStamp(GetItemsForFileStampComparison(item));
}
private Dictionary<string, string> _fileStampExtensionsDictionary;
@@ -355,43 +360,37 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Gets the file system stamp.
/// </summary>
- /// <param name="item">The item.</param>
+ /// <param name="items">The items.</param>
/// <returns>Guid.</returns>
- protected virtual Guid GetFileSystemStamp(BaseItem item)
+ protected virtual Guid GetFileSystemStamp(IEnumerable<BaseItem> items)
{
- // If there's no path or the item is a file, there's nothing to do
- if (item.LocationType != LocationType.FileSystem)
- {
- return Guid.Empty;
- }
+ var sb = new StringBuilder();
- ItemResolveArgs resolveArgs;
+ var extensions = FileStampExtensionsDictionary;
+ var numExtensions = FilestampExtensions.Length;
- try
- {
- resolveArgs = item.ResolveArgs;
- }
- catch (IOException ex)
+ foreach (var item in items)
{
- Logger.ErrorException("Error determining if path is directory: {0}", ex, item.Path);
- throw;
+ // If there's no path or the item is a file, there's nothing to do
+ if (item.LocationType == LocationType.FileSystem)
+ {
+ var resolveArgs = item.ResolveArgs;
+
+ if (resolveArgs.IsDirectory)
+ {
+ // Record the name of each file
+ // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order
+ AddFiles(sb, resolveArgs.FileSystemChildren, extensions, numExtensions);
+ AddFiles(sb, resolveArgs.MetadataFiles, extensions, numExtensions);
+ }
+ }
}
- if (!resolveArgs.IsDirectory)
+ if (sb.Length == 0)
{
return Guid.Empty;
}
- var sb = new StringBuilder();
-
- var extensions = FileStampExtensionsDictionary;
- var numExtensions = FilestampExtensions.Length;
-
- // Record the name of each file
- // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order
- AddFiles(sb, resolveArgs.FileSystemChildren, extensions, numExtensions);
- AddFiles(sb, resolveArgs.MetadataFiles, extensions, numExtensions);
-
return sb.ToString().GetMD5();
}
diff --git a/MediaBrowser.Mono.userprefs b/MediaBrowser.Mono.userprefs
index d07dfa4cb..666ef38ac 100644
--- a/MediaBrowser.Mono.userprefs
+++ b/MediaBrowser.Mono.userprefs
@@ -1,43 +1,17 @@
<Properties>
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|x86" />
- <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Implementations\Library\UserManager.cs">
+ <MonoDevelop.Ide.Workbench ActiveDocument="C:\Program Files (x86)\Mono-3.2.3\lib\mono\4.0\Microsoft.Common.targets">
<Files>
- <File FileName="MediaBrowser.Server.Mono\app.config" Line="9" Column="10" />
+ <File FileName="MediaBrowser.Server.Mono\app.config" Line="1" Column="1" />
<File FileName="MediaBrowser.Server.Mono\FFMpeg\FFMpegDownloadInfo.cs" Line="1" Column="1" />
- <File FileName="MediaBrowser.Server.Mono\Program.cs" Line="84" Column="7" />
- <File FileName="MediaBrowser.Server.Implementations\Library\UserManager.cs" Line="235" Column="10" />
+ <File FileName="MediaBrowser.Server.Mono\Program.cs" Line="1" Column="1" />
+ <File FileName="MediaBrowser.Server.Implementations\Library\UserManager.cs" Line="407" Column="4" />
+ <File FileName="C:\Program Files (x86)\Mono-3.2.3\lib\mono\4.0\Microsoft.Common.targets" Line="8" Column="15" />
</Files>
- <Pads>
- <Pad Id="ProjectPad">
- <State expanded="True">
- <Node name="MediaBrowser.Api" expanded="True" />
- <Node name="MediaBrowser.Common" expanded="True" />
- <Node name="MediaBrowser.Common.Implementations" expanded="True" />
- <Node name="MediaBrowser.Controller" expanded="True" />
- <Node name="MediaBrowser.Server.Implementations" expanded="True">
- <Node name="Library" expanded="True">
- <Node name="UserManager.cs" selected="True" />
- </Node>
- </Node>
- <Node name="MediaBrowser.Server.Mono" expanded="True">
- <Node name="References" expanded="True" />
- <Node name="FFMpeg" expanded="True" />
- </Node>
- <Node name="MediaBrowser.WebDashboard" expanded="True" />
- </State>
- </Pad>
- <Pad Id="ClassPad">
- <State expanded="True" selected="True" />
- </Pad>
- <Pad Id="MonoDevelop.Debugger.WatchPad">
- <State />
- </Pad>
- </Pads>
</MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.DebuggingService.Breakpoints>
<BreakpointStore>
<Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Common.Implementations\HttpClientManager\HttpClientManager.cs" line="477" column="17" />
- <Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Server.Implementations\Library\UserManager.cs" line="222" column="1" />
</BreakpointStore>
</MonoDevelop.Ide.DebuggingService.Breakpoints>
<MonoDevelop.Ide.DebuggingService.PinnedWatches />
diff --git a/MediaBrowser.Providers/CollectionFolderImageProvider.cs b/MediaBrowser.Providers/CollectionFolderImageProvider.cs
index 45b1b36c2..6c36dbf7e 100644
--- a/MediaBrowser.Providers/CollectionFolderImageProvider.cs
+++ b/MediaBrowser.Providers/CollectionFolderImageProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.IO;
+using System.Collections.Generic;
+using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -35,9 +36,9 @@ namespace MediaBrowser.Providers
.FirstOrDefault(i => i != null);
}
- protected override Guid GetFileSystemStamp(BaseItem item)
+ protected override Guid GetFileSystemStamp(IEnumerable<BaseItem> items)
{
- var files = item.ResolveArgs.PhysicalLocations
+ var files = items.SelectMany(i => i.ResolveArgs.PhysicalLocations)
.Select(i => new DirectoryInfo(i))
.SelectMany(i => i.EnumerateFiles("*", SearchOption.TopDirectoryOnly))
.Where(i =>
diff --git a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
index 37d39f3d9..65e8afd7a 100644
--- a/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
+++ b/MediaBrowser.Providers/ImageFromMediaLocationProvider.cs
@@ -58,6 +58,21 @@ namespace MediaBrowser.Providers
return false;
}
+ protected override IEnumerable<BaseItem> GetItemsForFileStampComparison(BaseItem item)
+ {
+ var season = item as Season;
+ if (season != null)
+ {
+ var series = season.Series;
+ if (series != null)
+ {
+ return new[] { item, series };
+ }
+ }
+
+ return base.GetItemsForFileStampComparison(item);
+ }
+
/// <summary>
/// Gets the priority.
/// </summary>
diff --git a/MediaBrowser.Providers/ImagesByNameProvider.cs b/MediaBrowser.Providers/ImagesByNameProvider.cs
index 590430823..8c5636580 100644
--- a/MediaBrowser.Providers/ImagesByNameProvider.cs
+++ b/MediaBrowser.Providers/ImagesByNameProvider.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.IO;
+using System.Collections.Generic;
+using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
@@ -69,9 +70,9 @@ namespace MediaBrowser.Providers
return GetImageFromLocation(location, filenameWithoutExtension);
}
- protected override Guid GetFileSystemStamp(BaseItem item)
+ protected override Guid GetFileSystemStamp(IEnumerable<BaseItem> items)
{
- var location = GetLocation(item);
+ var location = GetLocation(items.First());
try
{