DGG - Add close stream button

2024-10-03, tfw you learn javashit to do Jaydr's job

Per 05-03-2025. Zie de nieuwste versie.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name        DGG - Add close stream button
// @namespace   Jaydr do your job
// @match       https://www.destiny.gg/bigscreen
// @match       https://www.destiny.gg/bigscreen*
// @match       https://www.destiny.gg/embed/chat
// @match       https://www.omniliberal.dev/bigscreen
// @match       https://www.omniliberal.dev/bigscreen*
// @match       https://www.omniliberal.dev/embed/chat
// @match       https://www.twitch.tv/destiny
// @grant       none
// @version     0.3
// @author      mif
// @license     MIT
// @description 2024-10-03, tfw you learn javashit to do Jaydr's job
// ==/UserScript==

// idk how to do events so I'm clicking the other buttons
function click_close_embed() {document.getElementById("close-embed-btn").click();}
function click_change_platform() {document.getElementById("change-platform-btn").click();}
function blank_embed_function() {window.location.href = "#twitch/destiny";}

function css_overwrite (cssStr) { // this function injects CSS
    var D               = document;
    var newNode         = D.createElement ('style');
    newNode.textContent = cssStr;

    var targ    = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (newNode);
}

// set a base element to attach to (CINEMA one)
let target_element = document.querySelector('#theater-mode');

// define new buttons to add after CINEMA mode
let custom_close_embed_button = document.createElement("button");
let blank_screen_button = document.createElement("button");
let change_platform_button = document.createElement("button");

// configuring the new buttons

// custom_close_embed_button.id = "close-embed-custom"; // useless
// custom_close_embed_button.style = "color:dedede!important"; // make it distinct
// custom_close_embed_button.style = "color:teal!important"; // make it distinct
custom_close_embed_button.textContent = "✖️ Embed"; // name the button
custom_close_embed_button.title = "Close Embed"; // hover text
custom_close_embed_button.addEventListener("click", click_close_embed, false); // can't copy the initial listner so target the other button

// blank_screen_button to hide forced hosted embeds
blank_screen_button.textContent = "⬛"; // name the button
blank_screen_button.title = "Black screen (using #twitch/destiny)"; // hover text
blank_screen_button.href = "#twitch/destiny";
blank_screen_button.addEventListener("click", blank_embed_function, false);

change_platform_button.textContent = "↔️"; // name the button
change_platform_button.title = "Switch Kick/Youtube (he needs to be live on both)"; // hover text
change_platform_button.addEventListener("click", click_change_platform, false); // can't copy the initial listner so target the other button

// he's not getting unbanned so it's fine to mess with and use this for the blank page
css_overwrite('[src="https://player.twitch.tv/?channel=destiny&parent=www.destiny.gg&parent=stage.destiny.gg"] {display: None;}');

// actually add the buttons after target_element
target_element.textContent = "🎥"; // text too long, make this one shorter also
target_element.after(custom_close_embed_button);
target_element.after(change_platform_button);
target_element.after(blank_screen_button);