50 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|