ILoveClassics Enhancer

Better display for ILoveClassics

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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); 
                }

            });
        });
    }

});