From 2cd0dde4e20d56f1f906cb3d01a400ed7fe0f566 Mon Sep 17 00:00:00 2001 From: Yukine Date: Mon, 16 Aug 2021 11:38:27 +0200 Subject: [PATCH] Fixed: (Indexer) AnimeBytes Synonymns & Links are optional --- .../Indexers/Definitions/AnimeBytes.cs | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Definitions/AnimeBytes.cs b/src/NzbDrone.Core/Indexers/Definitions/AnimeBytes.cs index d0f9135b6..ec7c4adaf 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/AnimeBytes.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/AnimeBytes.cs @@ -236,13 +236,18 @@ public IList ParseResponse(IndexerResponse indexerResponse) synonyms.Add(mainTitle); - if (group.Synonymns.StringArray != null) + if (group.Synonymns != null) { - synonyms.AddRange(group.Synonymns.StringArray); - } - else - { - synonyms.AddRange(group.Synonymns.StringMap.Values); + var syn = (Synonymns)group.Synonymns; + + if (syn.StringArray != null) + { + synonyms.AddRange(syn.StringArray); + } + else + { + synonyms.AddRange(syn.StringMap.Values); + } } List category = null; @@ -565,7 +570,7 @@ public class Group [JsonProperty("Synonymns")] [JsonConverter(typeof(SynonymnsConverter))] - public Synonymns Synonymns { get; set; } + public Synonymns? Synonymns { get; set; } [JsonProperty("Snatched")] public long Snatched { get; set; } @@ -575,7 +580,7 @@ public class Group [JsonProperty("Links")] [JsonConverter(typeof(LinksUnionConverter))] - public LinksUnion Links { get; set; } + public LinksUnion? Links { get; set; } [JsonProperty("Votes")] public long Votes { get; set; } @@ -711,6 +716,8 @@ public override object ReadJson(JsonReader reader, Type t, object existingValue, case JsonToken.StartArray: var arrayValue = serializer.Deserialize>(reader); return new LinksUnion { AnythingArray = arrayValue }; + case JsonToken.Null: + return null; } throw new Exception("Cannot unmarshal type LinksUnion"); @@ -725,12 +732,12 @@ public override void WriteJson(JsonWriter writer, object untypedValue, JsonSeria return; } - if (value.LinksClass == null) + if (value.LinksClass != null) { - throw new Exception("Cannot marshal type LinksUnion"); + serializer.Serialize(writer, value.LinksClass); } - serializer.Serialize(writer, value.LinksClass); + serializer.Serialize(writer, null); } public static readonly LinksUnionConverter Singleton = new LinksUnionConverter(); @@ -785,6 +792,8 @@ public override object ReadJson(JsonReader reader, Type t, object existingValue, case JsonToken.StartArray: var arrayValue = serializer.Deserialize>(reader); return new Synonymns { StringArray = arrayValue }; + case JsonToken.Null: + return null; } throw new Exception("Cannot unmarshal type Synonymns"); @@ -799,12 +808,12 @@ public override void WriteJson(JsonWriter writer, object untypedValue, JsonSeria return; } - if (value.StringMap == null) + if (value.StringMap != null) { - throw new Exception("Cannot marshal type Synonymns"); + serializer.Serialize(writer, value.StringMap); } - serializer.Serialize(writer, value.StringMap); + serializer.Serialize(writer, null); } public static readonly SynonymnsConverter Singleton = new SynonymnsConverter();