notebooks ratings

node v0.12.18
version: 4.0.0
endpointsharetweet
var rp = require("request-promise"); var _ = require("lodash"); var jsonData = await rp("https://www.kimonolabs.com/api/2q0i733q?&apikey=v3n5rBZStfZ0nAujuhRChstaiBkpEsaU&kimmodify=1");
parsing data
var data = JSON.parse(jsonData);
var collection = data.results.collection1
getting exhange rates from bnm.
var rp = require("request-promise"); var jsonData = await rp("https://www.kimonolabs.com/download/6eg4dlkq?apikey=v3n5rBZStfZ0nAujuhRChstaiBkpEsaU&type=json&kimmodify=1"); var data = JSON.parse(jsonData); var collectionRates = data.results.collection1 collectionRates.push({abbr: "MDL", currency: "Moldavian Leu", rate: "1", rates: "1"}) var ratesInUSD = {}; var mdl2usd = "initial data"; _(collectionRates).forEach(function(item){ if(item.abbr === "USD") mdl2usd = item.rates; }).value(); _(collectionRates).each(function(item){ ratesInUSD[item.abbr] = item.rates / item.rate / mdl2usd; }).value(); ratesInUSD;
пересчитываем в долларах
var convert2USD = function(amount, currency, rates){ return Math.floor(amount * rates[currency]); }
var standartCurrencyName = function (name){ switch(name){ case "лей": return "MDL"; case "quot;: return "USD"; case "€": return "EUR"; } return "ERROR"; }
collection
rates = ratesInUSD; collection = _(collection).forEach(function(item){ item.currency = standartCurrencyName(item.currency); item.price_in_currency = item.price_in_currency.replace(/\s+/g,""); item.priceUSD = convert2USD(item.price_in_currency, item.currency, rates); }).value();
cleanup
var cleanData = []; _(collection).each(function(item){ cleanData.push({ priceUSD : item["priceUSD"], title: item["title"]["text"], link: item["title"]["href"], imagelink : "https:"+item["imagelink"], date: item["date"] }) }).value(); var data = cleanData;
fiter out items with price < 200 USD price > 700 USD title || text contain ["Lenovo", "Cumpăr", "cumpar", "куплю", "livrare", "доставка"]
data = _.filter(data,function(item){ return item["priceUSD"]*1 > 200; }) data = _.filter(data,function(item){ return item["priceUSD"]*1 < 700; })
filter out duplicate items (same title)
data = _.uniq(data, 'title');
fiter out items with title || text contain ["Lenovo", "Cumpăr", "cumpar", "куплю", "livrare", "доставка"...]
var excludeWords = ["Lenovo", "Cumpăr", "cumpar", "куплю", "livrare", "доставка","складская цена","Reduceri","i5", "запечатанный", "запечатаный",'/\d{4}U/']; data = _.filter(data,function(item){ var str1 = item["title"]; var toExclude = _.any(excludeWords, function(exclude){ var f = new RegExp(exclude, "gim"); return f.test(str1); }) return !toExclude; })
Loading…

no comments

    sign in to comment