mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
.crypto now supports top 5k coins. closes #138
This commit is contained in:
@@ -20,7 +20,7 @@ namespace NadekoBot.Modules.Searches
|
|||||||
|
|
||||||
var (crypto, nearest) = await _service.GetCryptoData(name).ConfigureAwait(false);
|
var (crypto, nearest) = await _service.GetCryptoData(name).ConfigureAwait(false);
|
||||||
|
|
||||||
if (nearest != null)
|
if (nearest is not null)
|
||||||
{
|
{
|
||||||
var embed = _eb.Create()
|
var embed = _eb.Create()
|
||||||
.WithTitle(GetText(strs.crypto_not_found))
|
.WithTitle(GetText(strs.crypto_not_found))
|
||||||
|
@@ -35,6 +35,9 @@ namespace NadekoBot.Modules.Searches.Services
|
|||||||
name = name.ToUpperInvariant();
|
name = name.ToUpperInvariant();
|
||||||
var cryptos = await CryptoData().ConfigureAwait(false);
|
var cryptos = await CryptoData().ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (cryptos is null)
|
||||||
|
return (null, null);
|
||||||
|
|
||||||
var crypto = cryptos
|
var crypto = cryptos
|
||||||
?.FirstOrDefault(x => x.Id.ToUpperInvariant() == name || x.Name.ToUpperInvariant() == name
|
?.FirstOrDefault(x => x.Id.ToUpperInvariant() == name || x.Name.ToUpperInvariant() == name
|
||||||
|| x.Symbol.ToUpperInvariant() == name);
|
|| x.Symbol.ToUpperInvariant() == name);
|
||||||
@@ -42,7 +45,8 @@ namespace NadekoBot.Modules.Searches.Services
|
|||||||
(CryptoResponseData Elem, int Distance)? nearest = null;
|
(CryptoResponseData Elem, int Distance)? nearest = null;
|
||||||
if (crypto is null)
|
if (crypto is null)
|
||||||
{
|
{
|
||||||
nearest = cryptos.Select(x => (x, Distance: x.Name.ToUpperInvariant().LevenshteinDistance(name)))
|
nearest = cryptos
|
||||||
|
.Select(x => (x, Distance: x.Name.ToUpperInvariant().LevenshteinDistance(name)))
|
||||||
.OrderBy(x => x.Distance)
|
.OrderBy(x => x.Distance)
|
||||||
.Where(x => x.Distance <= 2)
|
.Where(x => x.Distance <= 2)
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
@@ -68,18 +72,17 @@ namespace NadekoBot.Modules.Searches.Services
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (var _http = _httpFactory.CreateClient())
|
using var _http = _httpFactory.CreateClient();
|
||||||
{
|
var strData = await _http.GetStringAsync(
|
||||||
var strData = await _http.GetStringAsync(new Uri($"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?" +
|
$"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?" +
|
||||||
$"CMC_PRO_API_KEY={_creds.CoinmarketcapApiKey}" +
|
$"CMC_PRO_API_KEY={_creds.CoinmarketcapApiKey}" +
|
||||||
$"&start=1" +
|
$"&start=1" +
|
||||||
$"&limit=500" +
|
$"&limit=5000" +
|
||||||
$"&convert=USD"));
|
$"&convert=USD");
|
||||||
|
|
||||||
JsonConvert.DeserializeObject<CryptoResponse>(strData); // just to see if its' valid
|
JsonConvert.DeserializeObject<CryptoResponse>(strData); // just to see if its' valid
|
||||||
|
|
||||||
return strData;
|
return strData;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user