GameSystemXmlParser.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Providers;
  3. using MediaBrowser.Model.Entities;
  4. using MediaBrowser.Model.Logging;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using System.Xml;
  8. using MediaBrowser.Model.IO;
  9. using MediaBrowser.Model.Xml;
  10. namespace MediaBrowser.LocalMetadata.Parsers
  11. {
  12. public class GameSystemXmlParser : BaseItemXmlParser<GameSystem>
  13. {
  14. private readonly Task _cachedTask = Task.FromResult(true);
  15. public Task FetchAsync(MetadataResult<GameSystem> item, string metadataFile, CancellationToken cancellationToken)
  16. {
  17. Fetch(item, metadataFile, cancellationToken);
  18. cancellationToken.ThrowIfCancellationRequested();
  19. return _cachedTask;
  20. }
  21. /// <summary>
  22. /// Fetches the data from XML node.
  23. /// </summary>
  24. /// <param name="reader">The reader.</param>
  25. /// <param name="result">The result.</param>
  26. protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<GameSystem> result)
  27. {
  28. var item = result.Item;
  29. switch (reader.Name)
  30. {
  31. case "GameSystem":
  32. {
  33. var val = reader.ReadElementContentAsString();
  34. if (!string.IsNullOrWhiteSpace(val))
  35. {
  36. item.GameSystemName = val;
  37. }
  38. break;
  39. }
  40. case "GamesDbId":
  41. {
  42. var val = reader.ReadElementContentAsString();
  43. if (!string.IsNullOrWhiteSpace(val))
  44. {
  45. item.SetProviderId(MetadataProviders.Gamesdb, val);
  46. }
  47. break;
  48. }
  49. default:
  50. base.FetchDataFromXmlNode(reader, result);
  51. break;
  52. }
  53. }
  54. public GameSystemXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
  55. {
  56. }
  57. }
  58. }