EpisodeXmlParser.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using MediaBrowser.Controller.Entities.TV;
  2. using System.IO;
  3. using System.Xml;
  4. namespace MediaBrowser.Controller.Providers.TV
  5. {
  6. public class EpisodeXmlParser : BaseItemXmlParser<Episode>
  7. {
  8. protected override void FetchDataFromXmlNode(XmlReader reader, Episode item)
  9. {
  10. switch (reader.Name)
  11. {
  12. case "filename":
  13. {
  14. string filename = reader.ReadElementContentAsString();
  15. if (!string.IsNullOrWhiteSpace(filename))
  16. {
  17. // Strip off everything but the filename. Some metadata tools like MetaBrowser v1.0 will have an 'episodes' prefix
  18. // even though it's actually using the metadata folder.
  19. filename = Path.GetFileName(filename);
  20. string seasonFolder = Path.GetDirectoryName(item.Path);
  21. item.PrimaryImagePath = Path.Combine(seasonFolder, "metadata", filename);
  22. }
  23. break;
  24. }
  25. case "SeasonNumber":
  26. {
  27. string number = reader.ReadElementContentAsString();
  28. if (!string.IsNullOrWhiteSpace(number))
  29. {
  30. item.ParentIndexNumber = int.Parse(number);
  31. }
  32. break;
  33. }
  34. case "EpisodeNumber":
  35. {
  36. string number = reader.ReadElementContentAsString();
  37. if (!string.IsNullOrWhiteSpace(number))
  38. {
  39. item.IndexNumber = int.Parse(number);
  40. }
  41. break;
  42. }
  43. case "EpisodeName":
  44. item.Name = reader.ReadElementContentAsString();
  45. break;
  46. default:
  47. base.FetchDataFromXmlNode(reader, item);
  48. break;
  49. }
  50. }
  51. }
  52. }