您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Press a key to view a random page on current Wiki.
- // ==UserScript==
- // @name Wiki Randomizer
- // @namespace https://script.zgc.im/
- // @version 1.7.2
- // @description Press a key to view a random page on current Wiki.
- // @author MidAutumnMoon
- //
- // @include /^.*://.*\.wiki(pedia|voyage|source|books)\.org/.*$/
- // @match *://*.wiktionary.org/*
- // @include /^.*://wiki\.(archlinux|debian)\.org/.*$/
- // @include /^.*://.*\.wikihow\.(com|pet)/.*$/
- // @match *://*.fandom.com/*
- // @match *://*.moegirl.org.cn/*
- // @match *://tcrf.net/*
- // @match *://*.rosettacode.org/*
- // @match *://esolangs.org/*
- // @match *://*.uesp.net/*
- // @match *://thwiki.cc/*
- //
- // @icon https://zh.wikipedia.org/favicon.ico
- // @grant none
- // ==/UserScript==
- //
- // Issues and requests: https://gitlab.com/MidAutumnMoon/butterpotato/
- //
- // The default trigger key
- const THAT_KEY = 'F8';
- const MediawikiCommon = 'Special:Random';
- const MediawikiRootpageCommon = 'Special:RandomRootpage';
- const MoinMoinCommon = 'RandomPage';
- const WikiHowCommon = 'Special:Randomizer'
- // The total rules
- const RULES = new Map([
- // All about Wikipedia
- [ 'wikipedia.org', `wiki/${MediawikiCommon}` ],
- [ 'wikivoyage.org', `wiki/${MediawikiCommon}` ],
- [ 'wikisource.org', `wiki/${MediawikiCommon}` ],
- [ 'wikibooks.org', `wiki/Special:RandomInCategory/Book:Wikibooks_Stacks/Books` ],
- [ 'wiktionary.org', `wiki/${MediawikiCommon}` ],
- // Cutting Room Floor
- [ 'tcrf.net', MediawikiRootpageCommon ],
- // 萌百!
- [ 'moegirl.org.cn', MediawikiCommon ],
- // Fandom
- [ 'fandom.com', `wiki/${MediawikiRootpageCommon}` ],
- // Arch Linux wiki
- [ 'wiki.archlinux.org', `index.php/${MediawikiCommon}` ],
- // Debian wiki
- [ 'wiki.debian.org', MoinMoinCommon ],
- // Rosetta Code
- [ 'www.rosettacode.org', `wiki/${MediawikiCommon}` ],
- // The esoteric programming languages wiki
- [ 'esolangs.org', `wiki/${MediawikiCommon}` ],
- // WikiHow sites
- [ 'wikihow.com', WikiHowCommon ],
- [ 'wikihow.pet', WikiHowCommon ],
- // Officially the Unofficial Elder Scrolls Pages
- [ 'uesp.net', `wiki/${MediawikiCommon}` ],
- // Million Karts
- [ 'thwiki.cc', MediawikiCommon ],
- ]);
- // Main
- (function() {
- 'use strict';
- // Navigate to the `location` of current site.
- const navigate_to = ( location ) => {
- window.location.href = new URL( window.location.href ).origin + '/' + location;
- };
- // Get the rule associated with current site.
- const get_rule = () => {
- let domain = new URL( window.location.href ).host;
- let rule = '';
- for (;;) {
- rule = RULES.get(domain);
- if ( rule === undefined ) {
- // If no rules were found for current domain,
- // try matching 1 level upper instead.
- if ( ! validated_domain(domain) ) {
- return null;
- }
- // truncate one level of subdomain
- domain = domain.substring( domain.indexOf('.') + 1 );
- } else {
- // Otherwise just return the matched rule.
- return rule;
- }
- }
- };
- // There must be at least 2 dots in a valid domain name.
- const validated_domain = ( domain ) => {
- return ( (domain.match(/\./g) || []).length >= 2 );
- };
- // make codes clearer
- const main = () => {
- const location = get_rule();
- switch ( location ) {
- case null:
- console.log( 'No rules for current site!' );
- break;
- default:
- navigate_to( location );
- break;
- }
- };
- // ...when press that key.
- document.addEventListener('keydown', ( event ) => {
- if ( event.code === THAT_KEY )
- main();
- });
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址