// ==UserScript== // @name Amazon show absolute review numbers // @namespace graphen // @version 0.3.1 // @description Adds the number of reviews to each rating separately // @author Graphen // @include /^https?:\/\/www\.amazon\.(cn|in|co\.jp|sg|fr|de|it|nl|es|co\.uk|ca|com(\.(mx|au|br))?)\/.*(dp|gp\/(product|video)|exec\/obidos\/ASIN|o\/ASIN)\/.*$/ // @icon https://www.amazon.com/favicon.ico // @grant none // @noframes // @downloadURL none // ==/UserScript== /* jshint esversion: 6 */ (function() { 'use strict'; var totalReviewCount = document.querySelector('h2[data-hook="total-review-count"]').innerText; // Sanitize totalReviewCount // Remove all non-digits totalReviewCount = totalReviewCount.replace(/\D/g, ''); // Convert string to integer totalReviewCount = parseInt(totalReviewCount, 10); // Most reviewed product has ~100000 at the moment if (totalReviewCount < 250000) { const arrPercentages = Array.from(document.querySelectorAll("#histogramTable .a-text-right > *:first-child")); for (var e of arrPercentages) { let v = e.innerText; // Get rid of percentage sign and convert string to integer v = parseInt(v, 10); // Calculate absolute review count v = Math.round(v * totalReviewCount / 100); // Cancel if nonsense if (v > totalReviewCount || v < 0) { break; } // Append calculated value to visible node e.textContent += " (" + v + ")"; } } })();