您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Filters search results by languages and tags
当前为
// ==UserScript== // @name Hitomi - Language & Tag Filtering // @namespace brazenvoid // @version 2.1 // @author brazenvoid // @description Filters search results by languages and tags // @include https://hitomi.la/* // @run-at document-idle // ==/UserScript== // Define languages to keep and tags to exclude here (search urls) let allowedLanguages = [ "japanese", "english" ]; let excludedTags = [ "anthology", "female:loli", "sample", "male:yaoi" ]; // Formatting filters let formatFilters = function (filters, prefix, suffix) { for (let index = 0; index < filters.length; index++) { filters[index] = '[href="'+ prefix + encodeURIComponent(filters[index]) + suffix +'.html"]'; } return filters.join(", "); }; let languageFiltersSelector = formatFilters(allowedLanguages, "/index-", "-1"); let tagFiltersSelector = formatFilters(excludedTags, "/tag/", "-all-1"); // Filteration logic let complianceCallback = function(target) { let elements = target.querySelectorAll('.manga, .dj, .acg'); for (let element of elements) { if (element.querySelectorAll(languageFiltersSelector).length == 0 || element.querySelectorAll(tagFiltersSelector).length > 0) { element.remove(); } } }; // Setting up configuration and galleries list node let galleriesList = document.querySelector('.gallery-content'); let observerConfig = { attributes: false, childList: true, subtree: false }; // Checking compliance in case of gallery page complianceCallback(galleriesList); // Adding observer to check compliance of galleries on search pages let observer = new MutationObserver(function(mutations, observer) { for(let mutation of mutations) { complianceCallback(mutation.target); } }); observer.observe(galleriesList, observerConfig);