Enhanced Site Search for Arc Browser (No Shortcut, No Action)

Enables site search for Arc browser; only redirects when shortcuts are used

目前为 2024-12-08 提交的版本。查看 最新版本

// ==UserScript==
// @name         Enhanced Site Search for Arc Browser (No Shortcut, No Action)
// @namespace    http://tampermonkey.net/
// @version      0.7
// @description  Enables site search for Arc browser; only redirects when shortcuts are used
// @author       Your Majesty's Loyal Assistant
// @match        *://*/*
// @grant        none
// @run-at       document-start
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your original search engine shortcuts
    const searchEngines = [
        { shortcut: ':y', url: 'https://www.youtube.com/results?search_query=%s' },
        { shortcut: ':p', url: 'https://pahe.ink/?s=%s' },
        { shortcut: ':m', url: 'https://mkvdrama.org/?s=%s' },
        { shortcut: ':ss', url: 'https://subsource.net/search/%s' },
    ];

    // Parse the query string
    const params = new URLSearchParams(window.location.search);
    const query = params.get('q') || params.get('search_query') || params.get('text');
    if (!query) return;

    // Trim and process query
    const trimmedQuery = query.trim();

    // Match shortcuts with precision
    const engine = searchEngines.find(e => trimmedQuery.startsWith(e.shortcut + ' '));
    const searchQuery = engine ? trimmedQuery.replace(engine.shortcut, '').trim() : null;

    if (engine && searchQuery) {
        // Stop the current page load
        if (window.stop) window.stop();
        document.documentElement.innerHTML = '';

        // Redirect to the target URL
        const redirectUrl = engine.url.replace('%s', encodeURIComponent(searchQuery));
        location.replace(redirectUrl);

        // Prevent further script execution
        throw new Error('REDIRECT_COMPLETE');
    }

    // If no shortcut matched, do nothing and let the browser handle the query normally
})();