// ==UserScript== // @name TorrentZ [load IMDB info] // @namespace // @version 1.01 // @description Show info of movie/series (rating, poster, actors, ...) from IMDB on TorrentZ domains (torrentz.eu, torrentz.com, ...) // @author hossam6236 // @license GNU General Public License v3.0 // @include https://torrentz.eu/* // @include https://www.torrentz.eu/* // @include https://torrentz.ph/* // @include https://www.torrentz.ph/* // @include https://torrentz.li/* // @include https://www.torrentz.li/* // @include https://torrentz.com/* // @include https://www.torrentz.com/* // @include https://torrentz.me/* // @include https://www.torrentz.me/* // @include https://torrentz.in/* // @include https://www.torrentz.in/* // @include https://torrentz.hk/* // @include https://www.torrentz.hk/* // @include https://torrentz.ch/* // @include https://www.torrentz.ch/* // @include https://torrents.de/* // @include https://www.torrents.de/* // @include https://tz.ai/* // @include https://www.tz.ai/* // @include https://torrentz-proxy.com/* // @include https://www.torrentz-proxy.com/* // @include https://bestdownload.eu/* // @include https://www.bestdownload.eu/* // @include https://torrentsmirror.com/* // @include https://www.torrentsmirror.com/* // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js // @grant GM_xmlhttpRequest // @downloadURL none // ==/UserScript== // regext for cleaning the titles var reM = /\d{4}/; var reS = /S\d{2}E\d{2}|\d{1}x\d{2}/; movie_db = {}; try { var c = localStorage.getItem('movie_db'); if (c) { $.extend(movie_db, JSON.parse(c)); } var count = 0; var start_button = $(''); start_button.appendTo($('h1').first()); start_button.css({height: start_button.parent().height()>0 ? start_button.parents('div').height() : start_button.parents('div').height()}); var updateElement_dl = function(stor_title, dl_element){ //alert(stor_title); var el_title = movie_db[stor_title].imdbVotes + ' votes - ' + movie_db[stor_title].Runtime + ' - Rated ' + movie_db[stor_title].Rated + ' - Awards: ' + movie_db[stor_title].Awards; var star = ''; var reg_wins = /([0-9]+) win(s|)/; var reg_noms = /([0-9]+) nomination(s|)/; var reg_wins_sig = /won ([0-9]+) /; var reg_noms_sig = /nominated for ([0-9]+) /; var wins = reg_wins.exec(movie_db[stor_title].Awards.toLowerCase()); if(wins) wins = parseFloat(wins[1]); var noms = reg_noms.exec(movie_db[stor_title].Awards.toLowerCase()); if(noms) noms = parseFloat(noms[1]); var wins_sig = reg_noms_sig.exec(movie_db[stor_title].Awards.toLowerCase()); if(wins_sig) wins_sig = parseFloat(wins_sig[1]); var noms_sig = reg_noms_sig.exec(movie_db[stor_title].Awards.toLowerCase()); if(noms_sig) noms_sig = parseFloat(noms_sig[1]); //if(match) alert(match[1]); if((wins_sig >= 1 || noms_sig >= 3) && (wins >= 5 || noms >= 10)){ star = '★'; }else if(wins >= 10 || (noms_sig >= 1 && noms >= 5)){ star = '★'; }else if(wins >= 5 || noms >= 10 || noms_sig >= 1){ star = '★'; }else if(wins + noms >= 1){ star = '☆'; } var el = '' + movie_db[stor_title].imdbRating + star + ''; //$('a', dl_element).first().attr('title', movie_db[stor_title].Title + ' (' + movie_db[stor_title].Year + ') - ' + movie_db[stor_title].Plot); //$('a', dl_element).first().after(' ('+movie_db[stor_title].Genre + ')'); $('a', dl_element).first().on('mouseover', function(e){ poster_img.find('img').attr('src', ""); poster_img.find('img').attr('src', movie_db[stor_title].Poster); poster_img.find('#imdb_a').attr('href', 'http://www.imdb.com/title/' + movie_db[stor_title].imdbID + ''); poster_img.find('#imdb_a').attr('title', movie_db[stor_title].Title + ' (' + movie_db[stor_title].Year + ')'); poster_img.find('#imdb_title').text(movie_db[stor_title].Title); poster_img.find('#imdb_year').text(movie_db[stor_title].Year); poster_img.find('#imdb_rating').text(movie_db[stor_title].imdbRating); poster_img.find('#imdb_votes').text(movie_db[stor_title].imdbVotes); poster_img.find('#imdb_rated').text(movie_db[stor_title].Rated); poster_img.find('#imdb_runtime').text(movie_db[stor_title].Runtime); poster_img.find('#imdb_awards').text(movie_db[stor_title].Awards); poster_img.find('#imdb_genre').text(movie_db[stor_title].Genre); poster_img.find('#imdb_actors').text(movie_db[stor_title].Actors); poster_img.find('#imdb_director').text(movie_db[stor_title].Director); poster_img.find('#imdb_writer').text(movie_db[stor_title].Writer); poster_img.find('#imdb_plot').text(movie_db[stor_title].Plot); poster_img.css({ left: $(window).width()*2/3 - poster_img.width()/2, //e.pageX + 100, top: $(window).height()/2 - poster_img.height()/2 }); //poster_img.attr('stor_title','Actors: ' + movie_db[stor_title].Actors + ' - Director: ' + movie_db[stor_title].Director) poster_img.stop(true, true).show(); }); $('a', dl_element).first().on('mouseout', function(e){ poster_img.stop(true, true).fadeOut(1000); }); //$('b', this).attr('style','font-size:65%;') var rating = parseFloat(movie_db[stor_title].imdbRating);//alert(rating); var votes = parseFloat(movie_db[stor_title].imdbVotes.replace(',','')); if (rating >= 7.5) { el = ''+el+''; } $('dt', dl_element).prepend(el+ ' '); if(rating <= 5.0 || votes <= 1000){ $('dt', dl_element).css({opacity: Math.max(0.15, Math.min(rating/10, votes/1000/2))}); }else if(movie_db[stor_title].imdbRating == "N/A" || movie_db[stor_title].imdbVotes == "N/A"){ $('dt', dl_element).css({opacity: 0.15}); } }; var getImdbInfo = function(title, year, dl_element) { var url = 'http://www.omdbapi.com/?t=' + encodeURIComponent(title) + '&y=' + encodeURIComponent(year) + '&plot=full&r=json'; var stor_title = ( title + '_' + year ); //alert("\""+title + "\""+year); //alert(url); if ( stor_title in movie_db && movie_db[stor_title]!==false) { updateElement_dl(stor_title, dl_element); return true; }else{ GM_xmlhttpRequest({ method: 'GET', url: url, onload: function(response) { var data = JSON.parse(response.responseText); if (data.Response === 'False') { if((title+" ").indexOf("s ") > -1){ //alert('aaaaaa'); return getImdbInfo((title+" ").replace("s ", "'s "), year, dl_element); }else{ movie_db[stor_title] = false; count++; } } else { movie_db[stor_title] = data; updateElement_dl(stor_title, dl_element); } //alert(title); localStorage.setItem('movie_db', JSON.stringify(movie_db)); }, onerror: function(){ console.warn('request failed: http://www.omdbapi.com/?t=' + title); } }); return false; } }; $(document).ready(function() {}); start_button.click(function() { $(this).hide(); poster_img = $('