prevent xml savers from triggering xml providers

pull/702/head
Luke Pulverenti 11 years ago
parent 5f0d8000a5
commit 9f4f2281cd

@ -154,6 +154,8 @@ namespace MediaBrowser.Controller.Entities
/// <value>The date modified.</value> /// <value>The date modified.</value>
public DateTime DateModified { get; set; } public DateTime DateModified { get; set; }
public DateTime DateLastSaved { get; set; }
/// <summary> /// <summary>
/// The logger /// The logger
/// </summary> /// </summary>
@ -827,7 +829,7 @@ namespace MediaBrowser.Controller.Entities
/// <returns>true if a provider reports we changed</returns> /// <returns>true if a provider reports we changed</returns>
public virtual async Task<bool> RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true) public virtual async Task<bool> RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true)
{ {
if (resetResolveArgs || ResolveArgs == null) if (resetResolveArgs)
{ {
// Reload this // Reload this
ResetResolveArgs(); ResetResolveArgs();

@ -23,42 +23,61 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86 Debug|x86 = Debug|x86
Release|x86 = Release|x86 Release|x86 = Release|x86
Release|Any CPU = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.ActiveCfg = Debug|x86 {175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.ActiveCfg = Debug|x86
{175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.Build.0 = Debug|x86 {175A9388-F352-4586-A6B4-070DED62B644}.Debug|x86.Build.0 = Debug|x86
{175A9388-F352-4586-A6B4-070DED62B644}.Release|Any CPU.ActiveCfg = Release|Any CPU
{175A9388-F352-4586-A6B4-070DED62B644}.Release|Any CPU.Build.0 = Release|Any CPU
{175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.ActiveCfg = Release|x86 {175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.ActiveCfg = Release|x86
{175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.Build.0 = Release|x86 {175A9388-F352-4586-A6B4-070DED62B644}.Release|x86.Build.0 = Release|x86
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.ActiveCfg = Debug|x86 {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.ActiveCfg = Debug|x86
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.Build.0 = Debug|x86 {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Debug|x86.Build.0 = Debug|x86
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|x86 {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|x86 {17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|Any CPU.Build.0 = Release|Any CPU
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.ActiveCfg = Release|Any CPU
{17E1F4E6-8ABD-4FE5-9ECF-43D4B6087BA2}.Release|x86.Build.0 = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.ActiveCfg = Debug|Any CPU {2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.Build.0 = Debug|Any CPU {2E781478-814D-4A48-9D80-BFF206441A65}.Debug|x86.Build.0 = Debug|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|Any CPU.Build.0 = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.ActiveCfg = Release|Any CPU {2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.ActiveCfg = Release|Any CPU
{2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.Build.0 = Release|Any CPU {2E781478-814D-4A48-9D80-BFF206441A65}.Release|x86.Build.0 = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.ActiveCfg = Debug|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.Build.0 = Debug|Any CPU {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Debug|x86.Build.0 = Debug|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|Any CPU.Build.0 = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.ActiveCfg = Release|Any CPU
{442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.Build.0 = Release|Any CPU {442B5058-DCAF-4263-BB6A-F21E31120A1B}.Release|x86.Build.0 = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.ActiveCfg = Debug|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.ActiveCfg = Debug|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.Build.0 = Debug|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Debug|x86.Build.0 = Debug|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|Any CPU.Build.0 = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.ActiveCfg = Release|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.ActiveCfg = Release|Any CPU
{4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.Build.0 = Release|Any CPU {4FD51AC5-2C16-4308-A993-C3A84F3B4582}.Release|x86.Build.0 = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.ActiveCfg = Debug|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.ActiveCfg = Debug|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.Build.0 = Debug|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Debug|x86.Build.0 = Debug|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|Any CPU.Build.0 = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.ActiveCfg = Release|Any CPU
{5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU {5624B7B5-B5A7-41D8-9F10-CC5611109619}.Release|x86.Build.0 = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.ActiveCfg = Debug|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.ActiveCfg = Debug|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.Build.0 = Debug|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Debug|x86.Build.0 = Debug|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|Any CPU.Build.0 = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.ActiveCfg = Release|Any CPU
{7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU {7EEEB4BB-F3E8-48FC-B4C5-70F0FFF8329B}.Release|x86.Build.0 = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.ActiveCfg = Debug|Any CPU {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.ActiveCfg = Debug|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.Build.0 = Debug|Any CPU {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Debug|x86.Build.0 = Debug|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|Any CPU.Build.0 = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.ActiveCfg = Release|Any CPU {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.ActiveCfg = Release|Any CPU
{9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.Build.0 = Release|Any CPU {9142EEFA-7570-41E1-BFCC-468BB571AF2F}.Release|x86.Build.0 = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.ActiveCfg = Debug|Any CPU {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.Build.0 = Debug|Any CPU {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Debug|x86.Build.0 = Debug|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|Any CPU.Build.0 = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.ActiveCfg = Release|Any CPU {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.ActiveCfg = Release|Any CPU
{C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.Build.0 = Release|Any CPU {C4D2573A-3FD3-441F-81AF-174AC4CD4E1D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection

@ -1,17 +1,13 @@
<Properties> <Properties>
<MonoDevelop.Ide.Workspace ActiveConfiguration="Release|x86" /> <MonoDevelop.Ide.Workspace ActiveConfiguration="Release" />
<MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.ServerApplication\EntryPoints\StartupWizard.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="MediaBrowser.Server.Mono\app.config">
<Files> <Files>
<File FileName="MediaBrowser.Server.Mono\Program.cs" Line="13" Column="1" /> <File FileName="MediaBrowser.Server.Mono\app.config" Line="3" Column="19" />
<File FileName="MediaBrowser.ServerApplication\EntryPoints\StartupWizard.cs" Line="32" Column="23" />
</Files> </Files>
<Pads> <Pads>
<Pad Id="ProjectPad"> <Pad Id="ProjectPad">
<State expanded="True"> <State expanded="True" selected="True">
<Node name="MediaBrowser.Server.Mono" expanded="True" selected="True"> <Node name="MediaBrowser.Server.Implementations" expanded="True" />
<Node name="References" expanded="True" />
<Node name="EntryPoints" expanded="True" />
</Node>
</State> </State>
</Pad> </Pad>
<Pad Id="ClassPad"> <Pad Id="ClassPad">
@ -24,8 +20,6 @@
</MonoDevelop.Ide.Workbench> </MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.DebuggingService.Breakpoints> <MonoDevelop.Ide.DebuggingService.Breakpoints>
<BreakpointStore> <BreakpointStore>
<Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Server.Mono\Native\NativeApp.cs" line="23" column="1" />
<Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Server.Mono\Native\NativeApp.cs" line="15" column="1" />
<Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Common.Implementations\HttpClientManager\HttpClientManager.cs" line="477" column="17" /> <Breakpoint file="D:\Development\MediaBrowser\MediaBrowser.Common.Implementations\HttpClientManager\HttpClientManager.cs" line="477" column="17" />
</BreakpointStore> </BreakpointStore>
</MonoDevelop.Ide.DebuggingService.Breakpoints> </MonoDevelop.Ide.DebuggingService.Breakpoints>

@ -1,7 +1,6 @@
using MediaBrowser.Common.IO; using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using MediaBrowser.Model.Logging;
@ -17,14 +16,12 @@ namespace MediaBrowser.Providers
/// </summary> /// </summary>
public class FolderProviderFromXml : BaseMetadataProvider public class FolderProviderFromXml : BaseMetadataProvider
{ {
public static FolderProviderFromXml Current;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public FolderProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public FolderProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -56,7 +53,7 @@ namespace MediaBrowser.Providers
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -1,7 +1,6 @@
using MediaBrowser.Common.IO; using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging; using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Savers; using MediaBrowser.Providers.Savers;
@ -48,7 +47,7 @@ namespace MediaBrowser.Providers.Games
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -1,7 +1,6 @@
using MediaBrowser.Common.IO; using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using MediaBrowser.Model.Logging;
@ -14,14 +13,12 @@ namespace MediaBrowser.Providers.Games
{ {
public class GameSystemProviderFromXml : BaseMetadataProvider public class GameSystemProviderFromXml : BaseMetadataProvider
{ {
internal static GameSystemProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public GameSystemProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public GameSystemProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -53,7 +50,7 @@ namespace MediaBrowser.Providers.Games
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -13,14 +13,12 @@ namespace MediaBrowser.Providers.LiveTv
{ {
class ChannelProviderFromXml : BaseMetadataProvider class ChannelProviderFromXml : BaseMetadataProvider
{ {
internal static ChannelProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public ChannelProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public ChannelProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -52,7 +50,7 @@ namespace MediaBrowser.Providers.LiveTv
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.Movies
/// </summary> /// </summary>
public class BoxSetProviderFromXml : BaseMetadataProvider public class BoxSetProviderFromXml : BaseMetadataProvider
{ {
public static BoxSetProviderFromXml Current;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public BoxSetProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public BoxSetProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.Movies
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -19,7 +19,6 @@ namespace MediaBrowser.Providers.Movies
/// </summary> /// </summary>
public class MovieProviderFromXml : BaseMetadataProvider public class MovieProviderFromXml : BaseMetadataProvider
{ {
internal static MovieProviderFromXml Current { get; private set; }
private readonly IItemRepository _itemRepo; private readonly IItemRepository _itemRepo;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
@ -28,7 +27,6 @@ namespace MediaBrowser.Providers.Movies
{ {
_itemRepo = itemRepo; _itemRepo = itemRepo;
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -73,7 +71,7 @@ namespace MediaBrowser.Providers.Movies
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -1,7 +1,6 @@
using MediaBrowser.Common.IO; using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging; using MediaBrowser.Model.Logging;
using System; using System;
@ -13,14 +12,12 @@ namespace MediaBrowser.Providers.Movies
{ {
class PersonProviderFromXml : BaseMetadataProvider class PersonProviderFromXml : BaseMetadataProvider
{ {
internal static PersonProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public PersonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public PersonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -52,7 +49,7 @@ namespace MediaBrowser.Providers.Movies
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -14,14 +14,12 @@ namespace MediaBrowser.Providers.Music
{ {
class AlbumProviderFromXml : BaseMetadataProvider class AlbumProviderFromXml : BaseMetadataProvider
{ {
public static AlbumProviderFromXml Current;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public AlbumProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public AlbumProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -53,7 +51,7 @@ namespace MediaBrowser.Providers.Music
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -14,14 +14,12 @@ namespace MediaBrowser.Providers.Music
{ {
class ArtistProviderFromXml : BaseMetadataProvider class ArtistProviderFromXml : BaseMetadataProvider
{ {
public static ArtistProviderFromXml Current;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public ArtistProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public ArtistProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -53,7 +51,7 @@ namespace MediaBrowser.Providers.Music
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -59,9 +59,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
// Set last refreshed so that the provider doesn't trigger after the file save
AlbumProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -72,9 +72,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
// Set last refreshed so that the provider doesn't trigger after the file save
ArtistProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -59,8 +59,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
BoxSetProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -56,9 +56,6 @@ namespace MediaBrowser.Providers.Savers
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> XmlSaverHelpers.Save(builder, xmlFilePath, new List<string>
{ {
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
ChannelProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -3,8 +3,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Providers.TV;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.IO; using System.IO;
@ -117,9 +115,6 @@ namespace MediaBrowser.Providers.Savers
"airsbefore_episode", "airsbefore_episode",
"airsbefore_season" "airsbefore_season"
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
EpisodeProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -4,7 +4,6 @@ using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
@ -78,8 +77,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
FolderProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -58,8 +58,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
GameSystemProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -98,9 +98,6 @@ namespace MediaBrowser.Providers.Savers
"NesBox", "NesBox",
"NesBoxRom" "NesBoxRom"
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
MovieProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
public string GetSavePath(BaseItem item) public string GetSavePath(BaseItem item)

@ -122,9 +122,6 @@ namespace MediaBrowser.Providers.Savers
"Album", "Album",
"TmdbCollectionName" "TmdbCollectionName"
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
MovieProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
public string GetSavePath(BaseItem item) public string GetSavePath(BaseItem item)

@ -64,9 +64,6 @@ namespace MediaBrowser.Providers.Savers
{ {
"PlaceOfBirth" "PlaceOfBirth"
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
PersonProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -2,8 +2,6 @@
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Providers.TV;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
@ -59,8 +57,6 @@ namespace MediaBrowser.Providers.Savers
var xmlFilePath = GetSavePath(item); var xmlFilePath = GetSavePath(item);
XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { }); XmlSaverHelpers.Save(builder, xmlFilePath, new List<string> { });
SeasonProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -3,8 +3,6 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Providers.TV;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Security; using System.Security;
@ -119,9 +117,6 @@ namespace MediaBrowser.Providers.Savers
// Don't preserve old series node // Don't preserve old series node
"Series" "Series"
}); });
// Set last refreshed so that the provider doesn't trigger after the file save
SeriesProviderFromXml.Current.SetLastRefreshed(item, DateTime.UtcNow);
} }
/// <summary> /// <summary>

@ -18,7 +18,6 @@ namespace MediaBrowser.Providers.TV
/// </summary> /// </summary>
public class EpisodeProviderFromXml : BaseMetadataProvider public class EpisodeProviderFromXml : BaseMetadataProvider
{ {
internal static EpisodeProviderFromXml Current { get; private set; }
private readonly IItemRepository _itemRepo; private readonly IItemRepository _itemRepo;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
@ -27,7 +26,6 @@ namespace MediaBrowser.Providers.TV
{ {
_itemRepo = itemRepo; _itemRepo = itemRepo;
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -78,7 +76,7 @@ namespace MediaBrowser.Providers.TV
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(file) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(file) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.TV
/// </summary> /// </summary>
public class SeasonProviderFromXml : BaseMetadataProvider public class SeasonProviderFromXml : BaseMetadataProvider
{ {
public static SeasonProviderFromXml Current;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public SeasonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public SeasonProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.TV
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -18,14 +18,12 @@ namespace MediaBrowser.Providers.TV
/// </summary> /// </summary>
public class SeriesProviderFromXml : BaseMetadataProvider public class SeriesProviderFromXml : BaseMetadataProvider
{ {
internal static SeriesProviderFromXml Current { get; private set; }
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
public SeriesProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem) public SeriesProviderFromXml(ILogManager logManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem)
: base(logManager, configurationManager) : base(logManager, configurationManager)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
Current = this;
} }
/// <summary> /// <summary>
@ -57,7 +55,7 @@ namespace MediaBrowser.Providers.TV
return false; return false;
} }
return _fileSystem.GetLastWriteTimeUtc(xml) > providerInfo.LastRefreshed; return _fileSystem.GetLastWriteTimeUtc(xml) > item.DateLastSaved;
} }
/// <summary> /// <summary>

@ -1311,6 +1311,11 @@ namespace MediaBrowser.Server.Implementations.Library
{ {
var list = items.ToList(); var list = items.ToList();
foreach (var item in list)
{
item.DateLastSaved = DateTime.UtcNow;
}
await ItemRepository.SaveItems(list, cancellationToken).ConfigureAwait(false); await ItemRepository.SaveItems(list, cancellationToken).ConfigureAwait(false);
foreach (var item in list) foreach (var item in list)
@ -1350,6 +1355,8 @@ namespace MediaBrowser.Server.Implementations.Library
await SaveMetadata(item, updateReason).ConfigureAwait(false); await SaveMetadata(item, updateReason).ConfigureAwait(false);
} }
item.DateLastSaved = DateTime.UtcNow;
await ItemRepository.SaveItem(item, cancellationToken).ConfigureAwait(false); await ItemRepository.SaveItem(item, cancellationToken).ConfigureAwait(false);
UpdateItemInLibraryCache(item); UpdateItemInLibraryCache(item);

@ -202,7 +202,7 @@ namespace MediaBrowser.Server.Implementations.Providers
{ {
if (item == null) if (item == null)
{ {
throw new ArgumentNullException(); throw new ArgumentNullException("item");
} }
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
@ -213,12 +213,9 @@ namespace MediaBrowser.Server.Implementations.Providers
_logger.Debug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name ?? "--Unknown--"); _logger.Debug("Running {0} for {1}", provider.GetType().Name, item.Path ?? item.Name ?? "--Unknown--");
} }
// This provides the ability to cancel just this one provider
var innerCancellationTokenSource = new CancellationTokenSource();
try try
{ {
var changed = await provider.FetchAsync(item, force, CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, innerCancellationTokenSource.Token).Token).ConfigureAwait(false); var changed = await provider.FetchAsync(item, force, cancellationToken).ConfigureAwait(false);
if (changed) if (changed)
{ {
@ -247,10 +244,6 @@ namespace MediaBrowser.Server.Implementations.Providers
return ItemUpdateType.Unspecified; return ItemUpdateType.Unspecified;
} }
finally
{
innerCancellationTokenSource.Dispose();
}
} }
/// <summary> /// <summary>

@ -32,6 +32,11 @@
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<Externalconsole>true</Externalconsole> <Externalconsole>true</Externalconsole>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>false</Optimize>
<OutputPath>bin\Release</OutputPath>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="ServiceStack.Common"> <Reference Include="ServiceStack.Common">

Loading…
Cancel
Save