/*===========================================================================*\
| The Amazon Review Tabulator - TART |
| (c) 2016-17 by Another Floyd |
| From your "Public Reviews Written by You" page on Amazon, this script |
| collects and tabulates vote tallies and related information, from all of |
| your Amazon reviews. Click the "Tabulate" link in the "Your Profile" |
| panel. Click the heart icon, for options. |
\*===========================================================================*/
// ==UserScript==
// @name The Amazon Review Tabulator - TART
// @namespace floyd.scripts
// @version 1.5.7
// @author Another Floyd at Amazon.com
// @description Lists all of your reviews with vote and comment tallies, with updates highlighted
// @include https://*amazon.com/gp/cdp/member-reviews*
// @include https://*amazon.co.uk/gp/cdp/member-reviews*
// @include https://*amazon.ca/gp/cdp/member-reviews*
// @include https://*amazon.com.au/gp/cdp/member-reviews*
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// @grant GM_log
// @grant GM_openInTab
// @grant GM_info
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
// @require https://greasyfork.org/scripts/20744-sortable/code/sortable.js?version=132520
// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
// @icon data:image/png;base64,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
// @downloadURL https://update.greasyfork.icu/scripts/24434/The%20Amazon%20Review%20Tabulator%20-%20TART.user.js
// @updateURL https://update.greasyfork.icu/scripts/24434/The%20Amazon%20Review%20Tabulator%20-%20TART.meta.js
// ==/UserScript==
// Start
(function() {
var showUpdatesOnly = false;
var primaryDisplayBuffer = "";
var updateDisplayBuffer = "";
var oldTARTstats = [];
var userID = "";
var reviewCount = 0;
var reviewerRanking = ""; // no longer used, but kept to avoid error-prone mods to newTARTstats and oldTARTstats structure
var helpfulVotes = 0;
var oldStoreItemIDs = [];
var oldStoreUpvotes = [];
var oldStoreDownvotes = [];
var oldStoreComments = [];
var newStoreItemIDs = "";
var newStoreUpvotes = "";
var newStoreDownvotes = "";
var newStoreComments = "";
var tallyWordcount = 0;
var tallyUpvotes = 0;
var tallyDownvotes = 0;
var tallyAllvotes = 0;
var tallyStars = 0;
var tallyComments = 0;
var tallyAVP = 0;
var tallyVine = 0;
// use this reference for progress indicator
var profileDiv = "";
var profileDivOriginalHTML = "";
var profileDivTabulateHTML = "
Tabulate " + String.fromCharCode(9829) + "";
function assembleDisplayBuffers (completeSetOfTableRows, reviewsProcessed) {
var today = new Date();
var formattedToday = today.toLocaleDateString('en-US',{month:'long',day:'numeric',year:'numeric'});
var toggleLink = (GM_config.get('DisplayMode')) ? "
Toggle View: All Reviews | Updates Only" : ""; var bMargin = (GM_config.get('FixedFooter')) ? "36" : "0"; var upvoteReviewRatio = (helpfulVotes/reviewCount).toFixed(2); // set up top of display page primaryDisplayBuffer = "" + "
Review Count: " + checkChange(reviewCount, oldTARTstats[6], false) + "
" +
"Helpful Votes: " + checkChange(helpfulVotes, oldTARTstats[7], false) + "
" +
"Upvote/Review Ratio: " + checkChange(upvoteReviewRatio, oldTARTstats[8], false) + toggleLink +
"
# | " + "Item | " + "Date | " + "Stars | " + "Upvotes | " + "Downvotes | " + "All Votes | " + "% Helpful | " + "Comments | " + "AVP | " + "Vine | " + "
---|---|---|---|---|---|---|---|---|---|---|
" + checkChange(reviewsProcessed, oldTARTstats[12], true) + " | " + "Average words per review: " + checkChange(avgWordsPerReview, oldTARTstats[13], true) + " | " + "" + " | " + checkChange(calcStars, oldTARTstats[0], true) + " | " + "" + checkChange(tallyUpvotes, oldTARTstats[1], true) + " | " + "" + checkChange(tallyDownvotes, oldTARTstats[2], true) + " | " + "" + checkChange(tallyAllvotes, oldTARTstats[9], true) + " | " + "" + checkChange(calcHelpfulPct, oldTARTstats[3], true) + " | " + "" + checkChange(tallyComments, oldTARTstats[4], true) + " | " + "" + checkChange(tallyAVP, oldTARTstats[10], true) + " | " + "" + checkChange(tallyVine, oldTARTstats[11], true) + " | " + "