tinyurl.com - URL shorten button

Add a URL shorten button to the bottom left corner. It will create a new window for the shortened URL of tinyurl

Versión del día 2/4/2022. Echa un vistazo a la versión más reciente.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name				tinyurl.com - URL shorten button
// @name:zh-TW			tinyurl.com 縮短網址按鈕
// @name:zh-CN			tinyurl.com 缩短网址按钮
// @description			Add a URL shorten button to the bottom left corner. It will create a new window for the shortened URL of tinyurl
// @description:zh-TW	在頁面左下角設置一個縮短網址的按鈕,這會開個新視窗來檢視 tinyurl 的縮址結果
// @description:zh-CN	在页面左下角设置一个缩短网址的按钮,这会开个新视窗来查看 tinyurl 的缩址结果
// @namespace			https://greasyfork.org/zh-TW/users/393133-evan-tseng
// @version				0.25
// @author				Evan Tseng
// @run-at				document-start
// @include				*://*
// @grant				none
// @license				MIT
// ==/UserScript==

(function() {
	'use strict';
	if(location.hostname == "tinyurl.com") {
		var url = new URL(location.href);
		if(url.searchParams.get("triggerBy") == "shortenButton") {
			var tu = document.body.innerText;
			document.body.innerHTML = "";
			if(tu.indexOf("https://tinyurl.com/") == 0) {
				document.write(`<style>
body { text-align:center; padding:3mm 0; margin:0; } #sUrl,#ccBtn { font-size:12pt; } #sUrl { width:90%; text-align:center; margin-bottom:1mm; }
#sUrl { color:#000; background:#ddd; border:1px inset #eee; border-radius:1mm }
#ccBtn { color:#000; background:#ddd; border:1px solid #888; border-radius:2mm; cursor:pointer }
input, button { outline:none }
input:focus, button:focus { box-shadow:0 0 1mm 1px #08f }
@media (prefers-color-scheme: light) {
	body { background:linear-gradient(90deg,#ccc 0%,#ddd 50%,#ccc 100%) }
	#sUrl { color:#222; background:#eee; border:1px inset #eee }
	#ccBtn { color:#111; background:#eee; border:1px solid #888 }
	#ccBtn:hover { filter:brightness(1.2) }
	#ccBtn:active { filter:brightness(.9) }
}
@media (prefers-color-scheme: dark) {
	body { background:linear-gradient(90deg,#333 0%,#555 50%,#333 100%); filter:brightness(.7) }
	#sUrl { color:#fff; background:#333; border:1px inset #333 }
	#ccBtn { color:#fff; background:#333; border:1px solid #222 }
	#ccBtn:hover { filter:brightness(1.5) }
	#ccBtn:active { filter:brightness(.75) }
}
</style>`);
				document.write('<div><input id="sUrl" value="' + tu + '" readonly/><br/><button id="ccBtn" onclick="copyUrl()">Copy &amp; Close</button></div>');
				document.write(`<script>
function copyUrl() {
	let txtBox = document.querySelector("#sUrl");
	txtBox.focus();
	txtBox.select();
	document.execCommand("copy");
	window.close();
}
document.querySelector("#ccBtn").focus();
</script>`);
			}
			else {
				document.write('<style> body { font:400 12pt sans-serif; color:#eee; background:#333; } </style>');
				document.write('<p>Please logout your TinyURL account.<br/>Try using the shorten button script as anonymous.</p>');
			}
		}
	}
	else
	{
		if(window.self === window.top) {
			var addTinyButton = (function() {
				setTimeout(function(){
					const windowWidth = 300,
						  windowHeight = 110;
					let strWindowFeatures = 'width=' + windowWidth + ',height=' + windowHeight + ',left=' + ((screen.width - windowWidth) / 2) + ',top=' + ((screen.height - windowHeight) / 3) + ',menubar=no,toolbar=no,location=no,status=no',
						cssStyle = document.createElement('style'),
						css = `
.__shorten_wrap__ { position:fixed; bottom:22mm; left:-.7em; display:block; width:0!important; height:0!important; padding:0!important; margin:0!important; opacity:.5; z-index:2147483646; transition:.8s .1s }
.__shorten_wrap__:hover { left:-.2em; opacity:1; transition:.2s }
.__shorten_btn__ { position:absolute!important; bottom:10px!important; width:4em!important; left:-2.2em!important; font:400 12pt sans-serif!important; width:auto!important; max-width:none!important; color:#334!important; text-shadow:1px -1px rgba(255,255,255,.6); background:linear-gradient(5deg, rgba(170,170,175,.85) 0, rgba(210,210,215,.8) 50%, rgba(170,170,175,.85) 100%)!important; padding:.3em .6em 1em!important; margin:0!important; line-height:1!important; border:1px solid #555!important; border-radius:6px 6px 0 0!important; white-space:nowrap; cursor:pointer!important; transform:rotate(90deg); }
.__shorten_btn__:focus { outline:none }
.__shorten_btn__:hover { background:linear-gradient(5deg, rgba(190,190,190,.95) 0, rgba(230,230,230,.95) 50%, rgba(190,190,190,.95) 100%)!important; border:1px solid rgba(0,0,0,.4)!important; box-shadow:2pt 0 5pt rgba(0,0,0,.5)!important }
.__shorten_btn__:active { color:#cdf!important; text-shadow:-1px 1px #666!important; background:rgba(125,125,133,.8)!important; border-color:rgba(255,255,255,.6)!important; box-shadow:inset 1px 0 4pt rgba(0,0,0,.7)!important; transition:0s!important }
@media not screen { .__shorten_wrap__ { display:none } }`;
					if(cssStyle.styleSheet)	cssStyle.styleSheet.cssText = css;
					else	cssStyle.appendChild(document.createTextNode(css));
					document.querySelector('head').appendChild(cssStyle);

					let shortenWrap = document.createElement('div');
					shortenWrap.setAttribute("id", "tinyurlShortener");
					shortenWrap.setAttribute("class", "__shorten_wrap__");
					document.body.appendChild(shortenWrap);

					let shortenButton = document.createElement('button');
					shortenButton.setAttribute("class", "__shorten_btn__");
					shortenButton.innerText = "TinyURL";
					shortenWrap.appendChild(shortenButton);

					shortenButton.addEventListener("click", function(){
						window.open('https://tinyurl.com/api-create.php?triggerBy=shortenButton&url=' + encodeURIComponent(location.href), "", strWindowFeatures);
					});

				}, 300);
			})();
		}
	}
})();