MovieProviderFromXml.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Entities.Movies;
  3. using MediaBrowser.Controller.Library;
  4. using System.ComponentModel.Composition;
  5. using System.IO;
  6. using System.Threading.Tasks;
  7. using System;
  8. namespace MediaBrowser.Controller.Providers.Movies
  9. {
  10. [Export(typeof(BaseMetadataProvider))]
  11. public class MovieProviderFromXml : BaseMetadataProvider
  12. {
  13. public override bool Supports(BaseEntity item)
  14. {
  15. return item is Movie;
  16. }
  17. public override MetadataProviderPriority Priority
  18. {
  19. get { return MetadataProviderPriority.First; }
  20. }
  21. protected override DateTime CompareDate(BaseEntity item)
  22. {
  23. var entry = item.ResolveArgs.GetFileSystemEntry(Path.Combine(item.Path, "movie.xml"));
  24. return entry != null ? entry.Value.LastWriteTimeUtc : DateTime.MinValue;
  25. }
  26. public override async Task FetchAsync(BaseEntity item, ItemResolveEventArgs args)
  27. {
  28. await Task.Run(() => Fetch(item, args)).ConfigureAwait(false);
  29. }
  30. private void Fetch(BaseEntity item, ItemResolveEventArgs args)
  31. {
  32. if (args.ContainsFile("movie.xml"))
  33. {
  34. new BaseItemXmlParser<Movie>().Fetch(item as Movie, Path.Combine(args.Path, "movie.xml"));
  35. }
  36. }
  37. }
  38. }