Skip to content

Instantly share code, notes, and snippets.

@otsuarez
Created August 17, 2014 12:46
Show Gist options
  • Select an option

  • Save otsuarez/fa6d2b7ab613a90d36d0 to your computer and use it in GitHub Desktop.

Select an option

Save otsuarez/fa6d2b7ab613a90d36d0 to your computer and use it in GitHub Desktop.
cotizacion del dolar

Se crea una carpeta llamada dolar para mantener el codigo separado del resto de la aplicacion.

Dentro de esta carpeta se crean dos archivos. Uno php que es el encargado de actualizar la cotizacion y otro json que contiene la cotizacion.

Se configura un cron job (tarea periodica) para que ejecute el archivo php una vez al dia (le pegue a la url que seria http://dominio/dolar/hoy.php donde dominio es el que sirve el hosting).

La aplicacion va a utilizar http://dominio/dolar/hoy.json para obtener el valor de la cotizacion, asi nuestra app no falla si el servicio remoto no funciona y tambien respetamos los recursos del equipo de geeklab.

El servicio de geeklabs se encuentra descrito en este articulo.

{"libre":"8.29","blue":"13.20"}
<?php
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://ws.geeklab.com.ar/dolar/get-dolar-json.php');
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer))
{
print "Houston, we have a problem.<p>";
// send mail ...
exit;
}
else
{
print "cotizacion para hoy: $buffer <p>";;
$file = fopen("hoy.json","w");
echo fwrite($file,$buffer);
fclose($file);
print "<p>cotizacion actualizada.<p>";
}
?>
<html>
<head>
<title>precios</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="precios.js"></script>
</head>
<body>
<div class="precio">U$ 400.000</div>
<div class="precio">U$ 340.000</div>
<div class="precio">U$ 90.000</div>
</body>
</html>
$(document).ready(function(){
$.each($('.precio'), function() {
var usd = $(this).text();
var dolar = {"libre":"8.29","blue":"13.20"} ;
console.log(usd);
var priceRegex = /[(0-9)+.?(0-9)*]+/igm;
var price = usd.match(priceRegex);
var update = "U$ "+price+" / AR$ "+price*1000*dolar.blue;
var prices = '<div class="precio">'+update+'</div>';
$(this).replaceWith(prices);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment