NiTwit

Button to toggle between Twitter and a custom domain

目前為 2023-07-26 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==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;
    });
})();