// ==UserScript==
// @name IMDB - add Rottentomatoes info
// @namespace https://greasyfork.org/en/users/7864-curtis-gibby
// @description Adds info from Rottentomatoes to IMDB title pages
// @version 4.1.4
// @include http://*.imdb.com/title/*/
// @include http://*.imdb.com/title/*/?*
// @include http://*.imdb.com/title/*/maindetails
// @include http://*.imdb.com/title/*/combined
// @include http://imdb.com/title/*/
// @include http://imdb.com/title/*/maindetails
// @include http://imdb.com/title/*/combined
// @require http://code.jquery.com/jquery-1.11.0.min.js
// @downloadURL https://update.greasyfork.icu/scripts/7158/IMDB%20-%20add%20Rottentomatoes%20info.user.js
// @updateURL https://update.greasyfork.icu/scripts/7158/IMDB%20-%20add%20Rottentomatoes%20info.meta.js
// ==/UserScript==
// ==Test Cases ==
// http://www.imdb.com/title/tt1375666/ -- Inception (2010) -- RT IMDb Alias API normal (best case scenario)
// http://www.imdb.com/title/tt1375666/combined -- Inception (2010) -- Old IMDb layout -- RT IMDb Alias API normal (best case scenario)
// http://www.imdb.com/title/tt1187064/ -- Triangle (2009) -- Has a Tomatometer rating, but no consensus yet
// http://www.imdb.com/title/tt1762308/ -- Midway to Heaven (2011) -- No Tomatometer rating and no consensus
// http://www.imdb.com/title/tt1126618/ -- Morning Glory (2010) -- RT IMDb Alias API error, works through regular RT API
// http://www.imdb.com/title/tt0386676/ -- The Office (TV Series 2005– ) -- TV show (shouldn't add any RT information)
// http://www.imdb.com/title/tt1848620/ -- "The Office" Search Committee -- TV show episode (shouldn't add any RT information)
// http://www.imdb.com/title/tt1848620/combined -- "The Office" Search Committee -- Old IMDb layout -- TV show episode (shouldn't add any RT information)
// http://www.imdb.com/title/tt1375666/ -- Inception (2010) -- certified fresh
// http://www.imdb.com/title/tt1375666/ -- Inception (2010) -- upright bucket
// http://www.imdb.com/title/tt0121765/ -- Star Wars: Episode II - Attack of the Clones (2002) -- fresh
// http://www.imdb.com/title/tt0105643/ -- Troll 2 (1990) -- rotten
// http://www.imdb.com/title/tt0105643/ -- Troll 2 (1990) -- spilled bucket
// http://www.imdb.com/title/tt2543472/ -- Wonder (2017) -- *not* Wonder Woman (2017)
// ==User-Defined Variables==
//useRottenTomatoesColors = false;
useRottenTomatoesColors = true;
//showConsensus = false;
showConsensus = true;
//showAverageRating = false;
showAverageRating = true;
// showReviewCount = false;
showReviewCount = true;
// showFreshReviewCount = false;
showFreshReviewCount = true;
// showRottenReviewCount = false;
showRottenReviewCount = true;
//showAudience = false;
showAudience = true;
//showAudienceAverageRating = false;
showAudienceAverageRating = true;
// ==/User-Defined Variables==
var insertSelector = "div.star-box";
var labelHtml = 'Rotten Tomatoes:';
if ($('table.probody').length > 0) {
insertSelector = "table.probody";
}
if ($('#tn15').length > 0) {
insertSelector = "div.info:first";
}
if ($('.plot_summary_wrapper').length > 0) {
insertSelector = ".plot_summary_wrapper";
}
if (useRottenTomatoesColors == true) {
var stylesheet = ' \
';
}
else {
var stylesheet = ' \
';
}
$('head').append(stylesheet);
var spinnerGif = $('').
attr('alt', "...").
attr('src', 'data:image/gif;base64,'+
'R0lGODlhEAAQAPYAAP///wAAANTU1JSUlGBgYEBAQERERG5ubqKiotzc3KSkpCQkJCgoKDAwMDY2'+
'Nj4+Pmpqarq6uhwcHHJycuzs7O7u7sLCwoqKilBQUF5eXr6+vtDQ0Do6OhYWFoyMjKqqqlxcXHx8'+
'fOLi4oaGhg4ODmhoaJycnGZmZra2tkZGRgoKCrCwsJaWlhgYGAYGBujo6PT09Hh4eISEhPb29oKC'+
'gqioqPr6+vz8/MDAwMrKyvj4+NbW1q6urvDw8NLS0uTk5N7e3s7OzsbGxry8vODg4NjY2PLy8tra'+
'2np6erS0tLKyskxMTFJSUlpaWmJiYkJCQjw8PMTExHZ2djIyMurq6ioqKo6OjlhYWCwsLB4eHqCg'+
'oE5OThISEoiIiGRkZDQ0NMjIyMzMzObm5ri4uH5+fpKSkp6enlZWVpCQkEpKSkhISCIiIqamphAQ'+
'EAwMDKysrAQEBJqamiYmJhQUFDg4OHR0dC4uLggICHBwcCAgIFRUVGxsbICAgAAAAAAAAAAAACH/'+
'C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwA'+
'AAAAEAAQAAAHjYAAgoOEhYUbIykthoUIHCQqLoI2OjeFCgsdJSsvgjcwPTaDAgYSHoY2FBSWAAML'+
'E4wAPT89ggQMEbEzQD+CBQ0UsQA7RYIGDhWxN0E+ggcPFrEUQjuCCAYXsT5DRIIJEBgfhjsrFkaD'+
'ERkgJhswMwk4CDzdhBohJwcxNB4sPAmMIlCwkOGhRo5gwhIGAgAh+QQJCgAAACwAAAAAEAAQAAAH'+
'jIAAgoOEhYU7A1dYDFtdG4YAPBhVC1ktXCRfJoVKT1NIERRUSl4qXIRHBFCbhTKFCgYjkII3g0hL'+
'UbMAOjaCBEw9ukZGgidNxLMUFYIXTkGzOmLLAEkQCLNUQMEAPxdSGoYvAkS9gjkyNEkJOjovRWAb'+
'04NBJlYsWh9KQ2FUkFQ5SWqsEJIAhq6DAAIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhQkK'+
'E2kGXiwChgBDB0sGDw4NDGpshTheZ2hRFRVDUmsMCIMiZE48hmgtUBuCYxBmkAAQbV2CLBM+t0pu'+
'aoIySDC3VC4tgh40M7eFNRdH0IRgZUO3NjqDFB9mv4U6Pc+DRzUfQVQ3NzAULxU2hUBDKENCQTtA'+
'L9yGRgkbcvggEq9atUAAIfkECQoAAAAsAAAAABAAEAAAB4+AAIKDhIWFPygeEE4hbEeGADkXBycZ'+
'Z1tqTkqFQSNIbBtGPUJdD088g1QmMjiGZl9MO4I5ViiQAEgMA4JKLAm3EWtXgmxmOrcUElWCb2zH'+
'kFQdcoIWPGK3Sm1LgkcoPrdOKiOCRmA4IpBwDUGDL2A5IjCCN/QAcYUURQIJIlQ9MzZu6aAgRgwF'+
'GAFvKRwUCAAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYUUYW9lHiYRP4YACStxZRc0SBMyFoVE'+
'PAoWQDMzAgolEBqDRjg8O4ZKIBNAgkBjG5AAZVtsgj44VLdCanWCYUI3txUPS7xBx5AVDgazAjC3'+
'Q3ZeghUJv5B1cgOCNmI/1YUeWSkCgzNUFDODKydzCwqFNkYwOoIubnQIt244MzDC1q2DggIBACH5'+
'BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhTBAOSgrEUEUhgBUQThjSh8IcQo+hRUbYEdUNjoiGlZW'+
'QYM2QD4vhkI0ZWKCPQmtkG9SEYJURDOQAD4HaLuyv0ZeB4IVj8ZNJ4IwRje/QkxkgjYz05BdamyD'+
'N9uFJg9OR4YEK1RUYzFTT0qGdnduXC1Zchg8kEEjaQsMzpTZ8avgoEAAIfkECQoAAAAsAAAAABAA'+
'EAAAB4iAAIKDhIWFNz0/Oz47IjCGADpURAkCQUI4USKFNhUvFTMANxU7KElAhDA9OoZHH0oVgjcz'+
'rJBRZkGyNpCCRCw8vIUzHmXBhDM0HoIGLsCQAjEmgjIqXrxaBxGCGw5cF4Y8TnybglprLXhjFBUW'+
'VnpeOIUIT3lydg4PantDz2UZDwYOIEhgzFggACH5BAkKAAAALAAAAAAQABAAAAeLgACCg4SFhjc6'+
'RhUVRjaGgzYzRhRiREQ9hSaGOhRFOxSDQQ0uj1RBPjOCIypOjwAJFkSCSyQrrhRDOYILXFSuNkpj'+
'ggwtvo86H7YAZ1korkRaEYJlC3WuESxBggJLWHGGFhcIxgBvUHQyUT1GQWwhFxuFKyBPakxNXgce'+
'YY9HCDEZTlxA8cOVwUGBAAA7AAAAAAAAAAAA'
);
// try to avoid running on TV series pages
if (document.title.indexOf('TV Series') < 0
&& document.title.indexOf('TV mini-series') < 0
&& $("#pagecontent").html().indexOf('
Rotten Tomatoes® Score
') . append(tomatoMeterScoreImage) . append(tomatoMeterScoreText); rottenResults.html(tomatoMeter); if (showAudience) { var audienceRatingImageClass = 'spilled'; var audienceRatingText = 'Spilled'; var audienceRatingLabel = 'Liked It'; var audienceRatingText = ''; if (movie.RTUserMeter == 'N/A') { audienceRatingImageClass = 'wts'; audienceRatingText = 'No Audience Rating Yet'; audienceRatingLabel = 'Want To See It'; } else { audienceRatingText = movie.RTUserMeter + '%'; var userRating = parseInt(movie.RTUserMeter); if (userRating >= 60) { audienceRatingImageClass = 'upright'; }; } audienceScoreImage = $(''). attr('class', 'rtIcon ' + audienceRatingImageClass). attr('title', audienceRatingLabel); rottenResults.append( $(''). attr('href', tomatoUrl). attr('id', 'rottenTomatoesAudience'). addClass('floater'). html('Audience
') . append(audienceScoreImage). append(audienceRatingText) ); } if (showAverageRating) { averageRating = movie.RTCriticRating + '/10'; if (movie.RTCriticRating == null) { averageRating = 'n/a'; }; rottenResults.append( $(''). attr('id', 'rottenTomatoesAverage'). addClass('rottenClear'). html('Critics Average : ' + averageRating) ); } if (showAudienceAverageRating) { averageAudienceRating = movie.RTUserRating + '/5'; if (movie.RTUserRating == null) { averageAudienceRating = 'n/a'; }; rottenResults.append( $(''). attr('id', 'rottenTomatoesAudienceAverage'). addClass('rottenClear'). html('Audience Average : ' + averageAudienceRating) ); } if (showReviewCount) { reviewText = 'Reviews : ' + movie.RTCriticReviews; if (showFreshReviewCount || showRottenReviewCount) { reviewText = reviewText + ' ('; if (showFreshReviewCount) { reviewText = reviewText + movie.RTCriticFresh + ' Fresh'; } if (showRottenReviewCount) { if (showFreshReviewCount) { reviewText = reviewText + ', '; } reviewText = reviewText + movie.RTCriticRotten + ' Rotten'; } reviewText = reviewText + ')'; } rottenResults.append( $(''). attr('id', 'rottenTomatoesReviewCount'). html(reviewText) ); } if (showConsensus) { rottenResults.append( $(''). attr('id', 'rottenTomatoesConsensus'). addClass('rottenClear'). html('Consensus : ' + movie.RTConsensus) ); } rottenResults.append( $(''). addClass("rottenClear"). html(" ") ); }