SeasonNfoParser.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Globalization;
  2. using System.Xml;
  3. using MediaBrowser.Common.Configuration;
  4. using MediaBrowser.Controller.Entities.TV;
  5. using MediaBrowser.Controller.Library;
  6. using MediaBrowser.Controller.Providers;
  7. using Microsoft.Extensions.Logging;
  8. namespace MediaBrowser.XbmcMetadata.Parsers
  9. {
  10. /// <summary>
  11. /// Nfo parser for seasons.
  12. /// </summary>
  13. public class SeasonNfoParser : BaseNfoParser<Season>
  14. {
  15. /// <summary>
  16. /// Initializes a new instance of the <see cref="SeasonNfoParser"/> class.
  17. /// </summary>
  18. /// <param name="logger">Instance of the <see cref="ILogger"/> interface.</param>
  19. /// <param name="config">Instance of the <see cref="IConfigurationManager"/> interface.</param>
  20. /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
  21. /// <param name="userManager">Instance of the <see cref="IUserManager"/> interface.</param>
  22. /// <param name="userDataManager">Instance of the <see cref="IUserDataManager"/> interface.</param>
  23. public SeasonNfoParser(
  24. ILogger logger,
  25. IConfigurationManager config,
  26. IProviderManager providerManager,
  27. IUserManager userManager,
  28. IUserDataManager userDataManager)
  29. : base(logger, config, providerManager, userManager, userDataManager)
  30. {
  31. }
  32. /// <inheritdoc />
  33. protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Season> itemResult)
  34. {
  35. var item = itemResult.Item;
  36. switch (reader.Name)
  37. {
  38. case "seasonnumber":
  39. {
  40. var number = reader.ReadElementContentAsString();
  41. if (!string.IsNullOrWhiteSpace(number))
  42. {
  43. if (int.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out var num))
  44. {
  45. item.IndexNumber = num;
  46. }
  47. }
  48. break;
  49. }
  50. default:
  51. base.FetchDataFromXmlNode(reader, itemResult);
  52. break;
  53. }
  54. }
  55. }
  56. }