MovieNfoParser.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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<UserItemData> userDataList,
  19. List<ChapterInfo> chapters,
  20. string metadataFile,
  21. CancellationToken cancellationToken)
  22. {
  23. _chaptersFound = chapters;
  24. Fetch(item, userDataList, metadataFile, cancellationToken);
  25. }
  26. protected override bool SupportsUrlAfterClosingXmlTag
  27. {
  28. get
  29. {
  30. return true;
  31. }
  32. }
  33. /// <summary>
  34. /// Fetches the data from XML node.
  35. /// </summary>
  36. /// <param name="reader">The reader.</param>
  37. /// <param name="item">The item.</param>
  38. /// <param name="userDataList">The user data list.</param>
  39. protected override void FetchDataFromXmlNode(XmlReader reader, Video item, List<UserItemData> userDataList)
  40. {
  41. switch (reader.Name)
  42. {
  43. case "id":
  44. var id = reader.ReadElementContentAsString();
  45. if (!string.IsNullOrWhiteSpace(id))
  46. {
  47. item.SetProviderId(MetadataProviders.Imdb, id);
  48. }
  49. break;
  50. case "set":
  51. {
  52. var val = reader.ReadElementContentAsString();
  53. var movie = item as Movie;
  54. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  55. {
  56. movie.TmdbCollectionName = val;
  57. }
  58. break;
  59. }
  60. case "artist":
  61. {
  62. var val = reader.ReadElementContentAsString();
  63. var movie = item as MusicVideo;
  64. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  65. {
  66. movie.Artists.Add(val);
  67. }
  68. break;
  69. }
  70. case "album":
  71. {
  72. var val = reader.ReadElementContentAsString();
  73. var movie = item as MusicVideo;
  74. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  75. {
  76. movie.Album = val;
  77. }
  78. break;
  79. }
  80. //case "chapter":
  81. // _chaptersFound.AddRange(FetchChaptersFromXmlNode(item, reader.ReadSubtree()));
  82. // break;
  83. default:
  84. base.FetchDataFromXmlNode(reader, item, userDataList);
  85. break;
  86. }
  87. }
  88. }
  89. }