Slack automatic redirect (open with browser)

automatically use Slack in browser (web version)

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

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

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==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
}