mirror of
https://github.com/seigler/cryptohistory.org
synced 2025-07-27 01:36:11 +00:00
added currency support checking
This commit is contained in:
parent
6bf60b716e
commit
27cd5fa4e8
3 changed files with 52 additions and 16 deletions
|
@ -22,15 +22,53 @@ function getJson($url) {
|
|||
|
||||
function renderChart(
|
||||
$theme,
|
||||
$pair,
|
||||
$dataDuration = (7 * 24 * 60 * 60),
|
||||
$dataResolution = 1800,
|
||||
$currencyA,
|
||||
$currencyB,
|
||||
$duration,
|
||||
$format = 'svg',
|
||||
$width = 800,
|
||||
$height = 200,
|
||||
$fontSize = 12
|
||||
) {
|
||||
|
||||
$durations = [
|
||||
// '30d'=> [
|
||||
// 'duration' => 60 * 60 * 24 * 30,
|
||||
// 'resolution' => 7200 // 2h
|
||||
// ],
|
||||
'7d'=> [
|
||||
'duration' => 60 * 60 * 24 * 7,
|
||||
'resolution' => 1800 // 30m
|
||||
],
|
||||
'24h' => [
|
||||
'duration' => 60 * 60 * 24 * 1,
|
||||
'resolution' => 900 // 15m
|
||||
]
|
||||
];
|
||||
|
||||
if (array_key_exists($duration, $durations)) {
|
||||
$dataDuration = $durations[$duration]['duration'];
|
||||
$dataResolution = $durations[$duration]['resolution'];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
$supportedCurrencies = CacheManager::get('poloniex-supported-currencies');
|
||||
if (is_null($supportedCurrencies)) {
|
||||
$supportedCurrenciesJson = getJson('https://poloniex.com/public?command=returnCurrencies');
|
||||
foreach ($supportedCurrenciesJson as $key => $value) {
|
||||
if ($value->delisted == 0) {
|
||||
$supportedCurrencies[] = strtolower($key);
|
||||
}
|
||||
}
|
||||
CacheManager::set('poloniex-supported-currencies', $supportedCurrencies, 60 * 60 * 24 * 7); // asking once a week doesn't seem like too much
|
||||
}
|
||||
if ($currencyB != 'btc' || !in_array($currencyA, $supportedCurrencies)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$pair = strtoupper($currencyB . '_' . $currencyA); // poloniex you strange
|
||||
|
||||
$chartCacheKey = 'poloniex-'.$theme.'-'.$pair.'-'.$dataDuration.'-'.$format;
|
||||
|
||||
$result = CacheManager::get($chartCacheKey);
|
||||
|
@ -88,4 +126,5 @@ function renderChart(
|
|||
header('Content-Disposition: inline; filename="Dash-chart-' . gmdate('Y-m-d\THis+0', $startTime) . '--' . gmdate('Y-m-d\THis+0') . '.png"');
|
||||
}
|
||||
echo $result;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -54,16 +54,16 @@
|
|||
<section>
|
||||
<h2>Poloniex Dash/BTC Price</h2>
|
||||
<figure>
|
||||
<img src="/charts/dark/dash/7d/svg" alt="Poloniex Dash/BTC price">
|
||||
<img src="/charts/dark/dash-btc/7d/svg" alt="Poloniex Dash/BTC price">
|
||||
<figcaption>7 Day Dash price in BTC <code>http://cryptohistory.org/charts/dark/dash-btc/7d/svg</code></figcaption>
|
||||
</figure>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Build your own chart:</h2>
|
||||
<p>The URL is flexible:<br>
|
||||
<code>http://cryptohistory.org/charts/{theme}/{currency}/{timespan}/{format}</code>.</p>
|
||||
<code>http://cryptohistory.org/charts/{theme}/{currency}-btc/{timespan}/{format}</code>.</p>
|
||||
<p>Theme: <code>dark</code> or <code>light</code>. (More planned)</p>
|
||||
<p>Currency: anything active on Poloniex.</p>
|
||||
<p>Currency: anything active on Poloniex. Prices are all in bitcoin.</p>
|
||||
<p>Timespan: <code>30d</code>, <code>7d</code>, or <code>24h</code>. (More planned)</p>
|
||||
<p>Format: <code>svg</code> (best) or <code>png</code>.</p>
|
||||
</section>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue