Fixed: (AnimeBytes) Parse response with STJson

pull/1624/head
Bogdan 1 year ago
parent d2ba52cdce
commit b8a77830aa

@ -6,13 +6,14 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Text; using System.Text;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using FluentValidation; using FluentValidation;
using Newtonsoft.Json;
using NLog; using NLog;
using NzbDrone.Common; using NzbDrone.Common;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http; using NzbDrone.Common.Http;
using NzbDrone.Common.Serializer;
using NzbDrone.Core.Annotations; using NzbDrone.Core.Annotations;
using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration;
using NzbDrone.Core.Indexers.Exceptions; using NzbDrone.Core.Indexers.Exceptions;
@ -256,7 +257,7 @@ namespace NzbDrone.Core.Indexers.Definitions
throw new IndexerException(indexerResponse, $"Unexpected response header {indexerResponse.HttpResponse.Headers.ContentType} from API request, expected {HttpAccept.Json.Value}"); throw new IndexerException(indexerResponse, $"Unexpected response header {indexerResponse.HttpResponse.Headers.ContentType} from API request, expected {HttpAccept.Json.Value}");
} }
var response = JsonConvert.DeserializeObject<AnimeBytesResponse>(indexerResponse.Content); var response = STJson.Deserialize<AnimeBytesResponse>(indexerResponse.Content);
if (response.Matches == 0) if (response.Matches == 0)
{ {
@ -688,109 +689,104 @@ namespace NzbDrone.Core.Indexers.Definitions
public class AnimeBytesResponse public class AnimeBytesResponse
{ {
[JsonProperty("Matches")] [JsonPropertyName("Matches")]
public int Matches { get; set; } public int Matches { get; set; }
[JsonProperty("Groups")] [JsonPropertyName("Groups")]
public AnimeBytesGroup[] Groups { get; set; } public AnimeBytesGroup[] Groups { get; set; }
} }
public class AnimeBytesGroup public class AnimeBytesGroup
{ {
[JsonProperty("ID")] [JsonPropertyName("ID")]
public long Id { get; set; } public long Id { get; set; }
[JsonProperty("CategoryName")] [JsonPropertyName("CategoryName")]
public string CategoryName { get; set; } public string CategoryName { get; set; }
[JsonProperty("FullName")] [JsonPropertyName("FullName")]
public string FullName { get; set; } public string FullName { get; set; }
[JsonProperty("GroupName")] [JsonPropertyName("GroupName")]
public string GroupName { get; set; } public string GroupName { get; set; }
[JsonProperty("SeriesID")] [JsonPropertyName("SeriesName")]
public long? SeriesId { get; set; }
[JsonProperty("SeriesName")]
public string SeriesName { get; set; } public string SeriesName { get; set; }
[JsonProperty("Year")] [JsonPropertyName("Year")]
[JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)]
public int? Year { get; set; } public int? Year { get; set; }
[JsonProperty("Image")] [JsonPropertyName("Image")]
public string Image { get; set; } public string Image { get; set; }
[JsonProperty("SynonymnsV2", NullValueHandling = NullValueHandling.Ignore)] [JsonPropertyName("SynonymnsV2")]
public Dictionary<string, string> Synonymns { get; set; } public Dictionary<string, string> Synonymns { get; set; }
[JsonProperty("Description")] [JsonPropertyName("Description")]
public string Description { get; set; } public string Description { get; set; }
[JsonProperty("DescriptionHTML")] [JsonPropertyName("Tags")]
public string DescriptionHtml { get; set; }
[JsonProperty("Tags")]
public List<string> Tags { get; set; } public List<string> Tags { get; set; }
[JsonProperty("Torrents")] [JsonPropertyName("Torrents")]
public List<AnimeBytesTorrent> Torrents { get; set; } public List<AnimeBytesTorrent> Torrents { get; set; }
} }
public class AnimeBytesTorrent public class AnimeBytesTorrent
{ {
[JsonProperty("ID")] [JsonPropertyName("ID")]
public long Id { get; set; } public long Id { get; set; }
[JsonProperty("EditionData")] [JsonPropertyName("EditionData")]
public AnimeBytesEditionData EditionData { get; set; } public AnimeBytesEditionData EditionData { get; set; }
[JsonProperty("RawDownMultiplier")] [JsonPropertyName("RawDownMultiplier")]
public double RawDownMultiplier { get; set; } public double RawDownMultiplier { get; set; }
[JsonProperty("RawUpMultiplier")] [JsonPropertyName("RawUpMultiplier")]
public double RawUpMultiplier { get; set; } public double RawUpMultiplier { get; set; }
[JsonProperty("Link")] [JsonPropertyName("Link")]
public Uri Link { get; set; } public Uri Link { get; set; }
[JsonProperty("Property")] [JsonPropertyName("Property")]
public string Property { get; set; } public string Property { get; set; }
[JsonProperty("Snatched")] [JsonPropertyName("Snatched")]
public int Snatched { get; set; } public int Snatched { get; set; }
[JsonProperty("Seeders")] [JsonPropertyName("Seeders")]
public int Seeders { get; set; } public int Seeders { get; set; }
[JsonProperty("Leechers")] [JsonPropertyName("Leechers")]
public int Leechers { get; set; } public int Leechers { get; set; }
[JsonProperty("Size")] [JsonPropertyName("Size")]
public long Size { get; set; } public long Size { get; set; }
[JsonProperty("FileCount")] [JsonPropertyName("FileCount")]
public int FileCount { get; set; } public int FileCount { get; set; }
[JsonProperty("FileList")] [JsonPropertyName("FileList")]
public List<AnimeBytesFile> Files { get; set; } public List<AnimeBytesFile> Files { get; set; }
[JsonProperty("UploadTime")] [JsonPropertyName("UploadTime")]
public string UploadTime { get; set; } public string UploadTime { get; set; }
} }
public class AnimeBytesFile public class AnimeBytesFile
{ {
[JsonProperty("filename")] [JsonPropertyName("filename")]
public string FileName { get; set; } public string FileName { get; set; }
[JsonProperty("size")] [JsonPropertyName("size")]
public long FileSize { get; set; } public long FileSize { get; set; }
} }
public class AnimeBytesEditionData public class AnimeBytesEditionData
{ {
[JsonProperty("EditionTitle")] [JsonPropertyName("EditionTitle")]
public string EditionTitle { get; set; } public string EditionTitle { get; set; }
} }
} }

Loading…
Cancel
Save