MovieNfoParser.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using MediaBrowser.Common.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Entities.Movies;
  4. using MediaBrowser.Controller.Providers;
  5. using MediaBrowser.Model.Entities;
  6. using MediaBrowser.Model.Logging;
  7. using System.Collections.Generic;
  8. using System.Xml;
  9. namespace MediaBrowser.XbmcMetadata.Parsers
  10. {
  11. class MovieNfoParser : BaseNfoParser<Video>
  12. {
  13. public MovieNfoParser(ILogger logger, IConfigurationManager config)
  14. : base(logger, config)
  15. {
  16. }
  17. protected override bool SupportsUrlAfterClosingXmlTag
  18. {
  19. get
  20. {
  21. return true;
  22. }
  23. }
  24. /// <summary>
  25. /// Fetches the data from XML node.
  26. /// </summary>
  27. /// <param name="reader">The reader.</param>
  28. /// <param name="itemResult">The item result.</param>
  29. protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Video> itemResult)
  30. {
  31. var item = itemResult.Item;
  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 movie = item as Movie;
  44. var tmdbcolid = reader.GetAttribute("tmdbcolid");
  45. if (!string.IsNullOrWhiteSpace(tmdbcolid) && movie != null)
  46. {
  47. movie.SetProviderId(MetadataProviders.TmdbCollection, tmdbcolid);
  48. }
  49. var val = reader.ReadElementContentAsString();
  50. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  51. {
  52. movie.CollectionName = val;
  53. }
  54. break;
  55. }
  56. case "artist":
  57. {
  58. var val = reader.ReadElementContentAsString();
  59. var movie = item as MusicVideo;
  60. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  61. {
  62. movie.Artists.Add(val);
  63. }
  64. break;
  65. }
  66. case "album":
  67. {
  68. var val = reader.ReadElementContentAsString();
  69. var movie = item as MusicVideo;
  70. if (!string.IsNullOrWhiteSpace(val) && movie != null)
  71. {
  72. movie.Album = val;
  73. }
  74. break;
  75. }
  76. default:
  77. base.FetchDataFromXmlNode(reader, itemResult);
  78. break;
  79. }
  80. }
  81. }
  82. }