Files
ArkhamPnP/ArkhamDBApi.cs
T

50 lines
1.2 KiB
C#

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<Card> 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<List<Card>> 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<Card>();
foreach (var item in doc.RootElement.EnumerateArray())
{
cards.Add(new Card(item));
}
return cards;
}
public async Task<Stream> GetImage(string path)
{
var result = await http.GetAsync(BASE_IMAGE_URL + path);
return await result.Content.ReadAsStreamAsync();
}
}
}