// ==UserScript== // @name Amazon a Dolar Tarjeta // @namespace sharkiller-amazon-dolar-tarjeta // @description Mostrar precios en dolar tarjeta // @version 1.0 // @include http://www.amazon.com/* // @include https://www.amazon.com/* // @include http://amazon.com/* // @include https://amazon.com/* // @include http://www.amazon.co.uk/* // @include https://www.amazon.co.uk/* // @include http://amazon.co.uk/* // @include https://amazon.co.uk/* // @include http://www.amazon.ca/* // @include https://www.amazon.ca/* // @include http://amazon.ca/* // @include https://amazon.ca/* // @require http://code.jquery.com/jquery-latest.js // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM_addStyle // @downloadURL none // ==/UserScript== (function() { if( typeof jQuery === 'undefined' ){ return false; } GM_addStyle(` .price-ars { color: green; display: inline-block; margin: 0 8px; background: linear-gradient(to bottom,lightblue,white,lightblue); border-radius: 8px; padding: 0 6px; } #sc-buy-box .price-ars { font-size: 12px; display: block; padding: 0; margin: 0; background: none; } div#sc-buy-box { margin-bottom: -14px; } `); String.prototype.endsWith = function (pattern) { var d = this.length - pattern.length; return d >= 0 && this.lastIndexOf(pattern) === d; }; var amazonCurrencies = ["USD", "GBP", "CAD"]; var currencyFrom; function regularPriceParser(price, currency) { return parseFloat(price.replace(/,/g, "")); } var currencies = { "USD" : { symbol: "$", priceRegex: /\$\s*([\d,.]+\d)/ }, "GBP" : { symbol: "£", priceRegex: /£\s*([\d,.]+\d)/ }, "CAD" : { symbol: "CDN$", priceRegex: /CDN\$\s*([\d,.]+\d)/ } }; if (document.domain.endsWith("com")) { currencyFrom = "USD"; // amazon.co.uk } else if (document.domain.endsWith("co.uk")) { currencyFrom = "GBP"; // amazon.ca } else if (document.domain.endsWith("ca")) { currencyFrom = "CAD"; } else { return; } var LAST_RUN = "last_run_"; var CURRENCY_RATE = "currency_rate_"; var decimalPlaces = 2; var prefixCurrencySymbol = true; var taxPorcentage = 35; var rounding = Math.pow(10, decimalPlaces); var rate = GM_getValue(CURRENCY_RATE + currencyFrom); var lastRun = GM_getValue(LAST_RUN + currencyFrom, "01/01/0001"); var currencyTo = 'ARS'; var todayDate = new Date(); var todayString = todayDate.getDate() + "/" + todayDate.getMonth() + "/" + todayDate.getFullYear(); var currencyToSymbol = 'ARS $'; function fetchCurrencyData(coin, callback) { GM_xmlhttpRequest({ method: "GET", url: "http://download.finance.yahoo.com/d/quotes.csv?s=" + coin + currencyTo + "=X&f=l1&e=.csv", onload: function(responseDetails) { var rate = responseDetails.responseText.replace(/[\r\n]/g, ""); GM_setValue(CURRENCY_RATE + coin, rate); GM_setValue(LAST_RUN + coin, todayString); callback(); }, onerror: function(responseDetails) { alert("Error fetching currency data for " + coin); } }); } function appendConversion(price, matched) { var originalPrice = regularPriceParser(matched, currencyFrom); if (isNaN(originalPrice)) { return price; } var converted = formatCurrency(originalPrice * (rate * (taxPorcentage / 100 + 1)), rounding, currencyToSymbol, prefixCurrencySymbol); return price + "