function getJSON($arguments) { $instance = \DiscoveredComponents\Exchanges::getInstance($arguments['exchange']); $key = $instance->getCode(); $q = db()->prepare("SELECT * FROM ticker_recent WHERE exchange=?"); $q->execute(array($key)); $rates = array(); while ($rate = $q->fetch()) { $rates[] = array('currency1' => $rate['currency1'], 'currency2' => $rate['currency2'], 'last_trade' => $rate['last_trade'], 'updated' => $rate['created_at']); } return array("code" => $instance->getCode(), "name" => $instance->getName(), "disabled" => $instance instanceof \Openclerk\Currencies\DisabledExchange, "rates" => $rates); }
<?php /** * Discovered exchange ticker job. */ if (!$exchange) { throw new JobException("No exchange defined"); } $instance = \DiscoveredComponents\Exchanges::getInstance($exchange); $rates = $instance->fetchAllRates($logger); $logger->info("Found " . count($rates) . " rates from exchange"); foreach ($rates as $code => $rate) { $currency1 = $rate['currency1']; $currency2 = $rate['currency2']; if (!in_array($currency1, get_all_currencies())) { $logger->info("Ignoring currency '{$currency1}': not a supported currency"); continue; } if (!in_array($currency2, get_all_currencies())) { $logger->info("Ignoring currency '{$currency2}': not a supported currency"); continue; } insert_new_ticker($job, array("name" => $exchange), $currency1, $currency2, $rate); }
function get_exchange_name($n) { if (in_array($n, Exchanges::getKeys())) { $exchange = Exchanges::getInstance($n); return $exchange->getName(); } if (in_array($n, Accounts::getKeys())) { $account = Accounts::getInstance($n); return $account->getName(); } $exchanges = get_all_exchanges(); if (isset($exchanges[$n])) { return $exchanges[$n]; } return "Unknown (" . htmlspecialchars($n) . "]"; }