EpisodeXmlParser.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.IO;
  2. using System.Xml;
  3. using MediaBrowser.Controller.Xml;
  4. using MediaBrowser.TV.Entities;
  5. namespace MediaBrowser.TV.Metadata
  6. {
  7. public class EpisodeXmlParser : BaseItemXmlParser<Episode>
  8. {
  9. protected override void FetchDataFromXmlNode(XmlReader reader, Episode item)
  10. {
  11. switch (reader.Name)
  12. {
  13. case "filename":
  14. {
  15. string filename = reader.ReadString();
  16. if (!string.IsNullOrWhiteSpace(filename))
  17. {
  18. string seasonFolder = Path.GetDirectoryName(item.Path);
  19. item.PrimaryImagePath = Path.Combine(seasonFolder, "metadata", filename);
  20. }
  21. break;
  22. }
  23. case "SeasonNumber":
  24. {
  25. string number = reader.ReadString();
  26. if (!string.IsNullOrWhiteSpace(number))
  27. {
  28. item.ParentIndexNumber = int.Parse(number);
  29. }
  30. break;
  31. }
  32. case "EpisodeNumber":
  33. {
  34. string number = reader.ReadString();
  35. if (!string.IsNullOrWhiteSpace(number))
  36. {
  37. item.IndexNumber = int.Parse(number);
  38. }
  39. break;
  40. }
  41. case "EpisodeName":
  42. item.Name = reader.ReadString();
  43. break;
  44. default:
  45. base.FetchDataFromXmlNode(reader, item);
  46. break;
  47. }
  48. }
  49. }
  50. }