Greasy Fork

Torrenter

Adds links pointing to torrent sites.

目前为 2014-12-17 提交的版本。查看 最新版本

// ==UserScript==
// @name           Torrenter
// @namespace      http://www.google.com/search?q=mabakay
// @description    Adds links pointing to torrent sites.
// @include        http://release24.pl/*
// @include        http://www.filmweb.pl/*
// @grant          none
// @copyright      2010 - 2014, mabakay
// @date           17 December 2014
// @version        1.47
// @license        GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// ==/UserScript==

var Engines = ["https://oldpiratebay.org/search.php?q={0}&Torrent_sort=seeders.desc",
                "https://kickass.to/usearch/{0}/?field=seeders&sorder=desc",
                "https://www.torrentz.com/search?q={0}",
                "http://extratorrent.cc/search/?search={0}",
		"https://yts.re/browse-movie/{0}/All/All/0/seeds",
                "http://bitsnoop.com/search/all/{0}/s/a/1/",
                "http://isohunt.to/torrents/?ihq={0}&Torrent_sort=seeders.desc"];

var hostName = window.location.hostname;

if (hostName == 'release24.pl') {
    var titleElement = document.getElementById('mainwindow');
    loopCount = titleElement.childElementCount > 3 ? titleElement.childElementCount - 3 : 2;

    for (i = 1; i < loopCount; i++) {
        var elem = titleElement.children[i];

        if (elem.className == 'wpis') {
            var title_regex = /\"(.*)\"/;
            regex_result = elem.children[0].children[0].innerHTML.match(title_regex)

            if (regex_result != null) {
                var title = regex_result[1];
                var span = createLinkSpan(title, 'margin-left: 3em; font-weight: normal;');

                elem.children[2].children[0].children[0].children[0].children[0].children[1].children[0].children[0].children[0].appendChild(span);
            }
        }
    }
}
else if (hostName == 'www.filmweb.pl') {
    var style = 'margin-top: 0.5em; font-size: 0.7em;';
    var titleElement = $('.filmMainHeader .hdr:first');
    var title, hasSmallTitle = false;

    if (titleElement.length == 1) {
        var smallTitleElement = titleElement.siblings('.cap:first');

        if (smallTitleElement.length == 1) {
			style = 'margin-left: 1.5em; font-size: 0.7em;';
            titleElement = smallTitleElement;
			hasSmallTitle = true;
			
			title = smallTitleElement.text();
        } else {
            title = titleElement.find('a').text();
        }
    }

    if (titleElement.length && title) {
		if (hasSmallTitle){
			titleElement.append(createLinkSpan('span', title, style));
		} else {
			titleElement.parent().append(createLinkSpan('div', title, style));
        }
    }
}

function createLinkSpan(tag, title, style) {
    var span = document.createElement(tag);
    span.setAttribute('id', 'Torrenter');
    span.setAttribute('style', style);

    for (var i = 0; i < Engines.length; i++) {
        var link = document.createElement('a');
        link.setAttribute('href', format(Engines[i], encodeURIComponent(title)));
        link.setAttribute('style', 'position: relative; top: 5px;');

        var urlRegex = /(https?:\/\/)(.+\....)/;
        var regexResult = Engines[i].match(urlRegex);
        link.innerHTML = getFavIconImg(regexResult[2]);

        if (i > 0) {
            var separator = document.createElement('span');
            separator.innerHTML = '&nbsp;|&nbsp;';

            span.appendChild(separator);
        }

        span.appendChild(link);
    }

    return span;
}

function getFavIconImg(url) {
    var imgurl = '<img src="http://www.google.com/s2/favicons?domain=' + url + '" width="16px" height="16px">';

    return imgurl;
}

function format(str) {
    for (var i = 1; i < arguments.length; i++) {
        var argNum = "{" + (i - 1) + "}";

        str = str.replace(argNum, arguments[i]);
    }

    return str;
}