Created
October 7, 2024 07:15
-
-
Save Bananamilk452/bcf6293b9278ea468c9eacdaaba48b6f to your computer and use it in GitHub Desktop.
vxtwitter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Twitter to vxtwitter | |
// @namespace http://tampermonkey.net/ | |
// @version 2.0 | |
// @description Replace `twitter` to `vxtwitter` when sharing links | |
// @author Dinomcworld | |
// @match https://twitter.com/* | |
// @match https://mobile.twitter.com/* | |
// @match https://tweetdeck.twitter.com/* | |
// @match https://x.com/* | |
// @match https://*.x.com/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=twitter.com | |
// @grant none | |
// @license MIT | |
// @downloadURL https://update.greasyfork.org/scripts/482406/Twitter%20to%20vxtwitter.user.js | |
// @updateURL https://update.greasyfork.org/scripts/482406/Twitter%20to%20vxtwitter.meta.js | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
const convertUrl = (url) => { | |
const regex = /^(https?:\/\/)?((?:www\.)?x\.com\/)([\w-]+\/status\/\d+)(\?.*)?$/; | |
return url.replace(regex, 'https://vxtwitter.com/$3'); | |
}; | |
const copyTextToClipboard = async (text) => { | |
try { | |
await navigator.clipboard.writeText(text); | |
console.log('URL converted and copied successfully:', text); | |
} catch (err) { | |
console.error('Failed to copy text: ', err); | |
} | |
}; | |
document.addEventListener('copy', function(e) { | |
const selectedText = window.getSelection().toString().trim(); | |
if (selectedText.includes('x.com')) { | |
e.preventDefault(); | |
const convertedUrl = convertUrl(selectedText); | |
copyTextToClipboard(convertedUrl); | |
} | |
}, true); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment