Added field posterBase64 to Publication #22

This commit is contained in:
glax 2023-05-25 13:50:48 +02:00
parent 02075ed1b1
commit 5efa00e059
2 changed files with 14 additions and 2 deletions

View File

@ -98,6 +98,15 @@ public class MangaDex : Connector
authorId = relationships.FirstOrDefault(relationship => relationship!["type"]!.GetValue<string>() == "author")!["id"]!.GetValue<string>();
}
string? coverUrl = GetCoverUrl(publicationId, posterId);
string? coverBase64 = null;
if (coverUrl is not null)
{
DownloadClient.RequestResult coverResult = downloadClient.MakeRequest(coverUrl, (byte)RequestType.AtHomeServer);
using MemoryStream ms = new();
coverResult.result.CopyTo(ms);
byte[] imageBytes = ms.ToArray();
coverBase64 = Convert.ToBase64String(imageBytes);
}
string? author = GetAuthor(authorId);
Dictionary<string, string> linksDict = new();
@ -127,6 +136,7 @@ public class MangaDex : Connector
altTitlesDict,
tags.ToArray(),
coverUrl,
coverBase64,
linksDict,
year,
originalLanguage,
@ -232,7 +242,7 @@ public class MangaDex : Connector
//Request information where to download Cover
DownloadClient.RequestResult requestResult =
downloadClient.MakeRequest($"https://api.mangadex.org/cover/{posterId}", (byte)RequestType.Cover);
downloadClient.MakeRequest($"https://api.mangadex.org/cover/{posterId}", (byte)RequestType.CoverUrl);
if (requestResult.statusCode != HttpStatusCode.OK)
return null;
JsonObject? result = JsonSerializer.Deserialize<JsonObject>(requestResult.result);

View File

@ -15,6 +15,7 @@ public readonly struct Publication
public string? description { get; }
public string[] tags { get; }
public string? posterUrl { get; }
public string? posterBase64 { get; }
public Dictionary<string,string> links { get; }
public int? year { get; }
public string? originalLanguage { get; }
@ -23,13 +24,14 @@ public readonly struct Publication
public string publicationId { get; }
public string internalId { get; }
public Publication(string sortName, string? author, string? description, Dictionary<string,string> altTitles, string[] tags, string? posterUrl, Dictionary<string,string>? links, int? year, string? originalLanguage, string status, string publicationId)
public Publication(string sortName, string? author, string? description, Dictionary<string,string> altTitles, string[] tags, string? posterUrl, string? posterBase64, Dictionary<string,string>? links, int? year, string? originalLanguage, string status, string publicationId)
{
this.sortName = sortName;
this.author = author;
this.description = description;
this.altTitles = altTitles;
this.tags = tags;
this.posterBase64 = posterBase64;
this.posterUrl = posterUrl;
this.links = links ?? new Dictionary<string, string>();
this.year = year;