TwitLonger Button

Adds A TwitLonger Button To Twitter.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

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