Slack automatic redirect (open with browser)

automatically use Slack in browser (web version)

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name        Slack automatic redirect (open with browser)
// @namespace   slackwebversion
// @description automatically use Slack in browser (web version)
// @include     https://*.slack.com/*
// @version     1
// @license MIT
// ==/UserScript==
console.log('started script on Slack, title = "', document.title, '"');

const slack_title = "Weiterleitung erfolgt";
const slack_redir = "auch in deinem Browser"; /* "diesen Link auch in deinem Browser öffnen" or "Slack auch in deinem Browser verwenden" */

function redirectFunc() {
    console.log("redirect function started");

    Array.from(document.getElementsByTagName('a')).forEach(link => {
        var txt = link.innerText;
        var uri = link.href;
        console.log("link text=", txt, ", href=", uri);
        if (txt && txt.includes(slack_redir)) {
            console.log("found : URL = ", uri);
            stopped = true; // stop timer while redirecting
            window.location.replace(uri);
            return; /* break; */
        }
    });

    console.log("no link found"); // output this message: if code has reached there, means no appropriate link found (return not working)

}

/* interval timer: https://stackoverflow.com/a/66690340/14776523 */

var i = 0; // counter for the timer
var stopped = false;

function doTimer() {
    if (stopped)
        return;
    console.log("1 second... check", i); // your actual code here, alternatively ...
    redirectFunc(); // ... call an other function here
    if (++i < 15) { // only reset the timer when maximum of 10 times it is fired 
        console.log("reset the timer");
        setTimeout(doTimer, 1000); // reset the timer
    }
    else {
        console.log("timer ended");
    }
}


// check if we are on the startpage
if (document.title.includes(slack_title)) // falls wir auf der Startseite sind
{
    console.log("SLACK startpage detected.");
    setTimeout(doTimer, 1000); // init the first
}