From 9eb53bb53adf7e7db221f633b4f3ee5c10cc8538 Mon Sep 17 00:00:00 2001 From: glax <--local> Date: Thu, 18 May 2023 17:21:22 +0200 Subject: [PATCH] Fixed null-Errors in json --- Tranga/Connectors/MangaDex.cs | 26 +++++++++++++++++--------- Tranga/Publication.cs | 6 +++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Tranga/Connectors/MangaDex.cs b/Tranga/Connectors/MangaDex.cs index 39150b0..acfe325 100644 --- a/Tranga/Connectors/MangaDex.cs +++ b/Tranga/Connectors/MangaDex.cs @@ -62,17 +62,25 @@ public class MangaDex : Connector if(tagObject!["attributes"]!["name"]!.AsObject().ContainsKey("en")) tags.Add(tagObject!["attributes"]!["name"]!["en"]!.GetValue()); } - - JsonArray relationships = manga["relationships"]!.AsArray(); - string poster = relationships.FirstOrDefault(relationship => relationship["type"].GetValue() == "cover_art")["id"].GetValue(); - JsonObject linksObject = attributes["links"]!.AsObject(); - string[,] links = new string[linksObject.Count, 2]; - int linkIndex = 0; - foreach (string key in ((IDictionary)linksObject).Keys) + string? poster = null; + if (manga.ContainsKey("relationships") && manga["relationships"] is not null) { - links[linkIndex, 0] = key; - links[linkIndex++, 1] = linksObject[key]!.GetValue(); + JsonArray relationships = manga["relationships"]!.AsArray(); + poster = relationships.FirstOrDefault(relationship => relationship!["type"]!.GetValue() == "cover_art")!["id"]!.GetValue(); + } + + string[,]? links = null; + if (attributes.ContainsKey("links") && attributes["links"] is not null) + { + JsonObject linksObject = attributes["links"]!.AsObject(); + links = new string[linksObject.Count, 2]; + int linkIndex = 0; + foreach (string key in ((IDictionary)linksObject).Keys) + { + links[linkIndex, 0] = key; + links[linkIndex++, 1] = linksObject[key]!.GetValue(); + } } int? year = attributes.ContainsKey("year") && attributes["year"] is not null diff --git a/Tranga/Publication.cs b/Tranga/Publication.cs index 5be193a..bea9539 100644 --- a/Tranga/Publication.cs +++ b/Tranga/Publication.cs @@ -6,8 +6,8 @@ public struct Publication public string[,] altTitles { get; } public string? description { get; } public string[] tags { get; } - public string posterUrl { get; } //maybe there is a better way? - public string[,] links { get; } + public string? posterUrl { get; } //maybe there is a better way? + public string[,]? links { get; } public int? year { get; } public string? originalLanguage { get; } public string status { get; } @@ -15,7 +15,7 @@ public struct Publication public Connector connector { get; } public string downloadUrl { get; } - public Publication(string sortName, string? description, string[,] altTitles, string[] tags, string posterUrl, string[,] links, int? year, string? originalLanguage, string status, Connector connector, string downloadUrl) + public Publication(string sortName, string? description, string[,] altTitles, string[] tags, string? posterUrl, string[,]? links, int? year, string? originalLanguage, string status, Connector connector, string downloadUrl) { this.sortName = sortName; this.description = description;