torrent9

enhance torrent9 / t411

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name        torrent9
// @namespace   cpasbien
// @include     http://www.torrent9.*/*
// @include     https://www.torrent9.*/*
// @description enhance torrent9 / t411
// @version     1.5
// @grant       none
// ==/UserScript==

$('.gauche').hide();
$('.left-ad').hide();


$('html > head').append($([
    '<style>',
    ' .ligne0,.ligne1 {',
    '  width: 378px;',
    '  display: block;',
    '  float: left;',
    '}',
    '.titre {',
    '    width:240px;',
    '    background:transparent;',
    '    text-indent:0px;',
    '    padding:3px;',
    '    font-size:medium;',
    '}',
    '.dwnThumb {',
    '    float:left;',
    '    height:90px;',
    '}',
    '.dwnThumb img {',
    '    border:1px solid #9F9F9F;',
    '    -moz-border-radius:5px;',
    '    -webkit-border-radius:5px;',
    '    border-radius:5px;',
    '}',
    '.datas {',
    '    width:75px;',
    '    float:right;',
    '}',
    '.txtQuality {',
    '    color:orange;',
    '    font-size:10px;',
    '}',
    '.txtYear {',
    '    color:red;',
    '    font-size:10px;',
    '}',
    '.txtLanguage {',
    '    color:blue;',
    '    font-size:10px;',
    '}',
    '.txtSAEP {',
    '    color:brown;',
    '}',
    '.up,.down {',
    '    display:inline-block;',
    '}',
    '.downloaded .poid{',
    '    text-decoration:line-through;',
    '}',
    '.downloaded img{',
    '    border:1px solid #9F9F9F;',
    '    -webkit-clip-path: polygon(52% 50%, 78% 11%, 86% 19%, 51% 71%, 28% 30%, 39% 24%);',
    '    clip-path: polygon(52% 50%, 78% 11%, 86% 19%, 51% 71%, 28% 30%, 39% 24%);',
    '}',
    'a.downloaded:active img{',
    '    -webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);',
    '    clip-path: polygon(100% 0, 100% 100%, 0 100%, 0 0);',
    '}',
    'a.downloaded:hover img{',
    '    -webkit-clip-path: polygon(95% 5%, 95% 95%, 5% 95%, 5% 5%);',
    '    clip-path: polygon(95% 5%, 95% 95%, 5% 95%, 5% 5%);',
    '}',
	'.filterToggle{',
	'    padding:3px;',
	'}',
	'.filterOff{',
	'    text-decoration: line-through;',
	'    color:#999;',
	'}',
	'.filterOff:hover{',
	'    text-decoration: line-through;',
	'    color:#999;',
	'}',
 '</style>'].join("\n")+'</style>'));

var filters={};
var addTag = function (text,tag,keywords){
	if (!filters.hasOwnProperty(tag)){
		filters[tag]=[];
	}
    for(var k in keywords){
        text = text.replace(' '+keywords[k]+' ', function myFunction(x){
			var st = x.replace(/(^ | $)/g,'');
			if(filters[tag].indexOf(st) == -1){
				filters[tag].push(st);
			}
            return ' <span class="'+tag+'" data-filter-value="filter-'+tag+'-'+x.replace(/ /g,'')+'">'+x+'</span> ';
        });
    }
    return text;
};

$('.col-sm-4.cus-col.content-right-col').hide();

$('div.table-responsive > table.table tr').each(function(k,tr){
    var tds=$('td',tr);
    if(tds && tds.length>0){
        var atitles=$('a',tds[1]);
        var anfos=$('a',tds[2]);
        if(atitles && atitles.length>0){
            var m = anfos[0].href.match(/torrent\/(.*)/);
            $(anfos[0]).replaceWith('<a href="/get_torrent/'+m[1]+'.torrent">dwn</a>');
            //console.log(atitles[0].href);
            //console.log(m[1],atitles[0].innerHTML);
        }
    }
});

var idx=0;
$('div.left-tab-section').append('');
$('div.table-responsive table tr a').each(function(k,v){
    idx=++idx%4;
    var that    = $(v).closest('tr');
    var title   = ' '+$('td:eq(0)',that).text()+' ';
    var poid    = $('td:eq(1)',that).html();
    var up      = $('td:eq(2)',that).html();
    var down    = $('td:eq(3)',that).html();
    var match   = $('a',that).attr('href').match(/(.*)\/torrent\/(.*)/);
    var torrent = '/get_torrent/'+ match[2].replace(/^[0-9]*\//,'') +'.torrent';
    var hash    = 'dwn_'+match[2].replace(/^[0-9]*\//,'');
    var inner   = "";
	//console.log(title);
    title = addTag(title,'txtQuality',['BluRay 720p','BluRay 1080p','DVDRIP','DVDSCR','HDRIP','HDlight 720p','HDlight 1080p','BRRIP','WEBRIP','x264','HDTV']);
    title = addTag(title,'txtLanguage',['VOSTFR','TRUEFRENCH','FRENCH']);
    title = addTag(title,'txtYear',(function(){var t=[];for(var i=1990;i<=2040;i++){t.push(''+i);}return t;})());
    var saep = title.match(/S([0-9]+)E([0-9]+)/);
    if(saep){
        title = title.replace(saep[0],' <span class="txtSAEP">['+saep[1]+'x'+saep[2]+']</span> ');
    }
    var stitle  = title.replace(/<span.*?\/span>/g,'');

    var downloaded=(window.localStorage.getItem(hash) !== null);

    title = title.replace(/  /g,' ');
    inner = inner + '<div class="ligne'+(idx>=2?1:0)+' item">';
    inner = inner + '    <a class="dwnThumb torrentdwn '+(downloaded?'downloaded':'')+'" data-dhash="'+hash+'" href="'+ torrent +'" alt="download torrent" title="download torrent">';
	inner = inner + '        <img width="60 "src="/_pictures/'+match[2].replace(/^[0-9]*\//,'')+'.jpg">';
	inner = inner + '    </a>';
    inner = inner + '    <a class="titre" href="'+$(v).attr('href')+'">'+title+'</a>';
	inner = inner + '        <br>';
    inner = inner + '    <div class="datas">';
    inner = inner + '        <a class="torrentdwn '+(downloaded?'downloaded':'')+'" alt="download torrent" title="download torrent" data-dhash="'+hash+'" href="'+torrent+'">';
    inner = inner + '            <div class="poid">'+poid+'</div>';
    inner = inner + '        </a>';
    inner = inner + '        <div class="up">'+up+'</div>';
    inner = inner + '        <div class="down">'+down+'</div>';
    inner = inner + '        <div>';
	inner = inner + '            <a class="search" href="https://www.senscritique.com/recherche?query='+stitle.replace(/"/g,' ')+'" target="_blank">[SC]</a>';
	inner = inner + '            <a class="search" href="http://www.allocine.fr/recherche/?q='+stitle.replace(/"/g,' ')+'" target="_blank" >[AC]</a>';
    inner = inner + '        </div>';
    inner = inner + '    </div>';
    inner = inner + '</div>';
    that.replaceWith('');
    $('div.left-tab-section').append(inner);
});

$('a.torrentdwn').bind('click',function(v){
    var hash = $(v.target).parent().attr('data-dhash');
    $('[data-dhash='+hash+']').addClass('downloaded');
    window.localStorage.setItem(hash,1);
    //console.log($(v.target)[0]);
    //console.log(hash);
    return true;
});
$('.gauche').show();

//$('.left-tab-section div').first().hide();

var htmlFilters=[
	'<div class="table-responsive">',
	'<table class="table table-striped table-bordered">'
];

htmlFilters.push('<thead><tr>');
for(var tag in filters){
	htmlFilters = htmlFilters.concat([
		'<td>',
		tag.replace(/^txt/,''),
		'</td>'
	]);
}
htmlFilters.push('</tr></thead>');

htmlFilters.push('<tbody><tr>');
for(var tag in filters){
	htmlFilters.push('<td>');
	for(var k in filters[tag]){
		var val =filters[tag][k];
		htmlFilters = htmlFilters.concat([
			'<a class="filterToggle '+tag+'" data-filter-type="'+tag+'-'+val.replace(/ /g,'')+'">',
			val,
			'</a>'
		]);
	}
	htmlFilters.push('</td>');
}
htmlFilters.push('</tr></tbody>');
htmlFilters = htmlFilters.concat([
	'</table>',
	'</div>'
]);

$('th:contains("Nom du torrent")').closest('.table').hide();
$('#pagination-mian').after(htmlFilters.join('')).show();

$('.filterToggle').click(function(v){
	$(v.target).toggleClass('filterOff');
	var isStrike = $(v.target).hasClass('filterOff');
	setFilter($(v.target).attr('data-filter-type'),isStrike?1:0);
});

function setFilter(type,isStrike){
	console.log('filter-'+type,isStrike);
	window.localStorage.setItem('filter-'+type,isStrike);
	setFilters();
}

function setFilters(){
	$('.item').show();
	$('.filterToggle').each(function(k,v){
		var key = 'filter-'+$(v).attr('data-filter-type');
		if (window.localStorage.getItem(key)?parseInt(window.localStorage.getItem(key)):0){
			$(v).addClass('filterOff');
			console.log(key);
			$("[data-filter-value='" + key + "']").closest('.item').hide();
		}else{
			$(v).removeClass('filterOff');
		}
	});
}

setFilters();