MovieNfoParser.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using MediaBrowser.Common.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Entities.Movies;
  4. using MediaBrowser.Model.Entities;
  5. using MediaBrowser.Model.Logging;
  6. using System.Collections.Generic;
  7. using System.Threading;
  8. using System.Xml;
  9. namespace MediaBrowser.XbmcMetadata.Parsers
  10. {
  11. class MovieNfoParser : BaseNfoParser<Video>
  12. {
  13. private List<ChapterInfo> _chaptersFound;
  14. public MovieNfoParser(ILogger logger, IConfigurationManager config) : base(logger, config)
  15. {
  16. }
  17. public void Fetch(Video item,
  18. List<ChapterInfo> chapters,
  19. string metadataFile,
  20. CancellationToken cancellationToken)
  21. {
  22. _chaptersFound = chapters;
  23. Fetch(item, metadataFile, cancellationToken);
  24. }
  25. /// <summary>
  26. /// Fetches the data from XML node.
  27. /// </summary>
  28. /// <param name="reader">The reader.</param>
  29. /// <param name="item">The item.</param>
  30. protected override void FetchDataFromXmlNode(XmlReader reader, Video item)
  31. {
  32. switch (reader.Name)
  33. {
  34. case "id":
  35. var id = reader.ReadElementContentAsString();
  36. if (!string.IsNullOrWhiteSpace(id))
  37. {
  38. item.SetProviderId(MetadataProviders.Imdb, id);
  39. }
  40. break;
  41. case "set":
  42. {
  43. var val = reader.ReadElementContentAsString();
  44. var movie = item as Movie;
  45. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  46. {
  47. movie.TmdbCollectionName = val;
  48. }
  49. break;
  50. }
  51. case "artist":
  52. {
  53. var val = reader.ReadElementContentAsString();
  54. var movie = item as MusicVideo;
  55. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  56. {
  57. movie.Artist = val;
  58. }
  59. break;
  60. }
  61. case "album":
  62. {
  63. var val = reader.ReadElementContentAsString();
  64. var movie = item as MusicVideo;
  65. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  66. {
  67. movie.Album = val;
  68. }
  69. break;
  70. }
  71. //case "chapter":
  72. // _chaptersFound.AddRange(FetchChaptersFromXmlNode(item, reader.ReadSubtree()));
  73. // break;
  74. default:
  75. base.FetchDataFromXmlNode(reader, item);
  76. break;
  77. }
  78. }
  79. }
  80. }