Greasy Fork

Greasy Fork is available in English.

NiTwit

Button to toggle between Twitter and a custom domain

当前为 2023-07-26 提交的版本,查看 最新版本

// ==UserScript==
// @name         NiTwit
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Button to toggle between Twitter and a custom domain
// @author       You
// @match        *://*.twitter.com/*
// @grant        GM_getValue
// @grant        GM_setValue
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    let alternateDomain = GM_getValue('alternateDomain');

    // If no alternate domain has been set, prompt the user to input one, default is 'nitter.net'
    if (!alternateDomain) {
        alternateDomain = prompt('Please enter the alternate domain you want to switch to from twitter.com:', 'nitter.net');

        // If the user provides an alternate domain, save it
        if (alternateDomain) {
            GM_setValue('alternateDomain', alternateDomain);
        }
    }

    // Add the match rule for the alternate domain
    if (alternateDomain) {
        GM_info.scriptHandler.addMetaRule({name: '@match', value: `*://*.${alternateDomain}/*`});
    }

    const url = window.location.href;
    let newUrl = '';

    // Create button
    let btn = document.createElement('button');
    btn.classList.add('toggle');
    btn.textContent = 'Switch';
    btn.style.position = 'fixed';
    btn.style.top = '0';
    btn.style.right = '0';
    btn.style.zIndex = '9999';

    // Add button to page
    document.body.appendChild(btn);

    btn.addEventListener('click', function(){
        if (url.includes('twitter.com')) {
            newUrl = url.replace('twitter.com', alternateDomain);
        } else if (url.includes(alternateDomain)) {
            newUrl = url.replace(alternateDomain, 'twitter.com');
        }
        
        window.location.href = newUrl;
    });
})();