您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Change default script sort on GreasyFork
当前为
- // ==UserScript==
- // @name Greasy Fork - Change Default Script Sort
- // @namespace https://greasyfork.org/users/649
- // @version 1.3.4
- // @description Change default script sort on GreasyFork
- // @author Adrien Pyke
- // @match *://greasyfork.org/*/users/*
- // @match *://greasyfork.org/*/scripts*
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_registerMenuCommand
- // @require https://gitcdn.link/repo/kufii/My-UserScripts/fa4555701cf5a22eae44f06d9848df6966788fa8/libs/gm_config.js
- // @require https://gitcdn.link/repo/fuzetsu/userscripts/b38eabf72c20fa3cf7da84ecd2cefe0d4a2116be/wait-for-elements/wait-for-elements.js
- // @run-at document-start
- // ==/UserScript==
- (() => {
- 'use strict';
- const commonValues = [
- { value: 'daily-installs', text: 'Daily installs' },
- { value: 'total_installs', text: 'Total installs' },
- { value: 'ratings', text: 'Ratings' },
- { value: 'created', text: 'Created date' },
- { value: 'updated', text: 'Updated date' },
- { value: 'name', text: 'Name' }
- ];
- const Config = GM_config([
- {
- key: 'all',
- label: 'All Scripts Sort',
- default: 'daily-installs',
- type: 'dropdown',
- values: commonValues
- },
- {
- key: 'search',
- label: 'Search Sort',
- default: 'relevance',
- type: 'dropdown',
- values: [{ value: 'relevance', text: 'Relevance' }, ...commonValues]
- },
- {
- key: 'user',
- label: 'User Profile Sort',
- default: 'daily-installs',
- type: 'dropdown',
- values: commonValues
- }
- ]);
- GM_registerMenuCommand('GreasyFork Sort Settings', Config.setup);
- const onSearch = location.href.match(
- /^https?:\/\/greasyfork\.org\/.+?\/scripts\/?.*\?.*q=/iu
- );
- const onScripts = location.href.match(
- /^https?:\/\/greasyfork\.org\/.+?\/scripts\/?/iu
- );
- const onProfile = location.href.match(
- /^https?:\/\/greasyfork\.org\/.+?\/users\//iu
- );
- waitForElems({
- sel: '#script-list-sort > ul > li:first-of-type > a',
- stop: true,
- onmatch(defaultSort) {
- const url = new URL(defaultSort.href);
- url.searchParams.set('sort', onSearch ? 'relevance' : 'daily-installs');
- defaultSort.href = url.href;
- }
- });
- const url = new URL(location.href);
- const sort = url.searchParams.get('sort');
- if (!sort) {
- const cfg = Config.load();
- let cfgSort;
- if (onSearch) {
- cfgSort = cfg.search;
- } else if (onScripts) {
- cfgSort = cfg.all;
- } else if (onProfile) {
- cfgSort = cfg.user;
- }
- if (cfgSort) {
- url.searchParams.set('sort', cfgSort);
- window.location.replace(url.href);
- }
- }
- })();