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;