NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name TorrentLeech V5 Enhancer
// @namespace https://openuserjs.org/scripts/Sandbird/TorrentLeech_V5_Enhancer
// @description Enhance TorrentLeech
// @downloadURL https://openuserjs.org/install/Sandbird/TorrentLeech_V5_Enhancer.user.js
// @updateURL https://openuserjs.org/meta/Sandbird/TorrentLeech_V5_Enhancer.meta.js
// @match https://torrentleech.org/torrents/*
// @match https://www.torrentleech.org/torrents/*
// @match https://torrentleech.cc/torrents/*
// @match https://www.torrentleech.cc/torrents/*
// @resource trakt_btn https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/tr.png
// @resource trakt_btn_on https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/tr_on.png
// @resource info_btn https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/i.png
// @resource info_btn_on https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/i_on.png
// @resource copy_btn https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/c.png
// @resource copy_btn_on https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/c_on.png
// @resource trailer_btn https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/t.png
// @resource trailer_btn_on https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/t_on.png
// @resource navBAR https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/AdminLTE.min.css
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
// @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
// @require https://cdn.jsdelivr.net/gh/Sandbird/TL@latest/app.min.js
// @require https://raw.githubusercontent.com/overlib/overlib/master/overlib.js
// @require https://raw.githubusercontent.com/Sandbird/TL/master/jquery-multidownload.js
// @run-at document-start
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_getResourceURL
// @grant GM_getResourceText
// @grant GM_xmlhttpRequest
// @grant GM_addStyle
// @version 3.2
// @license MIT
// ==/UserScript==
this.$ = this.jQuery = jQuery.noConflict(true);
var navBAR = GM_getResourceText ("navBAR");
GM_addStyle (navBAR);
function button(name, src, rollover){
this.type = name;
this.src = src;
this.rollover = rollover;
}
var traktv = new button('traktv' ,GM_getResourceURL('trakt_btn') ,GM_getResourceURL('trakt_btn_on'));
var info = new button('info' ,GM_getResourceURL('info_btn') ,GM_getResourceURL('info_btn_on'));
var copy = new button('copy' ,GM_getResourceURL('copy_btn') ,GM_getResourceURL('copy_btn_on'));
var trailer = new button('trailer' ,GM_getResourceURL('trailer_btn') ,GM_getResourceURL('trailer_btn_on'));
//var episodes = new button('episodes' ,GM_getResourceURL('episodes_btn') ,GM_getResourceURL('episodesRl_btn'));
var fixed_words = Array('INTERNAL' , 'iNTERNAL' ,'READNFO' ,'NFO' ,'XBLA' ,'XBOX360','GERMAN','USA', 'NDS' ,'Update' ,
'Edition' ,'MULTi9' ,'MULTi7' ,'MULTi5' ,'MULTi2' ,'MULTi1' ,'XBLA' ,'Proper' ,
'JTAG' ,'PS3' ,'EUR' ,'DLC' ,'PL' ,'WII' ,'NGC' ,'FIX' ,'CRACK' ,'WORKING' ,
'NTSC' ,'Real' ,'DVDR' ,'RC' ,'BDRip' ,'TS' ,'RF' ,'PAL' ,'NORDiC' ,'UNRATED',
'WEBRiP', 'DVDRip', 'HDRip', 'BluRay', 'Blu-ray', 'HDTV' ,'HDCAM',
'720p BluRay' , '1080p BluRay', '720p', '1080p', '2160p', 'label-danger');
var buttons_collection = [traktv,
info,
copy,
trailer
];
function addStyle(css) {
var newstyle = document.createElement("style");
newstyle.setAttribute("type", "text/css");
newstyle.appendChild(document.createTextNode(css));
document.getElementsByTagName("head")[0].appendChild(newstyle);
}
function getType(category_value){
switch(category_value){
case 1: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 29: case 37: case 43:
return 'cat_movies';
case 2: case 26: case 27: case 32:
return 'cat_tv';
case 3: case 17: case 18: case 19: case 20: case 21: case 22: case 28: case 30:
return 'cat_games';
}
}
function inRange(x, min, max) {
return min <= x && x <= max;
}
function splitter(string, type){
var result = "";
var split_str = string.split(' ');
for (var index in split_str){
if(type == 'cat_tv')
if(parseInt(split_str[index],10) > 10 ){
result = (split_str.slice(0,index)).join(" ");
splitter(result, type);
break;
}
if(split_str[index].toLowerCase() == "update"){
result = (split_str.slice(0,index)).join(" ");
splitter(result, type);
break;
}
if(split_str[index].charAt(0).toLocaleLowerCase() == 'v' && !isNaN(split_str[index].charAt(1))){
result = (split_str.slice(0,index)).join(" ");
splitter(result, type);
break;
}
if(split_str[index].indexOf('-') != -1){
result = (split_str.slice(0,index)).join(" ");
splitter(result, type);
break;
}
}
if(result.length > 0)
return result;
else
return string;
}
function cleanName2(rawName, type){
var name = "";
var tempName = splitter(rawName, type);
var split_name = tempName.split(" ");
//remove fixed words
for(var j = 0; j < split_name.length; j++){
var found = false;
for(var k = 0; k < fixed_words.length; k++){
if(fixed_words[k].toLowerCase() == split_name[j].toLowerCase()){
found = true;
break;
}
}
if(found)
delete split_name[j];
}
//special case filter
for (var index in split_name){
if(isNaN(split_name[index]) &&
isNaN(split_name[index].charAt(0)) &&
split_name[index].indexOf("(") == -1){
if(type == 'tv')
if(split_name[index].indexOf("E") != -1 && split_name[index].indexOf("S") != -1)
break;
name += split_name[index] + " ";
}
else if(!isNaN(split_name[index])){ //handler for numbers in the name
if(type == 'movies')
if(parseInt(split_name[index],10) > 10 )
break;
name += split_name[index] + " ";
}
else
break;
}
if(type== 'tv')
return name.slice(0, - 1);
else
return $.trim(name);
}
function openImdb(name, type){
var movie_name = cleanName2(name, type);
window.open('http://www.imdb.com/find?s=tt&q=' + movie_name);
//http://www.imdbapi.com/?t=movie name --- get json respons with imdb id
//http://www.imdb.com/find?s=tt&q=movie name --- takes you to the movie page or to results
}
function opentraktTV(name , type){
var showtype;
var tv_name = cleanName2(name, type);
if(type== 'tv'){
showtype = 'shows';
}else if (type== 'movies'){
showtype = 'movies';
}
window.open('https://trakt.tv/search/'+showtype+'?query=' + tv_name);
//http://www.tv.com/search?type=11&stype=all&tag=search%3Bforums&q=tv show name
}
function openTv(name , type){
var tv_name = cleanName2(name, type);
window.open('https://www.tvmaze.com/search?q=' + tv_name);
//http://www.tv.com/search?type=11&stype=all&tag=search%3Bforums&q=tv show name
}
function openEpisodes(name, type){
var episode_name = cleanName2(name, type);
window.open('http://www.torrentleech.org/torrents/browse/index/query/'+ episode_name + '/facets/e8044d_877b75');
//www.torrentleech.org/torrents/browse/index/query/The+Big+Bang+Theory/facets/e8044d_877b75
}
function openGamePlay(name, type){
var game_name = cleanName2(name, type);
window.open('http://www.youtube.com/results?search_query='+ game_name + " gameplay");
//http://www.youtube.com/results?search_query=game name
}
function openTrailer(name, type){
var movie_name = cleanName2(name, type);
window.open('http://www.youtube.com/results?search_query='+ movie_name + " trailer");
//http://www.youtube.com/results?search_query=game name
}
function openGameReview(name, type){
var game_name = cleanName2(name, type);
//window.open('http://www.gamespot.com/search/?qs='+ game_name);
window.open('http://www.rlslog.net/?s='+ game_name +'&sbutt=Go');
//http://www.gamespot.com/search/?qs=
}
function store(name, val) {
if (typeof (Storage) !== "undefined") {
localStorage.setItem(name, val);
} else {
window.alert('Please use a modern browser to properly view this template!');
}
}
function get(name) {
if (typeof (Storage) !== "undefined") {
return localStorage.getItem(name);
} else {
window.alert('Please use a modern browser to properly view this template!');
}
}
function addColour(whatTodo) {
$('div[class = "icell seeders"]').each(function(){
var snum = $(this).html();
if( $(snum).hasClass('seederDiv') ){
snum = $(this).find('.seederDiv').html();
}
var sstyle = '';
var stitle = '';
var spre = 'color';
if(inRange(snum, 0, 50)) {
sstyle = 'style="color:#D9D9D9"';
stitle = '#D9D9D9';
}
else if(inRange(snum, 51, 100)) {
sstyle = 'style="color:#f5efd2"';
stitle = '#f5efd2';
}
else if(inRange(snum, 101, 200)) {
sstyle = 'style="color:#c0eca9"';
stitle = '#c0eca9';
}
else if(inRange(snum, 201, 300)) {
sstyle = 'style="color:#82e3af"';
stitle = '#82e3af';
}
else if(inRange(snum, 301, 500)) {
sstyle = 'style="color:#5db5da"';
stitle = '#5db5da';
}
else if(inRange(snum, 501, 800)) {
sstyle = 'style="color:#4d3bd1"';
stitle = '#4d3bd1';
}
else if(inRange(snum, 801, 1000)) {
sstyle = 'style="color:#be1cc8"';
stitle = '#be1cc8';
}
else if(inRange(snum, 1001, 10000000)) {
sstyle = 'style="color:#bf002d"';
stitle = '#bf002d';
}
else{
sstyle = 'style="font-weight:bold"';
spre = 'font-weight';
stitle = '#bf002d';
}
if (whatTodo === undefined) {
$(this).empty();
$(this).append ('<span class="seederDiv" ' + sstyle + '>' + snum + '</span>');
}else{
var titleObj = $(this).closest('tr').find('.name a');
//$(this).closest('tr').find('.name a').wrapInner('<span class="titleDiv" ' + sstyle + '></span>');
$(this).closest('tr').find('.name a').css(spre, stitle);
}
});
}
function removeColour(whatTodo) {
$('div[class = "icell seeders"]').each(function(){
var sstyle = 'style="color:#71942c"';
if (whatTodo === undefined) {
$(this).find('.seederDiv').contents().unwrap();
}else{
//var titleOjb = $(this).closest('tr').find('.titleDiv').html();
//$(this).closest('tr').find('.name a').empty();
//$(this).closest('tr').find('.name a').wrapInner(titleOjb);
$(this).closest('tr').find('.name a').css({"color": ""});
}
});
}
function squeezeTorrents(){
//Squeezer
function guess_title(title, ntype) {
var guessed = cleanName2(title, ntype);
return guessed ? guessed : title;
}
function fix_odd_even() {
var odd = true;
var count = 0;
var was_odd = false;
$('.torrents tr').each(function () {
var tr = $(this);
if (tr.hasClass('squeezer')) {
count = parseInt(tr.attr('data-count')) + 1;
was_odd = odd;
}
tr.removeClass('odd even').addClass(odd ? 'odd' : 'even');
odd = --count == 0 ? !was_odd : !odd;
});
}
var elements = $('.torrents tr');
elements.each(function() {
var tr = $(this);
this.category_type = tr.find('.iconLink').attr('data-ccid');
this.guessed_title = guess_title(tr.find('.name a').text(), this.category_type);
//console.log(this.guessed_title);
this.guessed_title_lowercase = this.guessed_title.toLowerCase();
this.seeds = parseInt(tr.find('.seeders').text());
this.peers = parseInt(tr.find('.leechers').text());
this.snatched = parseInt(tr.find('.snatched').text());
});
for (var x = 0; x < elements.length; ++x) {
var el = elements[x];
if (el.processed)
continue;
var found_elements = [$(el).attr('data-tid')];
var peers = el.peers;
var seeds = el.seeds;
var snatched = el.snatched;
for (var y = elements.length - 1; y > x; y--) {
var other = elements[y];
if (!other.processed && el.guessed_title_lowercase == other.guessed_title_lowercase) {
$(el).after(other);
other.processed = true;
peers = Math.max(other.peers, peers);
seeds = Math.max(other.seeds, seeds);
snatched = Math.max(other.snatched, snatched);
found_elements.push($(other).attr('data-tid'));
}
}
if (found_elements.length > 1) {
var row = '<tr class="squeezer" data-count="' + found_elements.length + '">'
+ '<td class="circle" style="font-size: 20px; line-height: 44px; text-align:center">'
+ found_elements.length + '</td>'
+ '<td class="td-name"><div class="name"><a href="javascript:">'
+ el.guessed_title + '</a></div></td>'
+ '<td class="td-quick-download"></td><td class="td-uploaded-time"></td><td class="td-comment"></td><td class="td-size"></td>'
+ '<td class="td-snatched">' + snatched + '</td>'
+ '<td class="td-seeders">' + seeds + '</td>'
+ '<td class="td-leechers">' + peers + '</td></tr>';
var new_row = $(el).before(row).prev();
//var ids = $(found_elements.join(','));
// ids.hide();
var selectors = found_elements.map(function (id) { return 'tr[data-tid="' + id + '"]'; });
var ids = selectors.join(', ');
$('.torrents').find(ids).hide();
new_row.data('ids', ids);
new_row.data('show', false);
//$('.torrents').find(ids).find('.name a').each(function () {
// this.innerHTML = this.innerHTML.substr(el.guessed_title.length);
//});
$('.torrents').find(ids).find('.circle').css({position: 'relative', left: '20px' });
$('.torrents').find(ids).find('div.name').prepend('<div style="float: left; width: 30px; height: 20px"></div>');
$('.torrents').find(ids).find('div.info').prepend('<div style="float: left; width: 30px; height: 20px"></div>');
//console.log($('.torrents').find(ids).find('.label-danger').length);
var numItems = $('.torrents').find(ids).find('.label-danger').length;
if (numItems > 0){
new_row.find('.name').append(' <span class="new label label-danger">new</span>');
}
new_row.click(function () {
var show = $(this).data('show');
var ids = $(this).data('ids');
show ? $('.torrents').find(ids).hide() : $('.torrents').find(ids).show()
$(this).data('show', !show);
});
fix_odd_even();
}
}
//Squeezer
}
function showThumbs(){
var tOut;
$('.name').hover(function() {
var tr = $(this);
tOut = setTimeout(function(){
var href = tr.find('a:first').attr('href');
if (href !== undefined){
var fullink = 'https://www.torrentleech.org' + href;
$.ajax({
url: fullink,
success: function(data) {
src = $(".imdb_cover img", data).prop("src");
if (src !== undefined){
return overlib('<img height="150px" src=\''+src+'\' style=\'border:1px solid black\'>');
}else{
return overlib('<img height="100px" title ="" src=\'https://icon-library.com/images/no-photo-available-icon/no-photo-available-icon-21.jpg\' style=\'border:1px solid black\'>');
//return nd();
}
}
});
}
},300);
},function(){
clearTimeout(tOut);
return nd();
});
}
function setupAdminLTE() {
$("[data-controlsidebar]").on('click', function () {
// console.log("tst");
var slide = !AdminLTE.options.controlSidebarOptions.slide;
AdminLTE.options.controlSidebarOptions.slide = slide;
if (!slide)
$('.control-sidebar').removeClass('control-sidebar-open');
});
$("[data-boldtitles='toggle']").on('click', function () {
var fontWeight = $('.table-responsive .name').css('font-weight');
if (fontWeight == 'normal' || fontWeight == '400') {
$('.table-responsive .name').css("font-weight", "bold");
store('boldtitles', "bold");
} else {
$('.table-responsive .name').css("font-weight", "normal");
store('boldtitles', "normal");
}
});
$("[data-boldseeders='toggle']").on('click', function () {
var fontWeight = $('.table-responsive .seeders').css('font-weight');
if (fontWeight == 'normal' || fontWeight == '400') {
$('.table-responsive .seeders').css("font-weight", "bold");
store('boldseeders', "bold");
} else {
$('.table-responsive .seeders').css("font-weight", "normal");
store('boldseeders', "normal");
}
});
$("[data-coloredtitles='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
addColour('title');
store('colortitles', 1);
}
else if($(this).prop("checked") === false){
removeColour('title');
store('colortitles', 0);
}
});
$("[data-coloredseeders='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
addColour();
store('colorseeders', 1);
}
else if($(this).prop("checked") === false){
removeColour();
store('colorseeders', 0);
}
});
$("[data-tightbox='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
store('tighterbox', "small");
document.location.reload();
}
else if($(this).prop("checked") === false){
store('tighterbox', "wide");
document.location.reload();
}
});
$("[data-imdbdetails='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
$('.table-responsive span[class="filter"]').show();
$('.table-responsive i[class="fa fa-tag"]').prev().show();
$('.table-responsive i[class="fa fa-tag"]').show();
store('imdbdetails', "1");
//document.location.reload();
}
else if($(this).prop("checked") === false){
$('.table-responsive span[class="filter"]').hide();
$('.table-responsive i[class="fa fa-tag"]').prev().hide();
$('.table-responsive i[class="fa fa-tag"]').hide();
store('imdbdetails', "0");
//document.location.reload();
}
});
$("[data-extrabuttons='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
$('div[class = "enhanceWrapper"]').show();
store('extrabuttons', "1");
}
else if($(this).prop("checked") === false){
$('div[class = "enhanceWrapper"]').hide();
store('extrabuttons', "0");
}
});
$("[data-squezzer='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
store('squezzer', "1");
document.location.reload();
}
else if($(this).prop("checked") === false){
store('squezzer', "0");
document.location.reload();
}
});
$("[data-showxxx='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
// $('a[class = "xxx"]').show();
$('.xxx').show();
store('showxxx', "1");
}
else if($(this).prop("checked") === false){
//$('a[class = "xxx"]').hide();
$('.xxx').hide();
store('showxxx', "0");
}
});
$("[data-covers='toggle']").on('click', function () {
if ($(this).prop('checked')===true){
store('covers', "1");
document.location.reload();
}
else if($(this).prop("checked") === false){
store('covers', "0");
document.location.reload();
}
});
$('#highlighter').keyup(function() {
var highlight_txt = document.getElementById("highlighter");
store("highlight", highlight_txt.value);
});
$("#data-reset-cookies").on('click', function () {
localStorage.clear();
alert("Settings restored !");
document.location.reload();
});
}
//Hide movie row vars
var stored_films = JSON.parse(localStorage.getItem("HiddenFilms") || "[]");
var any_hidden_film_removed = false;
function hide_film(film){
function guess_title(title, ntype) {
var guessed = cleanName2(title, ntype);
return guessed ? guessed : title;
}
var hideme = $('.torrent').filter(function () {
var tr = $(this);
this.category_type = tr.find('.iconLink').attr('data-ccid');
this.guessed_title = guess_title(tr.find('.name a').text(), this.category_type);
return $(this).find('.name a').attr('href') == film.link || this.guessed_title == film.title;
});
hideme.hide();
}
function hide_films(films) {
if (films !== null) {
for (var value of films) {
console.log(value);
hide_film(value);
};
}
}
//////////////
//blank the page
var css = ".highlight { background-color: yellow; color: black !important;} html { font-family: 'Open Sans', sans-serif; height: 100%; background-color: #f5f5f5; visibility:hidden; !important} .results .torrents .torrent .quick-download-img {width: 25px; height: 25px; line-height: 22px; top: 13px; position: relative;} .tl.navbar{z-index: 1050;} .control-sidebar form {background-color:transparent !important;} .control-sidebar{position:absolute;padding-top:120px;z-index:1010}@media (max-width: 768px){.control-sidebar{padding-top:130px}}";
var overwritecss = ".container { width : 100% !important;}";
function initApplication() {
$('.paglink, .sortable, .category').click(function(e){
(function(open) {
XMLHttpRequest.prototype.open = function() {
this.addEventListener("readystatechange", function() {
//console.log(this.readyState);
if(this.readyState == 0){
document.location.reload();
}
}, false);
open.apply(this, arguments);
};
})(XMLHttpRequest.prototype.open);
});
$(".navbar-menu").append ('<li class="waves-effect waves-ripple"><a class="top-menu" title="TorrentLeech V5 Enhancer" href="#" id="control-sidebar" data-toggle="control-sidebar"><i style="font-size:20px; margin-top: -6px; color: rgb(255, 216, 0); vertical-align: middle; margin-right: 1px; margin-left: 1px;" class="fa fa-gears"></i><span style="font-size: 13px; margin-right: 3px;"></span></a></li>');
$("body").append ('<aside class="control-sidebar control-sidebar-dark"> <div class="tab-content"> <div class="tab-pane" id="control-sidebar-settings-tab" style="position: relative; overflow-y: auto; overflow-x: hidden; padding-right: 10px; display: block; box-sizing: border-box;"> <form method="post"> <h3 class="control-sidebar-heading">TL Enhancer Settings</h3> <div class="form-group2"> <label class="control-sidebar-subheading"> Bold Titles <input type=\'checkbox\' data-boldtitles=\'toggle\' class=\'pull-right\' > </label> <p> The default TL stylesheet. Bold titles for torrent names. </p> </div> <div class="form-group2"> <label class="control-sidebar-subheading"> Bold Seeders <input type=\'checkbox\' data-boldseeders=\'toggle\' class=\'pull-right\' > </label> <p> The default TL stylesheet. Bold seeder values. </p> </div> <div class="form-group2"> <label class="control-sidebar-subheading"> Add Colour to Torrent Titles <input type=\'checkbox\' data-coloredtitles=\'toggle\' class=\'pull-right\' > </label> <p> The darker the colour, the more seeders available. </p> </div> <div class="form-group2"> <label class="control-sidebar-subheading"> Add Colour to Seeders Column <input type=\'checkbox\' data-coloredseeders=\'toggle\' class=\'pull-right\' > </label> <p> The darker the colour, the more seeders available. </p> </div> <div class="form-group2"> <label class="control-sidebar-subheading"> Expand container <input type=\'checkbox\' data-tightbox=\'toggle\' class=\'pull-right\'> </label> <p> Expand containter width to 100% (needs page refresh) </p> </div> <div class="form-group2"> <label class="control-sidebar-subheading"> Show details <input type=\'checkbox\' data-imdbdetails=\'toggle\' class=\'pull-right\'> </label> <p> Show/Hide imdb details.</p> </div> <div class="form-group2"><label class="control-sidebar-subheading"> Show Enhancer buttons <input type=\'checkbox\' data-extrabuttons=\'toggle\' class=\'pull-right\'> </label> <p> Show/Hide Enhancer buttons. </p> </div> <div class="form-group2"><label class="control-sidebar-subheading"> Squeezer <input type=\'checkbox\' data-squezzer=\'toggle\' class=\'pull-right\'> </label> <p> Squeeze movies/tvshows into groups. (needs page refresh)</p> </div> <div class="form-group2"><label class="control-sidebar-subheading"> Show XXX button <input type=\'checkbox\' data-showxxx=\'toggle\' class=\'pull-right\' > </label> <p> Show/Hide XXX button. </p> </div> <div class="form-group2"><label class="control-sidebar-subheading"> Show Thumbnails<input type=\'checkbox\' data-covers=\'toggle\' class=\'pull-right\' > </label> <p> Get Thumbnail on title hover (needs page refresh) </p> </div> <div class="form-group2"><label class="control-sidebar-subheading"> Word highlight <input type=\'text\' id="highlighter" value="" style="width:205px" placeholder="ex: Dead,Big Bang"> </label> <p> Highlight words separated by comma. (needs page refresh) </p> </div><h3 class="control-sidebar-heading"></h3> <div class="form-group2"> <label class="control-sidebar-subheading"> Restore default TL settings <a href="javascript:void(0)" id="data-reset-cookies" class="text-red pull-right"><i class="fa fa-trash-o"></i></a> </label> </div> </form> </div> </div> </aside> <div class="control-sidebar-bg"></div>');
$(".tab-content > .tab-pane" ).show();
$('div[class = "name"]').each(function(i){
var cache_this = this;
$raw_text = $(this).closest('td').prev().find('a').attr('data-ccid');
var category_type = $raw_text;
//console.log(category_type);
var imdbscore = $(this).find('span:#imdbOnBrowse').html();
if(category_type == 'movies' || category_type == 'tv'){
//console.log(imdbscore);
if (imdbscore !== null && (imdbscore.indexOf('.')!=-1) ) {
var remakeImdb = imdbscore.replace(" ", ""); //remove that extra space
var score = remakeImdb.split(" ");
var str1 = score[0];
if (str1.indexOf(".")!=-1) {
$(cache_this).find('div.name').append(' <span style="color:yellow">('+str1+')</span>');
$(cache_this).find('span:#imdbOnBrowse').html(function(index,html){
return html.replace(' '+str1+' ','');
});
} else {
$(cache_this).find('div.name').append(' <span style="color:red">(N/A)</span>');
}
}
$(this).append($('<div>').addClass('enhanceWrapper')
.css({float:'right', margin: '14px 5px 0 0'})
.data('category', category_type));
}
//Hide row button
$(this).append('<span title="Hide torrent" class=\'myhide\' style=\'cursor: pointer; margin-left: 10px; font-size: 14px;\'><i class="fa fa-eye-slash" aria-hidden="true"> </i></span>');
});
$.each(buttons_collection,function(index, value) {
$('.enhanceWrapper').append($('<img />')
.addClass('enhance-buttons_collection')
.attr({src: value.src,
alt: value.rollover,
title: value.type})
.css({margin: "0 8px 0 0",
cursor: 'pointer',
float: 'left'})
.data('name',value.type));
});
$('img[class="enhance-buttons_collection"]').load(function(){
$name = $(this).closest('td').find('a').text();
var cat_type = $(this).parent().data('category');
switch($(this).data('name')){
case 'traktv':
if(cat_type == 'games'){
$(this).remove();
}
break;
case 'trailer':
if(cat_type == 'tv'){
$(this).remove();
}
break;
case 'info':
if(cat_type == 'movies'){
$(this).remove();
}
break;
}
});
$('img[class="enhance-buttons_collection"]').hover(function(){
$src = $(this).attr('src');
$alt = $(this).attr('alt');
$(this).attr('src', $alt);
$(this).attr('alt', $src);
},
function(){
$src = $(this).attr('src');
$alt = $(this).attr('alt');
$(this).stop(false,true).attr('src', $alt);
$(this).stop(false,true).attr('alt', $src);
});
$('img[class="enhance-buttons_collection"]').click(function(){
//$(this).stop(true,true).effect("bounce", { times:3 }, 300);
//diable the add to bookmark feature if clicking the enhance buttons
$(this).parents('tbody tr').addClass('row_selected');
//$raw_text = $(this).closest('td').prev().find('a').attr('href');
$name = $(this).closest('td').find('a').text();
//var cat_type = $(this).parent().data('category');
var cat_type = $(this).closest('tr').children('td:first').find('a').attr('data-ccid');
//console.log(cat_type);
switch($(this).data('name')){
case 'copy':
window.prompt ("Copy to clipboard: Ctrl+C, Enter", $name);
break;
case 'info':
if(cat_type == 'movies'){
openImdb($name, cat_type);
}
else if(cat_type == 'tv')
openTv($name, cat_type);
else if(cat_type == 'games')
openGameReview($name, cat_type);
break;
case 'traktv':
if(cat_type != 'games'){
opentraktTV($name, cat_type);
}else{
$(this).remove();
}
break;
case 'trailer':
if(cat_type == 'games')
openGamePlay($name, cat_type);
else if(cat_type == 'movies')
openTrailer($name, cat_type);
break;
case 'episodes':
if(cat_type == 'tv')
openEpisodes($name, cat_type);
break;
}
});
//Hide row
$('body').append('<span class="view_list" style="float:right; cursor: pointer; margin-right: 10px; font-size: 14px; border: 1px solid #333; padding: 5px 8px; border-radius: 4px;">View Hidden Films </span>');
$('.view_list').click(function(){
$('body').append('<div id="hidden_list_bg" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4);"></div><div id="hidden_list_wrapper" style="position: fixed; width: 450px; height: 600px; padding: 10px; top: 50%; left: 50%; margin-top: -300px; margin-left: -200px; background: #FFF; border-radius: 4px;"></div>');
$('#hidden_list_wrapper').append('<div id="close_hidden_list" style="color: #000; font-weight: 700; font-size: 22px; display: inline-block; position: absolute; top: 6px; right: 9px; cursor:pointer;">×</div>');
$('#hidden_list_wrapper').append('<div id="clear_list" style="position: absolute; left: 8px; top: 8px; font-size: 12px; color: #666; border: 1px solid #666; padding: 5px 8px; border-radius: 4px; cursor: pointer;">Clear All Hidden Films</div>');
$('#hidden_list_wrapper').append('<div id="hidden_list" style="height: 550px; margin-top: 35px; overflow-y: scroll;"></div>');
$('#hidden_list').append('<table id="hidden_list_table" style="width: 100%"></table>');
stored_films.forEach(function(item) {
$('#hidden_list_table').append('<tr><td style="color: #666; font-size: 14px;">'+item.title+'</td><td style="text-align: right;"><div class="remove_hidden_film" data-id="'+item.id+'" style="color: red; font-weight: 700; font-size: 18px; cursor: pointer">×</div></td></tr>');
});
});
$('body').on('click', '#close_hidden_list', function(){
$('#hidden_list_wrapper, #hidden_list_bg').remove();
if(any_hidden_film_removed) {
location.reload();
}
});
$('body').on('click', '.remove_hidden_film', function(){
var id = +$(this).attr('data-id');
//console.log('removing',id);
stored_films.map(function(o) { return o.id; });
stored_films.splice(stored_films.map(function(o) { return o.id; }).indexOf(id),1);
$(this).closest('tr').remove();
store('HiddenFilms', JSON.stringify(stored_films));
any_hidden_film_removed = true;
});
$('body').on('click', '#clear_list', function(){
store('HiddenFilms', JSON.stringify([]));
location.reload();
});
$('.myhide').click(function () {
var fulltitle = $(this).closest('td').find('a').text();
var cat_type = $(this).closest('tr').children('td:first').find('a').attr('data-ccid');
var title = cleanName2(fulltitle, cat_type);
var $infolink = $(this).closest('td').find('a');
var hide_this = {
id: +new Date,
title: title,
link: $infolink.attr('href')
}
if (hide_this !== undefined) {
var found = jQuery.inArray(hide_this, stored_films);
if (found < 0) {
stored_films.push(hide_this);
}
localStorage.setItem("HiddenFilms", JSON.stringify(stored_films));
hide_film(hide_this);
}
});
/////
$('.results').append('<div class="text-center"><a href="#" id="download-all">Download All</a></div>');
$('#download-all').on('click', function (event) {
event.preventDefault();
$('.download').multiDownload({delay: 500});
});
// This is the equivalent of @run-at document-end
var titleSettings = get('boldtitles');
var seederSettings = get('boldseeders');
//console.log(seederSettings);
var colorTitSettings = get('colortitles');
var colorSeedSettings = get('colorseeders');
var tighterSettings = get('tighterbox');
var imdbdetails = get('imdbdetails');
var extrabuttons = get('extrabuttons');
var showxxxbutton = get('showxxx');
var dosqueezer = get('squezzer');
var highlightwords = get('highlight');
var previewcovers = get('covers');
if (dosqueezer !== null && dosqueezer === "1") {
squeezeTorrents();
$("[data-squezzer='toggle']").prop('checked', true);
}else{
$("[data-squezzer='toggle']").prop('checked', false);
}
//torrent titles
if (titleSettings === "normal") {
$("[data-boldtitles='toggle']").prop('checked', false);
}else{
$("[data-boldtitles='toggle']").prop('checked', true);
}
if (titleSettings !== null)
$('.table-responsive .name').css("font-weight", titleSettings);
//torrent seeders
if (seederSettings === "normal") {
$("[data-boldseeders='toggle']").prop('checked', false);
}else{
$("[data-boldseeders='toggle']").prop('checked', true);
}
if (seederSettings !== null)
$('.table-responsive .seeders').css("font-weight", seederSettings);
//color
if (colorTitSettings !== null && colorTitSettings === "1") {
addColour('title');
$("[data-coloredtitles='toggle']").prop('checked', true);
}else{
$("[data-coloredtitles='toggle']").prop('checked', false);
}
if (colorSeedSettings !== null && colorSeedSettings === "1") {
addColour();
$("[data-coloredseeders='toggle']").prop('checked', true);
}else{
$("[data-coloredseeders='toggle']").prop('checked', false);
}
//details
if (imdbdetails !== null && imdbdetails === "0") {
$('.table-responsive span[class="filter"]').hide();
$('.table-responsive i[class="fa fa-tag"]').prev().hide();
$('.table-responsive i[class="fa fa-tag"]').hide();
$("[data-imdbdetails='toggle']").prop('checked', false);
}else{
$("[data-imdbdetails='toggle']").prop('checked', true);
}
//enhancer buttons
if (extrabuttons !== null && extrabuttons === "0") {
$('div[class="enhanceWrapper"]').hide();
$("[data-extrabuttons='toggle']").prop('checked', false);
}else{
$("[data-extrabuttons='toggle']").prop('checked', true);
}
//container
if (tighterSettings !== null && tighterSettings === "small") {
addStyle(overwritecss);
$("[data-tightbox='toggle']").prop('checked', true);
}else{
$("[data-tightbox='toggle']").prop('checked', false);
}
//xxx
if (showxxxbutton !== null && showxxxbutton === "0") {
//$('div[class="categories"]').find(('a.xxx')).hide();
$('.xxx').hide();
$("[data-showxxx='toggle']").prop('checked', false);
}else{
$('.xxx').show();
$("[data-showxxx='toggle']").prop('checked', true);
}
if (highlightwords !== null && highlightwords != "") {
$('#highlighter').val(highlightwords);
var array = highlightwords.split(",");
$('.torrents').highlight(array, { element: 'span', className: 'highlight' });
}
if (previewcovers !==null && previewcovers === "1"){
showThumbs();
$("[data-covers='toggle']").prop('checked', true);
}else{
$("[data-showxxx='toggle']").prop('checked', false);
}
hide_films(stored_films);
//done modifying document, now show it
document.documentElement.style.visibility="visible";
//initi slider settings
setupAdminLTE();
$.AdminLTE.controlSidebar.activate();
}
loadDone = false;
var waitForPageLoad = function() {
var $pageloaded = $('.pace-progress').attr('data-progress');
if($pageloaded >= 99){
loadDone = true;
}
if (loadDone) {
initApplication();
loadDone = false;
} else {
//console.log($pageloaded);
setTimeout(waitForPageLoad, 500);
}
};
window.addEventListener("DOMContentLoaded", waitForPageLoad, false);
(function applyCSS() {
var h = document.getElementsByTagName("html");
if (h && h[0]) {
addStyle(css);
} else {
setTimeout(applyCSS, 50);
}
})();
/*
* jQuery Highlight plugin
*
* Based on highlight v3 by Johann Burkard
* http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
*
* Code a little bit refactored and cleaned (in my humble opinion).
* Most important changes:
* - has an option to highlight only entire words (wordsOnly - false by default),
* - has an option to be case sensitive (caseSensitive - false by default)
* - highlight element tag and class names can be specified in options
*
* Usage:
* // wrap every occurrance of text 'lorem' in content
* // with <span class='highlight'> (default options)
* $('.torrents').highlight('lorem');
*
* // search for and highlight more terms at once
* // so you can save some time on traversing DOM
* $('.torrents').highlight(['lorem', 'ipsum']);
* $('#content').highlight('lorem ipsum');
*
* // search only for entire word 'lorem'
* $('#content').highlight('lorem', { wordsOnly: true });
*
* // don't ignore case during search of term 'lorem'
* $('#content').highlight('lorem', { caseSensitive: true });
*
* // wrap every occurrance of term 'ipsum' in content
* // with <em class='important'>
* $('#content').highlight('ipsum', { element: 'em', className: 'important' });
*
* // remove default highlight
* $('#content').unhighlight();
*
* // remove custom highlight
* $('#content').unhighlight({ element: 'em', className: 'important' });
*
*
* Copyright (c) 2009 Bartek Szopka
*
* Licensed under MIT license.
*
*/
jQuery.extend({
highlight: function (node, re, nodeName, className) {
if (node.nodeType === 3) {
var match = node.data.match(re);
if (match) {
var highlight = document.createElement(nodeName || 'span');
highlight.className = className || 'highlight';
var wordNode = node.splitText(match.index);
wordNode.splitText(match[0].length);
var wordClone = wordNode.cloneNode(true);
highlight.appendChild(wordClone);
wordNode.parentNode.replaceChild(highlight, wordNode);
return 1; //skip added node in parent
}
} else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
for (var i = 0; i < node.childNodes.length; i++) {
i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
}
}
return 0;
}
});
jQuery.fn.unhighlight = function (options) {
var settings = { className: 'highlight', element: 'span' };
jQuery.extend(settings, options);
return this.find(settings.element + "." + settings.className).each(function () {
var parent = this.parentNode;
parent.replaceChild(this.firstChild, this);
parent.normalize();
}).end();
};
jQuery.fn.highlight = function (words, options) {
var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false };
jQuery.extend(settings, options);
if (words.constructor === String) {
words = [words];
}
words = jQuery.grep(words, function(word, i){
return word != '';
});
words = jQuery.map(words, function(word, i) {
return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
});
if (words.length == 0) { return this; };
var flag = settings.caseSensitive ? "" : "i";
var pattern = "(" + words.join("|") + ")";
if (settings.wordsOnly) {
pattern = "\\b" + pattern + "\\b";
}
var re = new RegExp(pattern, flag);
return this.each(function () {
jQuery.highlight(this, re, settings.element, settings.className);
});
};