Clean Tweet URL

Clean tweet URL

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Clean Tweet URL
// @namespace    https://greatest.deepsurf.us/users/214573
// @version      0.1.1-fox
// @description  Clean tweet URL
// @license      MIT
// @match        *://x.com/*
// @match        *://twitter.com/*
// @match        *://mobile.x.com/*
// @match        *://mobile.twitter.com/*
// @match        *://fxtwitter.com/*
// @match        *://vxtwitter.com/*
// @match        *://fixupx.com/*
// @match        *://foxvx.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=x.com
// @run-at       document-start
// @grant        none
// ==/UserScript==

/* jshint esversion: 11 */

(function () {
  'use strict';

  const isFoxvx = window.location.hostname === 'foxvx.com'; // 好耶狐狸
  const tweet =
    /^(?:|https?:\/\/)(?:|mobile\.)(?:x|twitter|fxtwitter|vxtwitter|fixupx).com\/(\w+|i\/web)\/status\/(\d+)[^\d].+/;

  const isTweet = window.location.href.match(tweet);
  if (isFoxvx) {
    const url = window.location.href.replace('foxvx', 'x');
    setTimeout(() => window.location.replace(url), 3000);
  } else if (isTweet && window.location.search) {
    const url = `https://x.com/${isTweet[1]}/status/${isTweet[2]}`;
    console.debug(`query detected, redirect to: ${url}`);
    window.location.replace(url);
  }
})();