TwitLonger Button

Adds A TwitLonger Button To Twitter.

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

You will need to install an extension such as Tampermonkey to install this 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     					TwitLonger Button
// @version						1.1.1
// @author						Adam J Frost
// @description				    Adds A TwitLonger Button To Twitter.
// @namespace					https://www.tampermonkey.net/
// @include  					https://twitter.com/*
// @license                     GPL-3.0-only
// @grant    					none
// ==/UserScript==

var buttonText = "Long Tweet";
var updateTime = 50;

setInterval(function(){ twitLongerButtonStyle(); }, updateTime);

// Stylesheet
function twitLongerButtonStyle() {
  
  const styleExists = document.querySelector('#twitlonger-stylesheet');
	if (styleExists === null) {
  	// Set Style for button
		var twitLongerButtonStyle = document.createElement('style');
    defaultStylesheet = `
    /* <-- Style for TwitLonger Button --> */
    .create-twitlonger-post-home,
		.create-twitlonger-post-popup {
				background-color: var(--twitlonger-button-color);
        font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;
        font-weight: bold;
        text-decoration: none;
        border: none;
        border-radius: 30px;
        color: #ffffff;
        margin-left: 10px;
        padding: 8px 15px 8px 15px;
        -webkit-transition: 0.3s !important;
        -moz-transition: 0.3s !important;
        -o-transition: 0.3s !important;
        transition: 0.3s !important;
    }
    .create-twitlonger-post-home:hover,
		.create-twitlonger-post-popup:hover {
				background-color: var(--twitlonger-button-hover-color);
        border-color: none;
        cursor: pointer;
    }
    `;
    twitLongerButtonStyle.innerHTML = defaultStylesheet;
		twitLongerButtonStyle.setAttribute("id", "twitlonger-stylesheet");
    document.head.appendChild(twitLongerButtonStyle);
  }
  else { return; }
};

setInterval(function(){ 
  setInterval(function(){
  	if (typeof document.getElementsByClassName('r-urgr8i')[0] !== 'undefined') {
    // Set Blue Style for button
   	twitLongerButtonColor.innerHTML = `
   	/* <-- Blue TwitLonger Button --> */
		:root {
				--twitlonger-button-color: rgb(29, 161, 242);
				--twitlonger-button-hover-color: rgb(26, 145, 218);
		}
    `;
    }
    if (typeof document.getElementsByClassName('r-1vkxrha')[0] !== 'undefined') {
      // Set Yellow Style for button
      twitLongerButtonColor.innerHTML = `
      /* <-- Yellow TwitLonger Button --> */
			:root {
          --twitlonger-button-color: rgb(255, 173, 31);
          --twitlonger-button-hover-color: rgb(230, 156, 28);
			}
      `;
    }
    if (typeof document.getElementsByClassName('r-1dgebii')[0] !== 'undefined') {
      // Set Pink Style for button
      twitLongerButtonColor.innerHTML = `
      /* <-- Pink TwitLonger Button --> */
			:root {
          --twitlonger-button-color: rgb(224, 36, 94);
          --twitlonger-button-hover-color: rgb(202, 32, 85);
			}
      `;
    }
    if (typeof document.getElementsByClassName('r-1qqlz1x')[0] !== 'undefined') {
      // Set Purple Style for button
      twitLongerButtonColor.innerHTML = `
      /* <-- Purple TwitLonger Button --> */
			:root {
          --twitlonger-button-color: rgb(121, 75, 196);
          --twitlonger-button-hover-color: rgb(134, 93, 202);
			}
      `;
    }
    if (typeof document.getElementsByClassName('r-18z3xeu')[0] !== 'undefined') {
      // Set Orange Style for button
      twitLongerButtonColor.innerHTML = `
      /* <-- Orange TwitLonger Button --> */
			:root {
          --twitlonger-button-color: rgb(244, 93, 34);
          --twitlonger-button-hover-color: rgb(220, 84, 31);
			}
      `;
    }
    if (typeof document.getElementsByClassName('r-b5skir')[0] !== 'undefined') {
      // Set Green Style for button
      twitLongerButtonColor.innerHTML = `
      /* <-- Green TwitLonger Button --> */
			:root {
          --twitlonger-button-color: rgb(23, 191, 99);
          --twitlonger-button-hover-color: rgb(21, 172, 89);
			}
      `;
    }
  }, updateTime);
  
  var styleDoesExist = document.querySelector('#twitlonger-btn-color');
	if (styleDoesExist === null) {
    var twitLongerButtonColor = document.createElement('style');
    twitLongerButtonColor.setAttribute("id", "twitlonger-btn-color");
    document.head.appendChild(twitLongerButtonColor);
  }
}, updateTime);

// Create TwitLonger Button (Home Page)
setInterval(function(){ 
	var elementExists = document.getElementsByClassName("create-twitlonger-post-home")[0];
  
  if (elementExists){
  	return;
  }
  
  var newNode = document.createElement('a');
  newNode.classList.add("create-twitlonger-post-home");
  newNode.setAttribute("target", "_blank");
  newNode.setAttribute("href", "https://www.twitlonger.com/post");
  newNode.innerHTML = buttonText; // Creates the button.
  var getElementA = document.querySelector('div[data-testid="tweetButtonInline"]');
  // place new element after the tweetButton element 'Use .before to place afterwards'
  getElementA.after(newNode);
}, updateTime);

// Create TwitLonger Button (Popup)
setInterval(function(){ 
	var elementExists = document.getElementsByClassName("create-twitlonger-post-popup")[0];
  
  if (elementExists){
  	return;
  }
  
  var newNode = document.createElement('a');
  newNode.classList.add("create-twitlonger-post-popup");
  newNode.setAttribute("target", "_blank");
  newNode.setAttribute("href", "https://www.twitlonger.com/post");
  newNode.innerHTML = buttonText; // Creates the button.
  var getElement = document.querySelector('div[data-testid="tweetButton"]');
  // place new element after the tweetButton element 'Use .before to place afterwards'
  getElement.after(newNode);
}, updateTime);