SeriesXmlParser.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using System.Xml;
  3. using MediaBrowser.Controller.Xml;
  4. using MediaBrowser.TV.Entities;
  5. namespace MediaBrowser.TV.Metadata
  6. {
  7. public class SeriesXmlParser : BaseItemXmlParser<Series>
  8. {
  9. protected override void FetchDataFromXmlNode(XmlReader reader, Series item)
  10. {
  11. switch (reader.Name)
  12. {
  13. case "id":
  14. item.TvdbId = reader.ReadString();
  15. break;
  16. case "Airs_DayOfWeek":
  17. {
  18. string day = reader.ReadString();
  19. if (!string.IsNullOrWhiteSpace(day))
  20. {
  21. if (day.Equals("Daily", StringComparison.OrdinalIgnoreCase))
  22. {
  23. item.AirDays = new DayOfWeek[] {
  24. DayOfWeek.Sunday,
  25. DayOfWeek.Monday,
  26. DayOfWeek.Tuesday,
  27. DayOfWeek.Wednesday,
  28. DayOfWeek.Thursday,
  29. DayOfWeek.Friday,
  30. DayOfWeek.Saturday
  31. };
  32. }
  33. else
  34. {
  35. item.AirDays = new DayOfWeek[] {
  36. (DayOfWeek)Enum.Parse(typeof(DayOfWeek), day, true)
  37. };
  38. }
  39. }
  40. break;
  41. }
  42. case "Airs_Time":
  43. item.AirTime = reader.ReadString();
  44. break;
  45. case "SeriesName":
  46. item.Name = reader.ReadString();
  47. break;
  48. case "Status":
  49. item.Status = reader.ReadString();
  50. break;
  51. case "Runtime":
  52. {
  53. string text = reader.ReadString();
  54. if (!string.IsNullOrWhiteSpace(text))
  55. {
  56. int runtime;
  57. if (int.TryParse(text.Split(' ')[0], out runtime))
  58. {
  59. item.RunTimeInMilliseconds = runtime * 60000;
  60. }
  61. }
  62. break;
  63. }
  64. default:
  65. base.FetchDataFromXmlNode(reader, item);
  66. break;
  67. }
  68. }
  69. }
  70. }