torrent9

enhance torrent9 / t411

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==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();