Let's say hypothetically I want to make a phone app / web tools for cryptocurrency investment. Where do services get their data from? All the APIs I find have very restrictive limits.
If you need higher limits, contact said API vendor and offer money. Most will accommodate for moneys.
>>3218900
im the one who pioneered that image
>>3218900
Why dont you cache the market data on a server and serve that data to your app?
Then you can cut the requests down to a few nodes that stream its data via websockets to end client
>>3218900
You need to under volt AND power limit your cards. And don't mine during peak hours if your electric company charges you extra at that time.
Also you shouldn't be mining with 1080TI wtf.
>>3219108
Well obviously I'm not going to have the app make an API call every time the user wants to refresh data, but take for example coinmarketcap's API -- It only gives me an overview count, and no icons for ticker images. I'd need to hit all the APIs for accurate data -- cryptopia, bittrex, etherdelta, etc. And they all have different limits and give different data and some of them are stricter than others.
Ah whatever I'll just do it and not be lazy about it.
>>3219194
quick and dirty
public class Scraper : IDisposable
{
private readonly HttpClient _httpClient;
public Scraper()
{
_httpClient = new HttpClient();
}
public void Dispose()
{
_httpClient?.Dispose();
}
public async Task Scrape()
{
Directory.CreateDirectory("icons");
IList<Ticker> tickers;
using (HttpResponseMessage response =
await _httpClient.GetAsync("https://api.coinmarketcap.com/v1/ticker/"))
{
response.EnsureSuccessStatusCode();
string jsonStr = await response.Content.ReadAsStringAsync();
tickers = JsonConvert.DeserializeObject<IList<Ticker>>(jsonStr);
}
foreach (Ticker ticker in tickers)
{
await Task.Delay(500);
using (HttpResponseMessage response =
await _httpClient.GetAsync(
$"https://files.coinmarketcap.com/static/img/coins/32x32/{ticker.Id}.png"))
{
response.EnsureSuccessStatusCode();
byte[] bytes = await response.Content.ReadAsByteArrayAsync();
File.WriteAllBytes(Path.Combine("icons", $"{ticker.Id}.png"), bytes);
}
}
}
}
public class Ticker
{
public string Id { get; set; }
}