// ==UserScript==
// @name Torrent9++
// @namespace https://greasyfork.org/fr/users/11667-aymeric-maitre
// @description Make Torrent9 Better
// @include http*://*torrents9.*/*
// @include http*://*torrent9.*/*
// @include http*://*lemonlemag.*/*
// @include http*://*guitare-luthier.*/*
// @include http*://*agence-webside.*/*
// @include http*://*.t9.*/*
// @include http*://t9.*/*
// @version 9.0.0
// @grant none
// @icon data:image/x-icon;base64,AAABAAIAEBAAAAAAIABoBAAAJgAAACAgAAAAACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAAAAAAAAAAnHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+oi0n/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//b0Ln///////v59//Mu5f/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/pIZB/5x6J/+skVP/7efc/9bJrP+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/6+VWP/8+/r/o4Q6/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//Nvpv//Pv6///////s5tz//f38/7afaf+ceif/nHon/5x6J/+ceif/qo5K/8Kuf/++qHf/nHon/5x6J/+0nGT//Pv6/7ega/+ceif/sJZa//j28//Crn//nHon/5x6J/+ceif/nHon/8Kuf///////9PHr/5x6J/+ceif/ybeL/+zn3f+ceif/nHon/5x6J//49vP/uaNu/5x6J/+ceif/nHon/5x6J//Crn////////Tx6/+ceif/nHon/7ukcf/49vL/oYE2/5x6J/+6pHH/+/n3/6SGPv+ceif/nHon/5x6J/+ceif/wq5////////08ev/nHon/5x6J/+dfC3/4NbA//Pw6v/g18T/+/n4/8aziv+ceif/nHon/5x6J/+ceif/nHon/8Kuf///////9PHr/5x6J/+ceif/nHon/5x6J/+2nmj/v6p6/6yRU/+ceif/nHon/5x6J/+ceif/nHon/5x6J//Crn////////Tx6/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/wq5////////08ev/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//08ev/////////////////////////////////wq5//5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/39bE/+jh1f/o4dX/6OHV/+jh1f/o4dX/6OHV/7mibf+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8oAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAnHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+4onT/sZhl/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+4onT//////////////////////+/q4v++qoP/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/7iidP/////////////////////////////////XzLb/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/qo9T/7GYZf+ceif/nHon/6qPU//RxKv////////////v6uL/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+4onT////////////RxKv/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//d1ML///////Tx7P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/6qPU////////////7iidP+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/xbOR//Tx7P/////////////////v6uL/xbOR//r49v//////0cSr/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/9fMtv/////////////////////////////////////////////////RxKv/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/++qoP////////////v6uL/sZhl/5x6J/+ceif/sZhl/9fMtv/6+Pb//////+nj2P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/18y2/+nj2P/p49j/6ePY/9fMtv+ceif/nHon/5x6J/+ceif/nHon/93Uwv//////9PHs/6OFP/+ceif/nHon/5x6J/+ceif/nHon/+nj2P//////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//p49j/////////////////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/7+ri///////j283/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY///////d1ML/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/+nj2P/////////////////p49j/nHon/5x6J/+ceif/nHon/5x6J////////////9HEq/+ceif/nHon/5x6J/+ceif/nHon/5x6J//6+Pb//////9HEq/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY/////////////////+nj2P+ceif/nHon/5x6J/+ceif/nHon/+nj2P//////49vN/5x6J/+ceif/nHon/5x6J/+ceif/uKJ0////////////vqqD/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//p49j/////////////////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/y7ye////////////sZhl/5x6J/+ceif/nHon/6OFP//08ez//////+/q4v+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/+nj2P/////////////////p49j/nHon/5x6J/+ceif/nHon/5x6J/+jhT//7+ri///////6+Pb/18y2/7iidP/LvJ7/9PHs////////////uKJ0/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY/////////////////+nj2P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+jhT//7+ri////////////////////////////+vj2/8Wzkf+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//p49j/////////////////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/xbOR/93Uwv/p49j/3dTC/9HEq/+qj1P/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/+nj2P/////////////////p49j/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY/////////////////+nj2P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//p49j/////////////////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/+nj2P/////////////////p49j/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY/////////////////+nj2P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/6ePY///////////////////////////////////////////////////////////////////////p49j/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J//p49j//////////////////////////////////////////////////////////////////////+nj2P+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/+nj2P//////////////////////////////////////////////////////////////////////6ePY/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/xbOR/9HEq//RxKv/0cSr/9HEq//RxKv/0cSr/9HEq//RxKv/0cSr/9HEq//RxKv/0cSr/9HEq//Fs5H/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/5x6J/+ceif/nHon/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js
// ==/UserScript==
(async function () {
if (
location.host.search(/torrents?9\./) < 0
&& location.host.search(/t9\.pe/) < 0
&& location.host.search(/lemonlemag\.fr/) < 0
&& location.host.search(/agence-webside\.fr/) < 0
&& location.host.search(/guitare-luthier\.fr/) < 0
) {
return;
}
if(typeof jQuery === "undefined") {
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
await new Promise(resolve => {
let inter = setInterval(_ => {
if (typeof jQuery !== "undefined") {
clearInterval(inter)
resolve()
}
}, 500)
})
}
var script = document.createElement('script');
script.src = '/themes/default/js/bootstrap.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);
await new Promise(resolve => setTimeout(resolve , 2000))
function refresh_modal_body(bool) {
if (debug) console.log('Torrent9++: refresh_modal_body');
if (bool === undefined)
modal_save_change = 1;
var modal = '';
modal += '<table class="table">';
modal += '<thead>';
modal += '<tr>';
modal += '<th>Words</th>';
modal += '<th>Color</th>';
modal += '<th></th>';
modal += '</tr>';
modal += '</thead>';
modal += '<tbody>';
for (var i = 0; i < colors_data.length; i++) {
var color = colors_data[i];
modal += '<tr>';
modal += '<td><u>' + ((color.word != "__AD_OTHERWORD__") ? ((color.word != "__AD_ALREADYDOWNLOADED__") ? color.word : 'Already downladed') : 'No match (white to disable)') + '</u></td>';
modal += '<td><input type="color" data-id="'+i+'" value="' + color.color + '"></td>';
if (color.word != "__AD_OTHERWORD__" && color.word != "__AD_ALREADYDOWNLOADED__")
modal += '<td><button type="button" data-id="'+i+'" class="AD_remove_color btn btn-danger">Remove</button></td>';
else if (color.word === "__AD_ALREADYDOWNLOADED__")
modal += '<td><button type="button" id="AD_EMPTY_LIST" class="btn btn-danger">Empty saved list</button></td>';
modal += '</tr>';
}
modal += '<tr>';
modal += '<td><input id="AD_new_color_word" type="text"></td>';
modal += '<td><input id="AD_new_color_color" data-id="new" value="#F89585" type="color"></td>';
modal += '<td><button type="button" class="AD_add_color btn btn-success">Add</button></td>';
modal += '</tr>';
modal += '</tbody>';
modal += '</table>';
modal += '<table class="table">';
modal += '<thead>';
modal += '<tr>';
modal += '<th>Option</th>';
modal += '<th>Status</th>';
modal += '</tr>';
modal += '</thead>';
modal += '<tbody>';
modal += '<tr>';
modal += '<td>Color mode</td>';
modal += '<td><input id="AD_check_enable_color_mode" type="checkbox" value="1" '+((option.enable_color_mode) ? 'checked' : '')+'></td>';
modal += '</tr>';
modal += '<tr>';
modal += '<td>Show images</td>';
modal += '<td><input id="AD_check_enable_pics" type="checkbox" value="1" '+((option.enable_pics) ? 'checked' : '')+'></td>';
modal += '</tr>';
modal += '<tr>';
modal += '<td>Direct download</td>';
if (enableQuery === false) {
modal += '<td style="width: 220px !important;">not compatible with your version</td>';
} else {
modal += '<td><input id="AD_check_enable_direct_download" type="checkbox" value="1" '+((option.enable_direct_download) ? 'checked' : '')+'></td>';
}
modal += '</tr>';
modal += '<tr>';
modal += '<td>Show [SAISON] link</td>';
modal += '<td><input id="AD_check_enable_show_season" type="checkbox" value="1" '+((option.enable_show_season) ? 'checked' : '')+'></td>';
modal += '</tr>';
modal += '<tr>';
modal += '<td>Short name (length: 54)</td>';
modal += '<td><input id="AD_check_enable_short_name" type="checkbox" value="1" '+((option.enable_short_name) ? 'checked' : '')+'></td>';
modal += '</tr>';
modal += '<tr>';
modal += '<td>Preview width (in pixel)</td>';
modal += '<td><input id="AD_change_preview_size" type="number" value="'+((option.preview_size) ? option.preview_size : 150)+'"></td>';
modal += '</tr>';
modal += '<tr>';
modal += '<td>Show description on mouse over</td>';
if (enableQuery === false) {
modal += '<td style="width: 220px !important;">not compatible with your version</td>';
} else {
modal += '<td><input id="AD_check_enable_description" type="checkbox" value="1" '+((option.enable_description) ? 'checked' : '')+'></td>';
}
modal += '</tr>';
modal += '</tbody>';
modal += '</table>';
$('body').find('div#myADColorModal').find('.modal-body').html(modal);
}
function gen_modal() {
if (debug) console.log('Torrent9++: gen_modal');
var modal = '<div class="modal fade" id="myADColorModal" role="dialog">';
modal += '<div class="modal-dialog">';
modal += '<div class="modal-content">';
modal += '<div class="modal-header">';
modal += '<button type="button" class="close" data-dismiss="modal">×</button>';
modal += '<h4 class="modal-title">Torrent9++ parameters</h4>';
modal += '</div>';
modal += '<div class="modal-body">';
modal += '</div>';
modal += '<div class="modal-footer">';
modal += '<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>';
modal += '</div>';
modal += '</div></div></div>';
$("body").prepend(modal);
refresh_modal_body(1);
}
function getTorrentName(url) {
if (debug) console.log('Torrent9++: getTorrentName');
var name = url.replace(base_link, "");
var index = name.indexOf("-proper-");
if (index != -1) {
name = name.substring(0, index);
} else if ((index = name.indexOf("-truefrench-")) != -1) {
name = name.substring(0, index);
} else if ((index = name.indexOf("-french-")) != -1) {
name = name.substring(0, index);
} else if ((index = name.indexOf("-vostfr-")) != -1) {
name = name.substring(0, index);
}
return name;
}
function set_param() {
if (debug) console.log('Torrent9++: set_param');
colorblue = 'rgb(133, 183, 248)';
index = 0;
modal_save_change = 0;
allTorrentLink = [];
base_link = '/get_torrent/';
base_img = '/_pictures/';
added_style = "";
img_link = "";
lien = "";
colors_data = JSON.parse(localStorage.getItem("AD_colors_data"));
option = JSON.parse(localStorage.getItem("AD_OPTION"));
alreadyDownloaded = JSON.parse(localStorage.getItem("AD_ALREADY_DOWNLOADED") || "[]");
if (option === null)
{
option = {
enable_pics: true,
enable_direct_download: true,
enable_color_mode: true,
enable_short_name: true,
enable_description: true,
preview_size: 100,
enable_show_season: true
};
localStorage.setItem("AD_OPTION", JSON.stringify(option));
}
if (option.enable_show_season === undefined)
option.enable_show_season = true;
if (option.preview_size === undefined)
option.preview_size = 150;
if (option.enable_short_name === undefined)
option.enable_short_name = true;
if (option.enable_description === undefined)
option.enable_description = true;
if (colors_data === null)
{
colors_data = [
{word: "__AD_OTHERWORD__", color: "#FFFFFF"}, // #4AE77E
{word: "__AD_ALREADYDOWNLOADED__", color: "#f4b942"},
{word: "DVDSCR", color: "#F89585"},
{word: "VOSTFR", color: "#F89585"},
{word: " VO ", color: "#F89585"},
{word: " TS ", color: "#F89585"}
];
localStorage.setItem("AD_colors_data", JSON.stringify(colors_data));
}
if (enableQuery === false) {
option.enable_direct_download = false;
option.enable_description = false;
}
}
function main() {
if (debug) console.log('Torrent9++: main');
set_param();
if (option.enable_pics) {
$("<style type='text/css'>.table-bordered.cust-table > tbody > tr > td:nth-child(3) {color: #000;}.table-bordered.cust-table > tbody > tr > td:nth-child(4) {color: #008f0d;}.table-bordered.cust-table > tbody > tr > td:nth-child(5) {color: #b94309;}.table-bordered.cust-table > tbody > tr > td:nth-child(2) { text-align: left;}</style>").appendTo("head");
}
if ($("thead").length === 0) {
$('tbody').each(function (){
var thead = '<thead><tr>';
if(option.enable_pics)
thead +='<th class="col-md-1">Image</th>';
thead +='<th class="">Nom du torrent</th>';
thead +='<th style="width:90px">Taille</th>';
thead +='<th style="width:100px">Seed</th>';
thead +='<th style="width:100px">Leech</th>';
if(option.enable_direct_download)
thead +='<th class="col-md-1" style="white-space: nowrap;"><a href="#" id="AD_download_all_link" style="/*! font-size: 12px; */">Download All</a></th>';
thead +='</tr></thead>';
$(this).parent().prepend(thead);
});
}
else
{
$('thead > tr').each(function (){
var trow = $(this);
if(option.enable_direct_download)
trow.append('<th class="col-md-1" style="white-space: nowrap;"><a href="#" id="AD_download_all_link" style="/*! font-size: 12px; */">Download All</a></th>');
if(option.enable_pics)
trow.prepend('<th class="col-md-1">Image</th>');
});
}
$('tbody > tr').each(function (){
var trow = $(this);
var Current_Link = trow.find('td').first().find('a');
trow.find('td').each(function (){
$(this).css('white-space', 'nowrap');
if(option.enable_pics)
$(this).css('height', option.preview_size/2.5*3+'px').css('line-height', option.preview_size/2.5*3+'px');
});
if (Current_Link.length > 0) {
if (option.enable_color_mode)
{
var edited = 0;
for (var i = 0; i < colors_data.length; i++)
{
if (colors_data[i].word == "__AD_OTHERWORD__")
colorother = colors_data[i].color;
else if (colors_data[i].word == "__AD_ALREADYDOWNLOADED__")
colorAlreadyDownloaded = colors_data[i].color;
else
{
var keyword = Current_Link.text().search(colors_data[i].word);
if (keyword != - 1)
{
trow.css('background-color', colors_data[i].color);
edited = 1;
}
}
}
if (!colorAlreadyDownloaded) {
colors_data.push({word: "__AD_ALREADYDOWNLOADED__", color: "#f4b942"});
colorAlreadyDownloaded = "#f4b942";
}
if (alreadyDownloaded.indexOf(getTorrentName(Current_Link.attr('href').split("/").slice(3).join("/"))) != -1) {
trow.css('background-color', colorAlreadyDownloaded);
edited = 1;
}
if (edited === 0 && colorother != "#FFFFFF" && colorother != "#ffffff" && colorother != "rgb(255, 255, 255)")
trow.css('background-color', colorother);
}
if (option.enable_show_season) {
var serie_data = Current_Link.text().match(/(.+)\sS(\d{2})E\d{2}.*(FRENCH|VOSTFR)/);
if (serie_data !== null && serie_data.length == 4) {
var quality = "";
if (Current_Link.text().indexOf("720p") >= 0){
quality = "-720p";
} else if (Current_Link.text().indexOf("1080p") >= 0){
quality = "-1080p";
}
var tmp_link = '/search_torrent/series-'+serie_data[3]+'/'+serie_data[1].replace(/[\W_]+/g,"-").trim()+'-s'+serie_data[2]+quality+'.html';
tmp_link = tmp_link.replace(/series-FRENCH/, 'series-francaise').toLowerCase().replace(/ /g, '-');
trow.find('td').first().append(' <a href="' + BASE_URL+tmp_link + '">[S'+serie_data[2]+']</a>');
}
}
var lien_split = Current_Link.attr('href').split("/");
var LINK_title = lien_split[lien_split.length - 1];
var LINK_id = lien_split[lien_split.length - 2];
img_link = base_img + LINK_title + ".jpg";
var $tmpIng;
if(option.enable_pics)
{
trow.prepend(
$('<tr>').append(
$('<a>')
.attr('href', Current_Link.attr('href'))
.attr('target','_blank')
.append(
$tmpIng = $('<img>')
.attr('title','Download')
.attr('src', BASE_URL +img_link)
.attr('style','width: '+option.preview_size+'px;')
)
)
);
added_style = "height: 50px; line-height: 50px; ";
}
if (option.enable_direct_download || option.enable_description) {
$.get(Current_Link.attr('href'), function(data) {
var html = $.parseHTML( data );
if(option.enable_direct_download) {
var liens = $('a.btn.btn-danger.download', html);
liens.each(function( index ) {
lien = $( this ).attr("href");
if (lien.indexOf("/register/") < 0 && (lien.indexOf(location.host) >= 0 || (lien.indexOf("http://") < 0 && lien.indexOf("https://") < 0))){
return false;
}
lien = undefined;
});
/*
if (lien.indexOf("/register/") >= 0){
var links = $('.movie-detail a', html);
for(i = 2; i < links.length; i++){
lien = $(links[i]).attr('href');
if (lien.indexOf("/register/") < 0){
break;
}
lien = undefined;
}
}
*/
if (lien) {
allTorrentLink.push({ download : lien, url: Current_Link.attr('href') });
trow.append('<td style="white-space: nowrap;'+ added_style +'"><a id="AD_download_link" title="Download" href="'+BASE_URL+lien+'" target="_blank" style="color:#000; font-size:12px; font-weight:bold;">Download</a></td>');
}
}
if(option.enable_description) {
$('div.movie-information ul', html).remove();
var description = $("div.movie-information", html).text().trim();
if(!description){
console.error("Torrent9++: Fail load description for", Current_Link.attr('href'));
$('html').html(data)
trow.attr('title', "Description non trouvé");
} else {
trow.attr('title', description);
}
}
if(option.enable_pics) {
$tmpIng.attr('src', $('div.movie-img img', html).attr('src'));
}
}).fail(function (r){console.error('Torrent9++: request error');});
}
if (option.enable_short_name && Current_Link.text().length > 51) {
Current_Link.text(
Current_Link.text()
.replace('FRENCH','')
.replace('VOSTFR','')
.replace('DVDRIP','')
.replace('BluRay','')
.slice(0,54) + "..."
);
}
} else {
console.error('Torrent9++: No current link');
}
index++;
});
$('tr').mouseover(function () {
if ($(this).parent().first()[0].localName != "thead") {
colorstat = $(this).css('background-color');
$(this).css('background-color', colorblue);
}
});
$('tr').mouseout(function () {
if ($(this).parent().first()[0].localName != "thead") {
if (colorstat != "rgb(194, 226, 231)")
$(this).css('background-color', colorstat);
else
$(this).css('background-color', '');
}
});
$("body").on("click", "div.movie-detail div.row div.col-sm-6 div.download-btn a",function (event) {
var name = getTorrentName(location.href.split("/")[5]);
if (alreadyDownloaded.indexOf(name) == -1) {
alreadyDownloaded.push(name);
localStorage.setItem("AD_ALREADY_DOWNLOADED", JSON.stringify(alreadyDownloaded));
}
});
$("body").on('click', '#AD_download_link', function(event) {
$(this).parent().parent().css('background-color', colorAlreadyDownloaded);
colorstat = colorAlreadyDownloaded;
var name = getTorrentName($(this).parent().parent().find('td a').first().attr("href").split("/")[3]);
if (alreadyDownloaded.indexOf(name) == -1) {
alreadyDownloaded.push(name);
localStorage.setItem("AD_ALREADY_DOWNLOADED", JSON.stringify(alreadyDownloaded));
}
});
$("body").on('click', '#AD_download_all_link', function(event) {
event.preventDefault();
var myVar = setInterval(function(){ myTimer(); }, 1000);
var allTorrentLink_i = allTorrentLink.length - 1;
function myTimer() {
if (allTorrentLink_i < 0) {
clearInterval(myVar);
return;
}
open(window.location.origin+allTorrentLink[allTorrentLink_i].download, "_blank");
var name = getTorrentName(allTorrentLink[allTorrentLink_i].url.split("/")[3]);
if (alreadyDownloaded.indexOf(name) == -1) {
alreadyDownloaded.push(name);
localStorage.setItem("AD_ALREADY_DOWNLOADED", JSON.stringify(alreadyDownloaded));
}
allTorrentLink_i--;
}
});
$("body").on('change', '#AD_check_enable_pics', function(event) {
option.enable_pics = !option.enable_pics;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('change', '#AD_change_preview_size', function(event) {
option.preview_size = $(this).val();
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('click', '#AD_EMPTY_LIST', function(event) {
localStorage.setItem("AD_ALREADY_DOWNLOADED", "[]");
var names = "";
for(var k = 0; k < alreadyDownloaded.length; k++){
names += alreadyDownloaded[k].url.replace(/-/g, " ") + "\n";
}
alert("List emptied:\n"+names);
location.reload();
});
$("body").on('change', '#AD_check_enable_direct_download', function(event) {
option.enable_direct_download = !option.enable_direct_download;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('change', '#AD_check_enable_show_season', function(event) {
option.enable_show_season = !option.enable_show_season;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('change', '#AD_check_enable_short_name', function(event) {
option.enable_short_name = !option.enable_short_name;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('change', '#AD_check_enable_description', function(event) {
option.enable_description = !option.enable_description;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('change', '#AD_check_enable_color_mode', function(event) {
option.enable_color_mode = !option.enable_color_mode;
localStorage.setItem("AD_OPTION", JSON.stringify(option));
refresh_modal_body();
});
$("body").on('click', '.AD_remove_color', function(event) {
event.preventDefault();
if (confirm("Sur ?")) {
colors_data.splice($(this).data('id'), 1);
localStorage.setItem("AD_colors_data", JSON.stringify(colors_data));
refresh_modal_body();
}
});
$("body").on('click', '.AD_add_color', function(event) {
event.preventDefault();
var $tr = $(this).parent().parent();
var new_color = {
word: $tr.find('#AD_new_color_word').val(),
color: $tr.find('#AD_new_color_color').val()
};
if (new_color.word.trim() !== "" && new_color.color.trim() !== "") {
colors_data.push(new_color);
localStorage.setItem("AD_colors_data", JSON.stringify(colors_data));
refresh_modal_body();
}
});
$("body").on('change', 'input[type="color"]', function(event) {
if ($(this).data('id') != "new") {
if ($(this).val().trim() !== "") {
colors_data[$(this).data('id')].color = $(this).val();
localStorage.setItem("AD_colors_data", JSON.stringify(colors_data));
refresh_modal_body();
}
}
});
$("body").on('click', '*[data-dismiss="modal"]', function(event) {
if (modal_save_change)
location.reload();
});
gen_modal();
$("ul.nav.navbar-nav").append($('<li><a href="#">Torrent9++</a></li>').click(e => {
e.preventDefault();
$("#myADColorModal").modal('show')
}));
}
// declaration des variable
var BASE_URL;
var debug = true;
var colorblue;
var index;
var modal_save_change;
var colorstat;
var allTorrentLink;
var base_link;
var base_img;
var added_style;
var img_link;
var lien;
var colors_data ;
var option;
var alreadyDownloaded;
var colorother;
var colorAlreadyDownloaded;
// jquery
var $ = jQuery.noConflict(true);
if ($("div.header-top a.link_logo").length < 1 && $("div.header-top .logo").length < 1) {
return;
}
BASE_URL = location.origin.replace('ww1', 'www')+'/';
if (document.querySelector("div#myADColorModal"))
{
if (debug) console.log('Torrent9++:Already executed');
return 1;
}
if (debug) console.log('Torrent9++: Execution in progress...');
// test de compatibilite
var enableQuery = false;
var test_link= $('a[href*="/torrent/"]');
if ($('a[href*="/torrent/"]')) {
if (debug) console.log('Torrent9++: compatibility testing..');
$.get($('a[href*="/torrent/"]').first().attr('href'), function () {
enableQuery = true;
main();
}).fail(function (){
main();
});
} else {
main();
}
if (debug) console.log('Torrent9++: Loaded');
})();