using ArkhamPnP.Data; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json; using System.Threading.Tasks; namespace ArkhamPnP { internal class ArkhamDBApi { const string BASE_IMAGE_URL = "https://ru.arkhamdb.com"; const string BASE_URL = "https://ru.arkhamdb.com/api/"; HttpClient http = new HttpClient(); public ArkhamDBApi() { } public async Task GetCard(string id) { var result = await http.GetAsync(BASE_URL + "public/card/" + id + ".json?_format=json"); var content = await result.Content.ReadAsStringAsync(); var doc = JsonDocument.Parse(content); return new Card(doc.RootElement); } public async Task> GetPack(string code) { var result = await http.GetAsync(BASE_URL + "public/cards/" + code + ".json?_format=json"); var content = await result.Content.ReadAsStringAsync(); var doc = JsonDocument.Parse(content); var cards = new List(); foreach (var item in doc.RootElement.EnumerateArray()) { cards.Add(new Card(item)); } return cards; } public async Task GetImage(string path) { var result = await http.GetAsync(BASE_IMAGE_URL + path); return await result.Content.ReadAsStreamAsync(); } } }