Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions PDBot.Core/API/Scryfall.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace PDBot.Core.API
{
Expand Down Expand Up @@ -49,7 +48,9 @@ public static Card GetCardFromSearch(string name)
return Cache[name];
}

var address = $"/cards/search?q={name}+lang:en&include_multilingual=true";
var query = $"{name} lang:en";
var encodedQuery = Uri.EscapeDataString(query);
var address = $"/cards/search?q={encodedQuery}&include_multilingual=true";
var cards = HitMultiCardAPI(address).ToArray();
var card = cards.FirstOrDefault(c => c.Names.Contains(name));
return card;
Expand Down Expand Up @@ -80,7 +81,7 @@ public static string[] CardCatalog()
BaseAddress = "https://api.scryfall.com/",
Encoding = Encoding.UTF8,
};
wc.Headers[HttpRequestHeader.UserAgent] = "PDBot";
SetUpHeaders(wc);
var blob = wc.DownloadString("catalog/card-names");
var json = Newtonsoft.Json.JsonConvert.DeserializeObject(blob) as JObject;
CardNames = json["data"].Values<string>().ToArray<string>();
Expand All @@ -105,9 +106,8 @@ private static Card HitAPI(string address)
using var wc = new WebClient
{
BaseAddress = "https://api.scryfall.com/",

};
wc.Headers[HttpRequestHeader.UserAgent] = "PDBot";
SetUpHeaders(wc);
var blob = wc.DownloadString(address);
var json = Newtonsoft.Json.JsonConvert.DeserializeObject(blob) as JObject;
return ParseJson(json);
Expand Down Expand Up @@ -150,12 +150,13 @@ private static IEnumerable<Card> HitMultiCardAPI(string address)
string blob;
try
{

using var wc = new WebClient
{
BaseAddress = "https://api.scryfall.com/"
};
wc.Headers[HttpRequestHeader.UserAgent] = "PDBot";

SetUpHeaders(wc);

Console.WriteLine(address);
blob = wc.DownloadString(address);
}
Expand Down Expand Up @@ -191,5 +192,11 @@ private static IEnumerable<Card> HitMultiCardAPI(string address)
yield break;
}
}

static void SetUpHeaders(WebClient wc)
{
wc.Headers[HttpRequestHeader.UserAgent] = "PDBot";
wc.Headers[HttpRequestHeader.Accept] = "application/json";
}
}
}