-
-
Save yusufiga/264db6c2e63babfa783f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
}; | |
} | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- 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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
}; | |
} | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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