ILoveClassics Enhancer

Better display for ILoveClassics

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name           ILoveClassics Enhancer
// @namespace      surrealmoviez.info
// @description    Better display for ILoveClassics
// @include        http://www.iloveclassics.com/*
// @require        http://code.jquery.com/jquery-1.11.1.min.js
// @grant          GM_addStyle
// @version        0.4.0
// ==/UserScript==

this.$ = this.jQuery = jQuery.noConflict(true);

var uri = document.documentURI;

GM_addStyle(".suggestion-element:hover { background-color : #98a099; }");

// Global search bar
var userbarTitle = $('.NB_ftcm:contains(User Bar)').closest('.fheader');
var searchDiv = '<table width="100%" cellspacing="0" cellpadding="0" border="0" style="text-align: center;"><tr><td>'
        + '<form id="globalSearchBar" action="http://www.iloveclassics.com/browse.php" method="get" style="margin-top: 2px; margin-bottom: 4px; width: 100%;">'
        + '<input id="globalSearchInput" type="text" name="search" style="width: 85%; border: 1px solid rgb(51, 51, 51); background-color: rgb(25, 25, 25); color: white; border-radius: 3px; margin-right: 3px; padding-left: 4px; padding-right: 4px;" placeholder="Search torrents" maxlength="250" autocomplete="off">'
        + '<div id="suggestionsContainer" style="position: absolute; padding: 8px; background-color: #191919; display: none; margin-left: 6px; text-align: left; z-index: 100; box-shadow: 5px 5px 7px black;"></div>'
        + '<input type="hidden" value="0" name="cat">'
        + '<input type="hidden" value="1" name="incldead">'
        + '<select name="searchin" style="width: 14%; text-align: center; right: 0px; background-color: rgb(25, 25, 25); color: white; border: 1px solid rgb(51, 51, 51); border-radius: 3px;">'
        + '<option value="1" style="color: gray;">Title</option>'
        + '<option value="2">Description</option>'
        + '<option value="0">Both</option>'
        + '</select>'
        + '</form>'
        + '</td></tr></table>';
        
$(document).ready(function () {
    
    $(searchDiv).insertAfter(userbarTitle);

    // Hide the 'User Bar' title row
    userbarTitle.hide();

    // Add the suggestions feature to the global search bar
    $('#globalSearchInput').keyup(function(event) {
        var $suggestions = $("#suggestionsContainer");
        if (event.which === 27){
            $suggestions.fadeOut('slow');
            return;
        }
        if ($(this).val() !== "") {
            // Show the suggestions if there's text in the input
            $suggestions.fadeIn('slow');
            if ($(this).val().length < 4) {
                // Don't make requests for queries shorter than 4 characters
                $suggestions.text('...');
            } else {
                // Show the loading image while the request runs
                $suggestions.html('<img src="http://i.imgur.com/EUMuKRs.gif" title="Loading..." alt="Loading...">');
                $.get('/suggest.php?q=' + $(this).val(), function(data) {
                    if (data.trim().length === 0) {
                        $suggestions.text('Nothing found :(');
                        return;
                    }
                    var arraySuggestions = data.split('\n');
                    for (var i = 0; i < arraySuggestions.length; i++) {
                        // Clicking the suggestions automatically submits the form
                        arraySuggestions[i] = '<span class="suggestion-element" style="display: inline-block; margin-bottom: 2px; cursor: pointer;" onclick="$(\'#globalSearchInput\').val($(this).text()); $(\'#globalSearchBar\').submit()">' + arraySuggestions[i] + '</span>';
                    }
                    $suggestions.html(arraySuggestions.join('<br>'));
                });
            }
        } else {
            // Hide suggestions if the input is empty
            $suggestions.fadeOut('slow');
        }
    });

    // Hide the suggestions when clicked outside the form or the suggestions list
    $(document).mouseup(function(e) {
        var $searchBar = $('#globalSearchBar');
        if (!$searchBar.is(e.target) && $searchBar.has(e.target).length === 0) {
            $("#suggestionsContainer").hide();
        } else if ($('#globalSearchInput').val() !== "") {
            $("#suggestionsContainer").show();
        }
    });

    // Open search result in new tab if in the shoutbox page
    if (uri.indexOf('/sb.php') !== -1) {
        $('#globalSearchBar').attr('target', '_blank');
    }

    // Site logo links to the homepage
    $('.clear > div > img').wrap('<a href="index.php"></a>');

    // Reorder the search display to get to the actual data faster
    if (uri.indexOf('/browse.php') !== -1) {
        // Put the colour keys at the bottom of the list
        var colourKeys = $('.NB_fmmain > center');
        colourKeys.siblings('br').remove();
        $(colourKeys).insertAfter('#hover-over');

        // Flip the search methods
        $('#kutorrentsearch > center').prependTo('#kutorrentsearch');
        $('#kutorrentsearch > form').appendTo('#kutorrentsearch');
        $('#kutorrentsearch > br').remove();
    }

    // Hide the search area if the user is browsing trough torrent pages
    if (uri.indexOf('/browse.php?') !== -1 && uri.indexOf('page=') !== -1 && uri.indexOf('page=0') === -1) {
        $('body').scrollTop($('#picutorrentsearch').closest('.ftable').offset().top);
        $('#kutorrentsearch').hide();
    }

    // Show hint of previously downloaded torrent in details page
    if (uri.indexOf('/details.php?id=') !== -1) {
        GM_addStyle("td > a.index:visited { color: #00ff00; }");
    }

    // Show hint of previously downloaded torrent in browse page
    if (uri.indexOf('/browse.php') !== -1) {
        GM_addStyle("a.floppy:visited { color: #00ff00; }"
                + "a.floppy:link { color: #3B3B3B; }");
        $('#hover-over img[alt=Download]').parent().addClass('floppy').parent().attr('align', 'center');
        $('<span style="font-size: 13pt;">⏬</span>').insertBefore($('#hover-over img[alt=Download]'));
    }
    
    // Shortcut to select all reseed requests in PMs
    if (uri.indexOf('/messages.php') !== -1) {
        $('<input id="check-reseed-requests" type="button" value="Check reseed requests">').insertBefore($('.colhead > input[name=delete]'));
        $('#check-reseed-requests').click(function() {
            $('form .NB_fmmain input[type=checkbox]').each(function(){
                if ($(this).parent().prev().prev().text() === 'System' &&
                    $(this).parent().prev().prev().prev().text() === 'Reseed request') {
                    $(this).attr('checked', true); 
                }

            });
        });
    }

});