您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Additional quality of life filters: - Show or hide category icons; - Show or hide torrent thumbnails; - Show or hide movie and tv filters (Removes torrents with KORSUB, 720p, and below minimum rating); - Show or hide porn
当前为
// ==UserScript== // @name RARBG Advanced Filters [BETA] // @namespace http://tampermonkey.net/ // @version 1.20 // @description Additional quality of life filters: - Show or hide category icons; - Show or hide torrent thumbnails; - Show or hide movie and tv filters (Removes torrents with KORSUB, 720p, and below minimum rating); - Show or hide porn // @author Kxmode // @match *://rarbg.to/* // @grant none // @require //ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // ==/UserScript== $(function() { // .PLAN: // - Grid layout // - Torrent category, IMDB, icons sorting // - Hides torrents with seeders equal to or lower than 10 // - Large grid icon // - Minimalist layout: e.g. torrent thumbnail, name, # of seeders // - Show or hide advanced filters based on this button's event (looks like: [ << ], next to search input) // - Filter counter // - Category specific filters (e.g. genre for Music; torrent group for Games; and so forth) // Default Values showhideadvsearch('show'); var showIcon; var showTorrentThumbnail; // TODO: child of showIcon (=true) var showMoviesTVFilters; var showPorn; var minRating; function ToggleFilter(target, data, bool) { var targetID = target.replace("#",""); if (bool) { $(target).find("i").removeClass("fa-eye-slash").addClass("fa-eye"); $(target).removeClass("disabled"); $(target).attr(data, "true"); window.localStorage.setItem(targetID, true); } else { $(target).find("i").removeClass("fa-eye").addClass("fa-eye-slash"); $(target).addClass("disabled"); $(target).attr(data, "false"); window.localStorage.setItem(targetID, false); } } $("#searchTorrent").parent().addClass("new-search"); // Removes extra space between Recommended torrents and search bar (Unsure what they're for) $("#searchTorrent").parent().parent().find("div:nth-of-type(2)").remove(); for(var i = 1; i <= 4; i++) { $("#searchTorrent").parent().parent().find("br:nth-of-type(1)").remove(); } $("head").append( '<script src="//use.fontawesome.com/2d73a39974.js"></script>'); $("head").append( "<style>\n" + '.content-rounded .new-search,\n' + '.content-rounded div.new-search div { margin-left: auto; }\n' + '.new-search { width: 1170px; display: flex; display: -webkit-flex; display: -moz-flex; margin: 30px auto; }\n' + '.new-search div { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }\n' + '.new-search div { border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; }\n' + '.new-search form { width: 75%; border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; }\n' + '.new-search form { border: 0; border-top: 1px solid #9faabc; border-bottom: 1px solid #9faabc; border-left: 1px solid #9faabc; }\n' + '.new-search .divadvscat { width: 153px; display: inline-block; height: auto; padding: 7px; float: none; }\n' + '.new-search .divadvclearcats { padding: 10px; }\n' + '.new-search .advanced-search { width: 25%; background: #e7f3fb; font-size: 110%; padding: 5px; border: 1px solid #9faabc; float: left; }\n' + '.new-search .advanced-search { border: 0; border-top: 1px solid #9faabc; border-bottom: 1px solid #9faabc; border-right: 1px solid #9faabc; }\n' + '.new-search .advanced-search h4 { padding: 0; margin: 0 0 10px 0; text-align: center; }\n' + '.advanced-search .section-wrapper { border: 1px dotted #9faabc; padding: 10px; }\n' + '.advanced-search .section-wrapper:first-child { border-bottom: 0; }\n' + '.advanced-search .no-border { border: 0; }\n' + '.advanced-search .divadvscat { width: auto; border: 1px solid transparent; cursor: pointer; }\n' + '.advanced-search .divadvscat i { padding-right: 2px; }\n' + '.advanced-search .disabled { border: 1px solid #DDD; background-color: #f5f5f5; color: #999; }\n' + '.advanced-search .centered { text-align: center; }\n' + '.section-wrapper input { width: 30%; border: 0; margin: 0 10px; border: 1px solid #9faabc; }\n' + '.clearfix:before, .clearfix:after { display: table; content: ""; line-height: 0;}\n' + '</style>'); var AdvancedFiltersHTML = '<div class="advanced-search">\n' + '<div class="section-wrapper">\n' + '<div id="jQIcon" class="divadvscat"><i class="fa fa-eye fa-1x"></i> Category Icons</div>\n' + '<div id="jQTorrentThumbnail" class="divadvscat"><i class="fa fa-eye fa-1x"></i> Torrent Images</div>\n' + // Eventually make this a child of Show Thumbnails '<div id="jQMoviesTVFilters" class="divadvscat" title="Hides low-quality KORSUB torrents and 720p torrents"><i class="fa fa-eye fa-1x"></i> Media Filters</div>\n' + // Eventually break this up '<div id="jQShowPorn" class="divadvscat"><i class="fa fa-eye fa-1x"></i> Porn</div>\n' + '</div>\n' + '<div class="section-wrapper">\n' + '<div id="jQminRating" class="divadvscat centered">Min Rating <input name="minprice" type="text" /></div>\n' + // Not working with decimal values '</div>\n' + '<div class="section-wrapper no-border">\n' + '<span class="jQUpdateFilters btn btn-primary btn-mini">Update Page with Filters</span>\n' + '<span class="jQResetFilters btn btn-mini">Reset Filters</span>\n' + '</div>\n' + '<div class="clearfix"></div>\n' + '</div>'; // #shadvbutton - show / hide advanced filters based on this button's event. Button looks like: [ << ] $("#searchTorrent").parent().append(AdvancedFiltersHTML); showIcon = ((window.localStorage.getItem("jQIcon") == "false") ? false : true); ToggleFilter("#jQIcon", "data-icon", showIcon); showTorrentThumbnail = ((window.localStorage.getItem("jQTorrentThumbnail") == "false") ? false : true); ToggleFilter("#jQTorrentThumbnail", "data-torrent-thumbs", showTorrentThumbnail); showMoviesTVFilters = ((window.localStorage.getItem("jQMoviesTVFilters") == "false") ? false : true); ToggleFilter("#jQMoviesTVFilters", "data-tvmovie", showMoviesTVFilters); showPorn = ((window.localStorage.getItem("jQShowPorn") == "false") ? false : true); ToggleFilter("#jQShowPorn", "data-porn", showPorn); $("#jQIcon").on("click", function() { showIcon = ($(this).attr("data-icon") == "false") ? true : false; ToggleFilter("#jQIcon", "data-icon", showIcon); }); $("#jQTorrentThumbnail").on("click", function() { showTorrentThumbnail = ($(this).attr("data-torrent-thumbs") == "false") ? true : false; ToggleFilter("#jQTorrentThumbnail", "data-torrent-thumbs", showTorrentThumbnail); }); $("#jQMoviesTVFilters").on("click", function() { showMoviesTVFilters = ($(this).attr("data-tvmovie") == "false") ? true : false; ToggleFilter("#jQMoviesTVFilters", "data-tvmovie", showMoviesTVFilters); }); $("#jQShowPorn").on("click", function() { showPorn = ($(this).attr("data-porn") == "false") ? true : false; ToggleFilter("#jQShowPorn", "data-porn", showPorn); }); // Hides torrents with IMDB ratings equal to or lower than minRating if (window.localStorage.getItem("minimum-rating") > 0) { var mr = window.localStorage.getItem("minimum-rating"); $("#jQminRating").find("input").attr("value", mr); minRating = mr; } else { $("#jQminRating").find("input").attr("value", 0); } $(".jQUpdateFilters").on("click", function () { var minRating = $("#jQminRating").parent().find("input").val(); window.localStorage.setItem("minimum-rating", minRating); location.reload(); }); $(".jQResetFilters").on("click", function() { window.localStorage.removeItem("jQIcon"); window.localStorage.removeItem("jQTorrentThumbnail"); window.localStorage.removeItem("jQMoviesTVFilters"); window.localStorage.removeItem("jQShowPorn"); window.localStorage.removeItem("minimum-rating"); location.reload(); }); // CATEGORY SPECIFIC ================================================================================================= // Hides torrents with seeders equal to or lower than 10 [TODO: make this a form input filter] // use inArray method from work (Configurator height normalizer) /* if (parseInt(title.indexOf("720p")) > 0) { $(this).parents(".lista2").remove(); } */ if (!showPorn) { $.each($(".tdlinkfull2"), function() { var targetText = $(this).text().toLowerCase(); if (targetText == "xxx") { $(this).parent().parent().remove(); } }); $.each($(".divadvscat a"), function() { var targetText = $(this).text().toLowerCase(); if(targetText == "xxx (18+)") { $(this).parent().remove(); } }); } $.each($(".lista a"), function(index, value) { var title = $(this).attr("title"); var icon = $(this).find("img").attr("src"); if (title !== undefined) { if (showMoviesTVFilters) { // Hides low-quality KORSUB torrents [TODO: make this a form checkbox filter] if (parseInt(title.indexOf("KORSUB")) > 0) { $(this).parents(".lista2").remove(); } // Hides 720p torrents [TODO: make this a form checkbox filter] if (parseInt(title.indexOf("720p")) > 0) { $(this).parents(".lista2").remove(); } } if (title !== undefined) { $.each($("span"), function(index, value) { var ratings = $(this).text(); var imdb = ratings.indexOf("IMDB: ") + 6; if (ratings !== undefined && imdb !== -1) { minRating = parseFloat(minRating); var rateValue = parseFloat(ratings.substring(imdb,ratings.length-3)); if (!isNaN(rateValue)) { if (showMoviesTVFilters) { $(this).attr("style", "display: block;"); } if (rateValue <= minRating) { $(this).parents(".lista2").remove(); } } } }); } } if (!showPorn) { if (title !== undefined) { title = title.indexOf("XXX"); if (title >= 0) { $(this).parents(".lista2").remove(); } } if (icon !== undefined) { icon = icon.indexOf("cat_new4.gif"); if (icon >= 0) { $(this).parents(".lista2").remove(); } } } }); // NON-CATEGORY SPECIFIC ================================================================================================= if (!showIcon) { $(".lista2t tr td:nth-of-type(1)").attr("style","display:none;"); } else { // TODO: Make child of showIcon (=true) if (showTorrentThumbnail) { $.each($(".lista2t .lista2"), function() { var anchor = $(this); $.each(anchor.find(".lista"), function() { var image = $(this).find("a"); var target = anchor.find(":nth-child(1) a"); if (image.attr("onmouseover") !== undefined) { var href = image.attr("href"); var sourceThumb = image.attr("onmouseover"); var val1 = sourceThumb.lastIndexOf("//dyncdn.me/"); var val2 = sourceThumb.indexOf("\' border=0>')")-1; var imageID = sourceThumb.substring(val1,val2); var thumbnailImage = "<img src=\'" + imageID + "' />"; image.removeAttr("onmouseover").removeAttr("onmouseout"); target.find("img").replaceWith(thumbnailImage); target.attr("href", href); anchor.find("td:nth-child(1)").attr( "align", "center" ); } }); }); } } /* TODO: Filter counter [ALPHA] $(".container-sales").prepend("<div class='sales-section table-sales' id='min-usd-totals'>\n" + "<div class='pre-table-title' style='font-size: 15px;'>\n" + "<strong>357 products shown\n" + "<span class='pull-right'>135 products hidden</span>\n" + "</strong>\n" + "</div>\n" + "</div>"); */ });