// ==UserScript== // @name Amazon Links // @description:en Adds eBay markup price, direct link to Amazon product page, eBay search by title, ThePriceGeek search by first 10 words of title, Amabay search by title. // @include *//*amazon.*/* // @run-at document-end // @require http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js // @version 1.0 // @namespace https://greasyfork.org/users/115271 // @downloadURL none // ==/UserScript== /** * This script adds a few links to each Amazon product page: * 1. A direct (clean) link to the product page which can be used e.g. to share (copy & paste) * a product page without session information etc.: * http://amazon.[TLD]/dp/[ASIN] * 2. A link to the current product on eBay * http://www.ebay.com/sch/i.html?_sacat=0&_nkw=[title]&LH_BIN=1&LH_FS=1&_sop=15 * 3. A link to the current product on ThePriceGeek * http://www.thepricegeek.com/results/[first ten words of title]?country=us * 4. A link to the current product on Amabay * http://amabay.linked8.com/?p=search&c=ALL&q=[title]&sourceid=srch_rslt_logo®ion=us **/ (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); }; } })(); (function () { // config var SHOW_LINK_ICON = 1; // toggle link fav icons var LINK_STYLE = "font-weight: bold; font-style: italic;"; // not all pages have fav icons so the following currently makes no sense var SHOW_LINK_TEXT = 1; // toggle link text if (! $('input#ASIN:first').length) { return; // this doesn't seem to be a product page } // get the ASIN (product id) var asin = $('input#ASIN:first').val(); // get the product title var title = document.getElementById("productTitle").innerHTML.replace(/"/g, '').trim(); // get the price try { var price = document.getElementById("priceblock_ourprice").innerHTML.trim().substr(1) } catch(err){ var price = document.getElementById("priceblock_saleprice").innerHTML.trim().substr(1) } // define the eBay sale price var markup = Math.round10(price * 1.09 * 1.0319 + 3.70, -2) try { document.getElementById("priceblock_ourprice").innerHTML = "$" + price + ""; } catch(err) { document.getElementById("priceblock_saleprice").innerHTML = "$" + price + ""; } // alert("Must sell above $" + markup); // get top level domain (the simple way) var tld = document.domain.split('.').pop(); if ([ 'au', 'br', 'mx' ].indexOf(tld) > -1) { // add .com to some domains tld = 'com.'+tld; } else if ([ 'uk', 'jp' ].indexOf(tld) > -1) { // add .co to others tld = 'co.'+tld; } // create all new links // direct link var link1url = ''; var link1 = ''; if (tld != undefined) { // add only if TLD was identified var tooltip = (tld == 'de' ? 'Direkter und sauberer Produktlink.' : 'Direct and clean product link.'); link1url = 'http://amazon.' + tld + '/dp/' + asin; link1 = (SHOW_LINK_ICON ? ' ' : '') + '' + (SHOW_LINK_TEXT ? (tld == 'de' ? 'Direkter Link' : 'Direct link') : '') + ' / '; } // eBay.com var link2url = 'http://www.ebay.com/sch/i.html?_sacat=0&_nkw=' + title + '&LH_BIN=1' + '&LH_FS=1' + '&_sop=15' + '&_udlo=' + price; var link2 = (SHOW_LINK_ICON ? ' ' : '') + '' + (SHOW_LINK_TEXT ? 'eBay' : '') + ' / '; // ThePriceGeek.com var link3url = 'http://www.thepricegeek.com/results/' + title.replace(/(([^\s]+\s\s*){10})(.*)/,"$1") + '?country=us'; //var link3 = (SHOW_LINK_ICON ? ' ' : '') var link3 = '' + (SHOW_LINK_TEXT ? 'ThePriceGeek' : '') + ' / '; // Amabay var link4url = 'http://amabay.linked8.com/?p=search&c=ALL&q=' + title + '&sourceid=srch_rslt_logo®ion=us'; var link4 = (SHOW_LINK_ICON ? ' ' : '') + '' + (SHOW_LINK_TEXT ? 'Amabay' : '') + ''; // add the links as new table row below the price information $('table.product > tbody:last > tr:last, table.a-lineitem > tbody:last > tr:last').after(''+link1+link2+link3+link4+''); })();