Skip to content

Instantly share code, notes, and snippets.

@yusufiga
Forked from fatihky/app.js
Last active August 29, 2015 14:21
Show Gist options
  • Save yusufiga/264db6c2e63babfa783f to your computer and use it in GitHub Desktop.
Save yusufiga/264db6c2e63babfa783f to your computer and use it in GitHub Desktop.
var request = require("request");
var express = require('express');
var zlib = require("zlib");
var LRUCache = require('lru-native');
var app = express();
var cache = new LRUCache({ maxElements: 1000 });
var CACHE_TIME = 1 * 60 * 1000; // bir dk
app.get('/doviz-kurlari', function(req, res)
{
var doviz_kurlari_json = cache.get('/doviz-kurlari');
var doviz_kurlari_json_eski = cache.get('/doviz-kurlari|eski');
if(doviz_kurlari_json)
res.json(doviz_kurlari_json);
requestWithEncoding('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDTRY%22,%20%22EURTRY%22,%20%22GBPTRY%22,%20%22CADTRY%22,%20%22DKKTRY%22,%20%22SEKTRY%22,%20%22CHFTRY%22,%20%22NOKTRY%22,%20%22JPYTRY%22,%20%22AEDTRY%22,%20%22AUDTRY%22,%20%22RUBTRY%22,%20%22KWDTRY%22,%20%22ZARTRY%22,%20%22BHDTRY%22,%20%22LYDTRY%22,%20%22SARTRY%22,%20%22IQDTRY%22,%20%22ILSTRY%22,%20%22IRRTRY%22,%20%22INRTRY%22,%20%22MXNTRY%22,%20%22HUFTRY%22,%20%22NZDTRY%22,%20%22BRLTRY%22,%20%22IDRTRY%22,%20%22CSKTRY%22,%20%22PLNTRY%22,%20%22BGNTRY%22,%20%22RONTRY%22,%20%22CNYTRY%22,%20%22ARSTRY%22,%20%22ALLTRY%22,%20%22AZNTRY%22,%20%22BAMTRY%22,%20%22BYRTRY%22,%20%22CLPTRY%22,%20%22COPTRY%22,%20%22CRCTRY%22,%20%22DZDTRY%22,%20%22EGPTRY%22,%20%22HKDTRY%22,%20%22HRKTRY%22,%20%22ISKTRY%22,%20%22JODTRY%22,%20%22KRWTRY%22,%20%22KZTTRY%22,%20%22LBPTRY%22,%20%22LKRTRY%22,%20%22LTLTRY%22,%20%22LVLTRY%22,%20%22MADTRY%22,%20%22MDLTRY%22,%20%22MKDTRY%22,%20%22MYRTRY%22,%20%22OMRTRY%22,%20%22PENTRY%22,%20%22PHPTRY%22,%20%22PKRTRY%22,%20%22QARTRY%22,%20%22RSDTRY%22,%20%22SGDTRY%22,%20%22SYPTRY%22,%20%22THBTRY%22,%20%22TWDTRY%22,%20%22UAHTRY%22,%20%22UYUTRY%22)&env=store://datatables.org/alltableswithkeys&format=json', function(err, data)
{
if(err)
return res.json({durum: false});
var j = JSON.parse(data);
var v = { oranlar: {}, isimler: {} };
var birimler = ["USD", "EUR", "GBP", "CAD", "DKK", "SEK", "CHF", "NOK", "JPY", "AED", "AUD", "RUB", "KWD", "ZAR", "BHD", "LYD", "SAR", "IQD", "ILS", "IRR", "INR", "MXN", "HUF", "NZD", "BRL", "IDR", "CSK", "PLN", "BGN", "RON", "CNY", "ARS", "ALL", "AZN", "BAM", "BYR", "CLP", "COP", "CRC", "DZD", "EGP", "HKD", "HRK", "ISK", "JOD", "KRW", "KZT", "LBP", "LKR", "LTL", "LVL", "MAD", "MDL", "MKD", "MYR", "OMR", "PEN", "PHP", "PKR", "QAR", "RSD", "SGD", "SYP", "THB", "TWD", "UAH", "UYU"];
var isimler = ["Amerikan Doları", "Euro", "İngiliz Sterlini", "Kanada Doları", "Danimarka Kronu", "İsveç Kronu", "İsviçre Frangı", "Norveç Kronu", "100 Japon Yeni", "B.A.E. Dirhemi", "Avustralya Doları", "Rus Rublesi", "Kuveyt Dinarı", "Güney Afrika Randı", "Bahreyn Dinarı", "Libya Dinarı", "S. Arabistan Riyali", "Irak Dinarı", "İsrail Şekeli", "İran Riyali", "Hindistan Rupisi", "Meksika Pesosu", "Macar Forinti", "Yeni Zelanda Doları", "Brezilya Reali", "Endonezya Rupiahi", "Çek Korunası", "Polonya Zlotisi", "Bulgar Levası", "Romanya Leyi", "Çin Yuanı", "Arjantin Pesosu", "Arnavutluk Leki", "Azerbaycan Manatı", "Bosna-Hersek Markı", "Belarus Rublesi", "Şili Pesosu", "Kolombiya Pesosu", "Kostarika Kolonu", "Cezayir Dinarı", "Mısır Lirası", "Hong Kong Doları", "Hırvat Kunası", "İzlanda Kronası", "Ürdün Dinarı", "Güney Kore Wonu", "Kazak Tengesi", "Lübnan Lirası", "Sri Lanka Rupisi", "Litvanya Litası", "Letonya Latsı", "Fas Dirhemi", "Moldovya Leusu", "Makedon Dinarı", "Malezya Ringgiti", "Umman Riyali", "Peru İnti", "Filipinler Pesosu", "Pakistan Rupisi", "Katar Riyali", "Sırbistan Dinarı", "Singapur Doları", "Suriye Lirası", "Tayland Bahtı", "Yeni Tayvan Doları", "Ukrayna Grivnası", "Uruguay Pesosu"];
for(var i = 0; i < j.query.results.rate.length; i++)
{
var b = birimler[i].toLowerCase();
var oran = j.query.results.rate[i];
v.oranlar[b] = {
alis: oran.Bid,
satis: oran.Ask
};
v.isimler[b] = isimler[i];
var fark = 0;
if(doviz_kurlari_json_eski)
{
var o_oran = doviz_kurlari_json_eski.oranlar[b];
fark = Math.floor10( (o_oran.satis - v.oranlar[b].satis) * 100 / o_oran.satis, -4);
}
v.oranlar[b].fark = fark;
v.oranlar[b].durum_class = fark === 0 ? '' : fark > 0 ? 'artmis' : 'azalmis';
v.oranlar[b].ikon_class = fark === 0 ? 'fa-circle-o' : fark > 0 ? 'fa-arrow-up' : 'fa-arrow-down';
}
doviz_kurlari_json = v;
cache.set('/doviz-kurlari', doviz_kurlari_json);
setTimeout(function()
{
cache.set('/doviz-kurlari|eski', cache.get('/doviz-kurlari'));
cache.remove('/doviz-kurlari');
//console.log('zamanaşımı doldu: ', cache.get('/doviz-kurlari|eski'));
}, CACHE_TIME);
res.json(doviz_kurlari_json);
});
});
app.get('/doviz-kurlari-tcmb', function(req, res)
{
var veri = null;
var req = http.get("http://www.tcmb.gov.tr/kurlar/today.xml", function(res) {
var xml = '';
res.on('data', function(chunk) {
us++;
xml += chunk;
var options = {
object: false,
reversible: false,
coerce: true,
sanitize: true,
trim: true,
arrayNotation: false
};
var parser = require('xml2json'); /////npm
var json = parser.toJson(xml, options);
console.log(json);
var data = eval("(" + json + ")");
if (us == 1) {
var dolar_alis = data.Tarih_Date.Currency[0].ForexBuying;
var euro_alis = data.Tarih_Date.Currency[3].ForexBuying;
dovizkuru = {
"dolar": dolar_alis,
"euro": euro_alis
};
veri = dovizkuru;
}
});
res.on('end', function(e)
{
res.json({durum: true, sonuclar: veri})
});
});
req.on('error', function(err)
{
res.json({durum: false, mesaj: err})
});
})
app.listen(3000);
// http://blog.csdn.net/turkeyzhou/article/details/9931769
function requestWithEncoding(url, callback)
{
var headers = {
"accept-charset" : "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
"accept-language" : "en-US,en;q=0.8",
"accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"user-agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
"accept-encoding" : "gzip,deflate"
};
var options = {
url: url,
headers: headers
};
var req = request.get(options);
req.on('response', function(res)
{
var chunks = [];
res.on('data', function(chunk) {
chunks.push(chunk);
});
res.on('end', function()
{
var buffer = Buffer.concat(chunks);
var encoding = res.headers['content-encoding'];
if (encoding == 'gzip') {
zlib.gunzip(buffer, function(err, decoded) {
callback(err, decoded && decoded.toString());
});
} else if (encoding == 'deflate') {
zlib.inflate(buffer, function(err, decoded) {
callback(err, decoded && decoded.toString());
});
} else {
callback(null, buffer.toString());
}
});
});
req.on('error', function(err) {
callback(err);
});
};
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
// Closure
(function(){
/**
* Decimal adjustment of a number.
*
* @param {String} type The type of adjustment.
* @param {Number} value The number.
* @param {Integer} exp The exponent (the 10 logarithm of the adjustment base).
* @returns {Number} The adjusted value.
*/
function decimalAdjust(type, value, exp) {
// If the exp is undefined or zero...
if (typeof exp === 'undefined' || +exp === 0) {
return Math[type](value);
}
value = +value;
exp = +exp;
// If the value is not a number or the exp is not an integer...
if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
return NaN;
}
// Shift
value = value.toString().split('e');
value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
// Shift back
value = value.toString().split('e');
return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
}
// Decimal round
if (!Math.round10) {
Math.round10 = function(value, exp) {
return decimalAdjust('round', value, exp);
};
}
// Decimal floor
if (!Math.floor10) {
Math.floor10 = function(value, exp) {
return decimalAdjust('floor', value, exp);
};
}
// Decimal ceil
if (!Math.ceil10) {
Math.ceil10 = function(value, exp) {
return decimalAdjust('ceil', value, exp);
};
}
})();
<!-- Döviz Kuru Çevirici -->
<div id="doviz-kuru-cevirici" class="panel panel-default">
<div class="panel-heading deger-ismi">Döviz Çevirici</div>
<div class="panel-body">
<div style="display: block;">
<input id="doviz-deger-1" data-tip="try" class="doviz-deger col-md-9" type="text" name="cevrilecek-doviz-miktari"/>
<select class="col-md-3">
<option value="try">TL</option>
<option value="usd">Dolar</option>
<option value="eur">Euro</option>
</select>
</div>
<div style="display: block; height: 8px;"></div>
<br/>
<div style="display: block;">
<p>
<input id="doviz-deger-2" data-tip="usd" class="doviz-deger col-md-9" type="text" name="cevrilecek-doviz-miktari"/>
<select class="col-md-3">
<option value="try">TL</option>
<option value="usd" selected="true">Dolar</option>
<option value="eur">Euro</option>
</select>
</p>
</div>
<div style="display: block; height: 8px;"></div>
<br/>
<div style="display: block;">
<p>
<input id="doviz-deger-3" data-tip="eur" class="doviz-deger col-md-9" type="text" name="cevrilecek-doviz-miktari"/>
<select class="col-md-3">
<option value="try">TL</option>
<option value="usd">Dolar</option>
<option value="eur" selected="true">Euro</option>
</select>
</p>
</div>
</div>
</div>
var kurlar = {"usd":{"alis":"2.2204","satis":"2.2211","fark":0.0135,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"eur":{"alis":"2.7559","satis":"2.7573","fark":0.0145,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"gbp":{"alis":"3.4786","satis":"3.4799","fark":0.0143,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"cad":{"alis":"1.9795","satis":"1.9802","fark":0.0151,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"dkk":{"alis":"0.3703","satis":"0.3705","fark":0.0539,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"sek":{"alis":"0.298","satis":"0.2982","fark":0.0335,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"chf":{"alis":"2.2928","satis":"2.2936","fark":0.0261,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"nok":{"alis":"0.3276","satis":"0.3278","fark":0.0304,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"jpy":{"alis":"0.0188","satis":"0.0188","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"aed":{"alis":"0.6044","satis":"0.6048","fark":0.0165,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"aud":{"alis":"1.9302","satis":"1.9321","fark":0.0155,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"rub":{"alis":"0.0487","satis":"0.0488","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"kwd":{"alis":"7.5994","satis":"7.6271","fark":0.0144,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"zar":{"alis":"0.2029","satis":"0.203","fark":0.0492,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"bhd":{"alis":"5.8817","satis":"5.8992","fark":0.0135,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"lyd":{"alis":"1.8391","satis":"1.8551","fark":0.0107,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"sar":{"alis":"0.5917","satis":"0.5921","fark":0.0168,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"iqd":{"alis":"0.0019","satis":"0.0019","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"ils":{"alis":"0.5765","satis":"0.5771","fark":0.0173,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"irr":{"alis":"0.0001","satis":"0.0001","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"inr":{"alis":"0.036","satis":"0.0361","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"mxn":{"alis":"0.1632","satis":"0.1633","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"huf":{"alis":"0.009","satis":"0.0091","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"nzd":{"alis":"1.7559","satis":"1.758","fark":0.0113,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"brl":{"alis":"0.8751","satis":"0.8756","fark":-0.0115,"durum_class":"azalmis","ikon_class":"fa-arrow-down"},"idr":{"alis":"0.0002","satis":"0.0002","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"csk":{"alis":"N\/A","satis":"N\/A","fark":null,"durum_class":"azalmis","ikon_class":"fa-arrow-down"},"pln":{"alis":"0.6555","satis":"0.6564","fark":0.0304,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"bgn":{"alis":"1.4207","satis":"1.4107","fark":0.0141,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"ron":{"alis":"0.6198","satis":"0.6215","fark":0.0321,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"cny":{"alis":"0.3622","satis":"0.3629","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"ars":{"alis":"0.2606","satis":"0.2609","fark":0.0383,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"all":{"alis":"0.0196","satis":"0.0198","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"azn":{"alis":"2.8289","satis":"2.8334","fark":0.0141,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"bam":{"alis":"1.4053","satis":"1.408","fark":0.0142,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"byr":{"alis":"0.0002","satis":"0.0002","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"clp":{"alis":"0.0037","satis":"0.0037","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"cop":{"alis":"0.001","satis":"0.001","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"crc":{"alis":"0.0041","satis":"0.0041","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"dzd":{"alis":"0.0259","satis":"0.0259","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"egp":{"alis":"0.3096","satis":"0.3114","fark":0.0321,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"hkd":{"alis":"0.2863","satis":"0.2864","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"hrk":{"alis":"0.3577","satis":"0.3609","fark":0.0277,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"isk":{"alis":"0.018","satis":"0.018","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"jod":{"alis":"3.1295","satis":"3.1349","fark":0.0159,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"krw":{"alis":"0.002","satis":"0.002","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"kzt":{"alis":"0.0123","satis":"0.0123","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"lbp":{"alis":"0.0015","satis":"0.0015","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"lkr":{"alis":"0.0169","satis":"0.017","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"ltl":{"alis":"0.7979","satis":"0.7988","fark":0.0125,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"lvl":{"alis":"3.9167","satis":"3.9312","fark":0.0127,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"mad":{"alis":"0.2494","satis":"0.2509","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"mdl":{"alis":"0.1465","satis":"0.1475","fark":0.0677,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"mkd":{"alis":"0.0447","satis":"0.0448","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"myr":{"alis":"0.6647","satis":"0.6655","fark":0.015,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"omr":{"alis":"5.7658","satis":"5.7691","fark":0.0138,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"pen":{"alis":"0.757","satis":"0.7599","fark":0.0131,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"php":{"alis":"0.0493","satis":"0.0494","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"pkr":{"alis":"0.0217","satis":"0.0219","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"qar":{"alis":"0.6093","satis":"0.6104","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"rsd":{"alis":"0.0229","satis":"0.0229","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"sgd":{"alis":"1.7109","satis":"1.7119","fark":0.0116,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"syp":{"alis":"0.013","satis":"0.013","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"thb":{"alis":"0.0678","satis":"0.0679","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"twd":{"alis":"0.0718","satis":"0.0718","fark":0.139,"durum_class":"artmis","ikon_class":"fa-arrow-up"},"uah":{"alis":"0.1465","satis":"0.1467","fark":0,"durum_class":"","ikon_class":"fa-circle-o"},"uyu":{"alis":"0.0926","satis":"0.093","fark":0,"durum_class":"","ikon_class":"fa-circle-o"}};
var son_cevrilen_eleman = null;
function __kur_hesapla(v1, v2)
{
console.log('__kur_hesapla v1:', v1, 'v2:', v2);
if(v1.tip == "try")
return v1.deger / kurlar[v2.tip].satis;
else if(v2.tip == "try")
return v1.deger * kurlar[v1.tip].satis;
else
return (v1.deger * kurlar[v1.tip].satis) / kurlar[v2.tip].satis;
}
function __cevirici_ortak(v, v1, v2)
{
v1.el.val( Math.floor10(__kur_hesapla(v, v1), -4) );
v2.el.val( Math.floor10(__kur_hesapla(v, v2), -4) );
}
function __id_tip_deger(id)
{
var el = $('#' + id);
return {
el: el,
tip: el.attr('data-tip'),
deger: el.val()
};
}
function _cevirici_1(v){ __cevirici_ortak(v, __id_tip_deger('doviz-deger-2'), __id_tip_deger('doviz-deger-3')) }
function _cevirici_2(v){ __cevirici_ortak(v, __id_tip_deger('doviz-deger-1'), __id_tip_deger('doviz-deger-3')) }
function _cevirici_3(v){ __cevirici_ortak(v, __id_tip_deger('doviz-deger-1'), __id_tip_deger('doviz-deger-2')) }
function _veri_giris(el)
{
var tip = el.attr('data-tip');
setTimeout(function()
{
var deger = parseInt($('#' + el.attr('id')).val());
var v = {tip: tip, deger: deger};
son_cevrilen_eleman = el;
switch(el.attr('id'))
{
case 'doviz-deger-1':
_cevirici_1(v); break;
case 'doviz-deger-2':
_cevirici_2(v); break;
case 'doviz-deger-3':
_cevirici_3(v); break;
default: break;
}
}, 200);
}
function doviz_cevirici_veri_girisi()
{
_veri_giris($(this));
}
function tip_degisimi()
{
$(this).parent().find('input').attr('data-tip', this.value);
if(son_cevrilen_eleman !== null)
_veri_giris(son_cevrilen_eleman);
}
$('#doviz-kuru-cevirici select').on('change', tip_degisimi);
$('.doviz-deger').on('keypress', doviz_cevirici_veri_girisi);
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
// Closure
(function(){
/**
* Decimal adjustment of a number.
*
* @param {String} type The type of adjustment.
* @param {Number} value The number.
* @param {Integer} exp The exponent (the 10 logarithm of the adjustment base).
* @returns {Number} The adjusted value.
*/
function decimalAdjust(type, value, exp) {
// If the exp is undefined or zero...
if (typeof exp === 'undefined' || +exp === 0) {
return Math[type](value);
}
value = +value;
exp = +exp;
// If the value is not a number or the exp is not an integer...
if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
return NaN;
}
// Shift
value = value.toString().split('e');
value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
// Shift back
value = value.toString().split('e');
return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
}
// Decimal round
if (!Math.round10) {
Math.round10 = function(value, exp) {
return decimalAdjust('round', value, exp);
};
}
// Decimal floor
if (!Math.floor10) {
Math.floor10 = function(value, exp) {
return decimalAdjust('floor', value, exp);
};
}
// Decimal ceil
if (!Math.ceil10) {
Math.ceil10 = function(value, exp) {
return decimalAdjust('ceil', value, exp);
};
}
})();
/*
* doviz.com'da bulunan kurlar için yahoo finans api adresi oluşturma
* adresi şuradan buldum: http://stackoverflow.com/a/8391430
*/
// öncelikle döviz birimlerini bulmalıyız. ek olarak döviz isimlerini de ekliyorum, lazım olabilir.
// not: tüm kodları tarayıcınızla http://kur.doviz.com/ adresini açıp tarayıcınızın konsolunda çalıştırmanız gerekli
var birimler = [], isimler = [];
$("a:contains(' - ')").each( function(e, i)
{
var d = i.text;
console.log(d);
birimler.push( d.slice( d.indexOf(' - ')).slice(3) );
isimler.push( d.slice(0, d.indexOf(" - ")) );
});
// birimlerimizi sorguya eklenebilecek şekilde hazırlıyoruz
var p_in;
p_in = '(';
birimler.forEach(function (birim, i)
{
p_in += '"' + birim + 'TRY"';
if(i !== birimler.length - 1)
p_in += ', ';
})
p_in += ')';
// adresimizi oluşturuyoruz
var url = "http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in [p_in]&env=store://datatables.org/alltableswithkeys&format=json".replace('[p_in]', p_in);
// bir de formatlayalım
url = encodeURI(url);
console.log(url);
/*
Sonuç olarak elde ettiğimiz adres:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22USDTRY%22,%20%22EURTRY%22,%20%22GBPTRY%22,%20%22CADTRY%22,%20%22DKKTRY%22,%20%22SEKTRY%22,%20%22CHFTRY%22,%20%22NOKTRY%22,%20%22JPYTRY%22,%20%22AEDTRY%22,%20%22AUDTRY%22,%20%22RUBTRY%22,%20%22KWDTRY%22,%20%22ZARTRY%22,%20%22BHDTRY%22,%20%22LYDTRY%22,%20%22SARTRY%22,%20%22IQDTRY%22,%20%22ILSTRY%22,%20%22IRRTRY%22,%20%22INRTRY%22,%20%22MXNTRY%22,%20%22HUFTRY%22,%20%22NZDTRY%22,%20%22BRLTRY%22,%20%22IDRTRY%22,%20%22CSKTRY%22,%20%22PLNTRY%22,%20%22BGNTRY%22,%20%22RONTRY%22,%20%22CNYTRY%22,%20%22ARSTRY%22,%20%22ALLTRY%22,%20%22AZNTRY%22,%20%22BAMTRY%22,%20%22BYRTRY%22,%20%22CLPTRY%22,%20%22COPTRY%22,%20%22CRCTRY%22,%20%22DZDTRY%22,%20%22EGPTRY%22,%20%22HKDTRY%22,%20%22HRKTRY%22,%20%22ISKTRY%22,%20%22JODTRY%22,%20%22KRWTRY%22,%20%22KZTTRY%22,%20%22LBPTRY%22,%20%22LKRTRY%22,%20%22LTLTRY%22,%20%22LVLTRY%22,%20%22MADTRY%22,%20%22MDLTRY%22,%20%22MKDTRY%22,%20%22MYRTRY%22,%20%22OMRTRY%22,%20%22PENTRY%22,%20%22PHPTRY%22,%20%22PKRTRY%22,%20%22QARTRY%22,%20%22RSDTRY%22,%20%22SGDTRY%22,%20%22SYPTRY%22,%20%22THBTRY%22,%20%22TWDTRY%22,%20%22UAHTRY%22,%20%22UYUTRY%22)&env=store://datatables.org/alltableswithkeys&format=json
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment