// ==UserScript== // @name Fanfiction.net - Customize Default Result Filter // @namespace ssokolow.com // @description Override Fanfiction.net's default choices for result filters // @version 2 // @license MIT // // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // // @noframes // @match *://www.fanfiction.net/* // @downloadURL none // ==/UserScript== // TODO: Try to find a way to safely URL-match so I can minimize the number // of cases where I need to redirect and use @run-at document-start // for the rest. var has_filters = (document.getElementById('filters') !== null); // Skip everything if this isn't a relevant page since we can't URL match them. if (has_filters) { // Let short-circuit eval. only call GM_getValue once on empty query string var preferred_filter; if (window.location.search === "" && (preferred_filter = GM_getValue('preferred_filter'))) { window.location.search = preferred_filter; } else { GM_registerMenuCommand("Save Current Filters as Default", function() { GM_setValue('preferred_filter', window.location.search); }, 'S'); } }