您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically set global filters for AO3 searches.
// ==UserScript== // @name [AO3] Default Filters // @namespace https://greasyfork.org/en/users/1138163-dreambones // @version 1.2.2 // @description Automatically set global filters for AO3 searches. // @author DREAMBONES // @match http*://archiveofourown.org/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Config is case-insensitive. Enclose all config parameters in quotes unless stated otherwise. var config = { Sort: "", Language: "", IncludeRatings: [], ExcludeRatings: [], IncludeWarnings: [], ExcludeWarnings: [], IncludeCategories: [], ExcludeCategories: [], IncludeFandoms: [], ExcludeFandoms: [], IncludeCharacters: [], ExcludeCharacters: [], IncludeRelationships: [], ExcludeRelationships: [], IncludeAdditionalTags: [], ExcludeAdditionalTags: [], Crossovers: "", CompletionStatus: "", // Set word counts to "null" if you don't want a threshold. Type a number (NOT enclosed in quotes) to set an upper/lower threshold. MinWordCount: null, MaxWordCount: null, } var domainRe = /https?:\/\/archiveofourown\.org\/(works|tags).*/i if (domainRe.test(document.URL)) { selectDropdownOption("#work_search_sort_column", config.Sort); selectDropdownOption("#work_search_language_id", config.Language); selectListOption("#include_rating_tags > ul", config.IncludeRatings); selectListOption("#exclude_rating_tags > ul", config.ExcludeRatings); selectListOption("#include_archive_warning_tags > ul", config.IncludeWarnings); selectListOption("#exclude_archive_warning_tags > ul", config.ExcludeWarnings); selectListOption("#include_category_tags > ul", config.IncludeCategories); selectListOption("#exclude_category_tags > ul", config.ExcludeCategories); selectListOption("#include_fandom_tags > ul", config.IncludeFandoms); selectListOption("#exclude_fandom_tags > ul", config.ExcludeFandoms); selectListOption("#include_character_tags > ul", config.IncludeCharacters); selectListOption("#exclude_character_tags > ul", config.ExcludeCharacters); selectListOption("#include_relationship_tags > ul", config.IncludeRelationships); selectListOption("#exclude_relationship_tags > ul", config.ExcludeRelationships); selectListOption("#include_freeform_tags > ul", config.IncludeAdditionalTags); selectListOption("#exclude_freeform_tags > ul", config.ExcludeAdditionalTags); selectListOption("#work_crossover > ul", config.Crossovers); selectListOption("#work_complete > ul", config.CompletionStatus); if (config.MinWordCount != null) { var minWords = document.querySelector("#work_search_words_from"); minWords.setAttribute("value", config.MinWordCount); } if (config.MaxWordCount != null) { var maxWords = document.querySelector("#work_search_words_to"); maxWords.setAttribute("value", config.MaxWordCount); } function selectDropdownOption(query, option) { if (option.length) { option = new RegExp(option, "i") var list = document.querySelector(query); for (var i = 0; i < (list.length); i++) { if (option.test(list[i].innerHTML)) { list[i].setAttribute("selected", ""); break; } } } } function selectListOption(query, option) { if (option.length) { option = new RegExp(option, "i") var list = document.querySelector(query).children; for (var i = 0; i < (list.length); i++) { var span = list[i].querySelectorAll("span")[1]; var input = list[i].querySelector("input"); if (Array.isArray(option)) { for (var ii = 0; ii < (option.length); ii++) { if (option.test(span.innerHTML)) { input.setAttribute("checked", ""); let listControls = document.querySelector(`button[aria-controls="${document.querySelector(query).parentNode.id}"]`); let listExpanded = listControls.getAttribute("aria-expanded"); if (!listExpanded) { listControls.click(); } } } } else { if (option.test(span.innerHTML)) { input.setAttribute("checked", ""); let listControls = document.querySelector(`button[aria-controls="${document.querySelector(query).parentNode.id}"]`); let listExpanded = listControls.getAttribute("aria-expanded"); if (!listExpanded) { listControls.click(); } } } } } } } })();