Add link on Trakt movie pages to search that title on Rotten Tomatoes
当前为
// ==UserScript==
// @name Trakt Rotten Tomatoes Link and Info
// @namespace https://greasyfork.org/en/users/7864-curtis-gibby
// @description Add link on Trakt movie pages to search that title on Rotten Tomatoes
// @version 1.0.2
// @locale en
// @grant none
// @include https://trakt.tv/movies/*
// ==/UserScript==
var title = document.querySelectorAll('meta[property="og:title"]')[0].getAttribute('content').replace(/ \([0-9]{4}\)/, '');
var year = parseInt(document.querySelectorAll('meta[property="og:title"]')[0].getAttribute('content').match(/\(([0-9]{4})\)/)[1]);
var actorName = document.body.querySelectorAll('li[itemprop="actor"]')[0].querySelectorAll('h4.name')[0].innerHTML;
imdbLink = document.querySelectorAll("a[href^='http://www.imdb.com']")[0];
var rottenTomatoesLink = imdbLink.cloneNode(true);
rottenTomatoesLink.href = 'https://duckduckgo.com/?q=site%3Arottentomatoes.com+' + encodeURIComponent(title) + '+' + year + '+!&t=hg';
var apiUrl = 'https://cinesift.com/api/values/getFilms?cast=' + actorName + '&comboScoreMax=100&comboScoreMin=0&countryCode=us¤tPage=0&director=&genreAND=false&imdbRatingMax=10&imdbRatingMin=0&imdbVotesMax=1600000&imdbVotesMin=0&inCinemas=true&includeDismissed=true&includeSeen=true&includeWantToWatch=true&isCastSearch=false&isDirectorSearch=false&language=all&letterboxdScoreMax=100&letterboxdScoreMin=0&letterboxdVotesMax=1400000&letterboxdVotesMin=0&metacriticMax=100&metacriticMin=0&netflixRegion=us&onAmazonPrime=false&onAmazonVideo=false&onDVD=false&onNetflix=false&plot=&popularityMax=100&popularityMin=0&queryType=GetFilmsToSieve&rtCriticFreshMax=300&rtCriticFreshMin=0&rtCriticMeterMax=100&rtCriticMeterMin=0&rtCriticRatingMax=10&rtCriticRatingMin=0&rtCriticReviewsMax=400&rtCriticReviewsMin=0&rtCriticRottenMax=200&rtCriticRottenMin=0&rtUserMeterMax=100&rtUserMeterMin=0&rtUserRatingMax=5&rtUserRatingMin=0&rtUserReviewsMax=40000000&rtUserReviewsMin=0&searchTerm=&sortOrder=comboScoreDesc&title=' + title + '&token=&watchedRating=0&writer=&yearMax=' + (year + 1) + '&yearMin=' + (year - 1);
rottenTomatoesLink.setAttribute('data-original-title', 'Checking Cinesift API...');
rottenTomatoesLink.innerHTML = 'Rotten Tomatoes <i class="fa fa-spinner fa-spin"></i>';
imdbLink.parentNode.appendChild(rottenTomatoesLink);
var newXHR = new XMLHttpRequest();
newXHR.addEventListener( 'load', parseValidResponse );
newXHR.open( 'GET', apiUrl );
newXHR.send();
function parseValidResponse() {
data = JSON.parse(JSON.parse(this.response));
if (data.length == 0) {
rottenTomatoesLink.innerHTML = 'Rotten Tomatoes <i class="fa fa-exclamation-circle"></i>';
return false;
}
var movie = data[0];
rtIcon = 'ban';
if (movie.RTCriticMeter == null) {
rtIcon = 'question-circle';
}
if (movie.RTCriticMeter > 60) {
rtIcon = 'check';
}
if (movie.RTCriticMeter > 75) {
rtIcon = 'trophy';
}
rottenTomatoesLink.innerHTML = 'Rotten Tomatoes <i class="fa fa-' + rtIcon + '"></i>';
if (movie.RTConsensus == null) {
var consensusText = 'n/a';
} else {
var consensusText = movie.RTConsensus;
}
if (movie.RTCriticMeter == null) {
var criticsText = 'n/a';
} else {
var criticsText = movie.RTCriticMeter + '%';
}
if (movie.RTUserMeter == null) {
var audienceText = 'n/a';
} else {
var audienceText = movie.RTUserMeter + '%';
}
var altText = 'Critics: ' + criticsText
+ '\nAudience: ' + audienceText
+ '\nConsensus: ' + consensusText;
rottenTomatoesLink.setAttribute('title', altText);
}