Hacker News Threshold

Allows you to highlight threads on Hacker News which have a number of points greater than a specified threshold

Versión del día 17/09/2014. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name            Hacker News Threshold
// @namespace       HackerNewsThreshold
// @description     Allows you to highlight threads on Hacker News which have a number of points greater than a specified threshold
// @include         *://news.ycombinator.com/*
// @version         0.1
// ==/UserScript==
var init = function() {
    function addThreshold() {
        $("head").append("<style>.hnth{background: #FFFB93 !important;}.hnterr{background:#FF0000;color:#fff;}</style>");

        function highlightThreads(threshold) {
            var $hnfti = $("#hnfti");
            if (!isNaN(threshold)) {
                $hnfti.removeClass("hnterr");
                $(".hnth").removeClass("hnth");
                $("span[id^='score_']").filter(function() {
                    var m = $(this).html().match(/[0-9]+/g);

                    if (m) {
                        return parseInt(threshold) <= parseInt(m[0]);
                    } else {
                        return false;
                    }
                }).closest("tr").prev().addClass("hnth");
            } else {
                $(".hnth").removeClass("hnth");
                $hnfti.addClass("hnterr");
            }
        }

        $("#hnfti").live("keyup",
                function() {
                    highlightThreads($(this).val());
                });

        var startthreshold = 100;

        $($(".pagetop")[0]).append(" | Threshold: <input type='text' id='hnfti' value='" + startthreshold + "'  />");

        highlightThreads(startthreshold);
    };

    (function(fn) {
        var script = document.createElement('script');
        script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js';
        script.addEventListener('load',
                function() {
                    var script = document.createElement('script');
                    script.textContent = 'jQuery.noConflict();(function($){(' + fn.toString() + ')();})(jQuery);';
                    document.body.appendChild(script);
                },
                false);
        document.body.appendChild(script);
    })(init);
};