Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Fck Twitter
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description try to take over the world!
- // @author You
- // @match https://twitter.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- //Prepare the ability to listen to URL-changes. Jeez.
- history.pushState = ( f => function pushState(){
- var ret = f.apply(this, arguments);
- window.dispatchEvent(new Event('pushstate'));
- window.dispatchEvent(new Event('locationchange'));
- return ret;
- })(history.pushState);
- history.replaceState = ( f => function replaceState(){
- var ret = f.apply(this, arguments);
- window.dispatchEvent(new Event('replacestate'));
- window.dispatchEvent(new Event('locationchange'));
- return ret;
- })(history.replaceState);
- function addGlobalStyle(css) {
- var head, style;
- head = document.getElementsByTagName('head')[0];
- if (!head) { console.log("fuckityfuck"); return; }
- style = document.createElement('style');
- style.type = 'text/css';
- style.innerHTML = css;
- head.appendChild(style);
- }
- console.log("attempting to override css.");
- addGlobalStyle('header.r-16y2uox { flex-grow: 0; margin-left: 2em } ');
- //addGlobalStyle('.r-rthrr5 { width: -moz-available; } ');
- addGlobalStyle('.r-1ye8kvj { max-width: 900px !important; }');
- addGlobalStyle('.css-1dbjc4n.r-x572qd.r-1d6w8o1.r-1867qdf.r-1phboty.r-rs99b7.r-1ifxtd0.r-1udh08x {display: none}');
- function forceScrollbar() {
- if (htmlNode.style.overflowY != "scroll") {
- console.log("forcibly fixing the damn scrollbars");
- htmlNode.style.overflowY = "scroll";
- htmlNode.style.overscrollBehaviorY = "none";
- htmlNode.style.fontSize = "15px";
- htmlNode.marginRight = 0;
- }
- }
- const htmlNode = document.getElementsByTagName('html')[0];
- let intCounter = 0;
- const intId = setInterval( () => {
- console.log("interval run: " + intCounter++)
- forceScrollbar();
- if (intCounter > 10) {
- clearInterval(intId);
- setInterval(forceScrollbar, 2000);
- }
- }, 500);
- function switchToNewest() {
- console.log("attempting to switch to newest tweets");
- const headlineClass = "css-4rbku5 css-901oao css-1hf3ou5 r-18jsvk2 r-37j5jr r-adyw6z r-b88u0q r-135wba7 r-bcqeeo r-1vvnge1 r-qvutc0"
- const headline = document.getElementsByClassName(headlineClass)[0];
- //document.getElementsByClassName("css-1dbjc4n r-aqfbo4 r-14lw9ot r-j5o65s r-rull8r r-qklmqi r-gtdqiz r-1gn8etr r-1g40b8q")[0]?.firstChild;
- //console.log("headline:")
- //console.log(headline)
- //console.log(document.getElementsByClassName(headlineClass));
- const openNewestMenuClass = "css-18t94o4 css-1dbjc4n r-1niwhzg r-sdzlij r-1phboty r-rs99b7 r-2yi16 r-1qi8awa r-1ny4l3l r-o7ynqc r-6416eg r-lrvibr";
- const openNewestMenuButton = Array.from(document.getElementsByClassName(openNewestMenuClass))
- .filter((e) => e.attributes['aria-label']?.nodeValue.includes("Timeline") || e.attributes['aria-label']?.nodeValue.includes("Top Tweets"))[0];
- //Get NewestMenu via its surrounding element to determine classname at load
- //console.log(document.getElementsByClassName("css-1dbjc4n r-obd0qt r-1pz39u2 r-1777fci r-15ysp7h r-s8bhmr")[1].children[0].className)
- //console.log(document.getElementsByClassName(openNewestMenuClass))
- const newestClass = "css-901oao r-18jsvk2 r-37j5jr r-a023e6 r-16dba41 r-rjixqe r-bcqeeo r-qvutc0";
- let newestButton = Array.from(document.getElementsByClassName(newestClass))
- .filter((e) => e.textContent?.includes("Tweets"))[0];
- if ((!["Neueste Tweets", "Startseite", "Thread", "Home", "Latest Tweets" ].includes(headline?.textContent) ) || !newestButton?.textContent.includes("Tweets") ) {
- console.log("unexpected contents!");
- console.log("headline:")
- console.log(headline)
- console.log("openMenuBtn:");
- console.log(openNewestMenuButton)
- console.log("newest btn/tab:")
- console.log(newestButton)
- }
- if (headline?.textContent == "Startseite" || headline?.textContent == "Home" || newestButton?.classList.contains("r-majxgm")) {
- console.log("Firing clicks.");
- openNewestMenuButton?.click();
- const goToNewestButton = document.getElementsByClassName("css-1dbjc4n r-1loqt21 r-18u37iz r-1ny4l3l r-ymttw5 r-1yzf0co r-o7ynqc r-6416eg r-13qz1uu")[0];
- if (goToNewestButton) {
- console.log("goToNewestButton: " + goToNewestButton.textContent);
- if (!goToNewestButton.textContent.includes("abheften")){
- goToNewestButton?.click()
- } else {
- openNewestMenuButton?.click();
- }
- } else {
- console.warn("newestButton not found");
- }
- newestButton = Array.from(document.getElementsByClassName(newestClass)).filter((e) => e.textContent?.includes("Tweets"))[0];
- console.log("newestButton: ");
- console.log(newestButton);
- if (newestButton?.textContent !== "Tweets"){
- newestButton?.click();
- }
- } else {
- console.log("Already showing the newest tweets (" + headline?.textContent + " ;" + newestButton?.classList + ")");
- console.log(headline)
- }
- }
- console.log("starting mode-switch timers");
- setTimeout( switchToNewest, 1200);
- //setTimeout( switchToNewest, 10000);
- function handleWindowEvent() {
- console.log("window event fired!");
- setTimeout( switchToNewest, 400);
- setTimeout( switchToNewest, 800);
- }
- window.addEventListener('locationchange', handleWindowEvent)
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement