Greasy Fork is available in English.

status setzen mit h

wenn man h drückt, wird der status auf hand heben gesetzt, bzw zurückgesetzt; funzt auf deutsch und englisch

// ==UserScript==
// @name         status setzen mit h
// @namespace    blablabla
// @version      69.69.69.69
// @description  wenn man h drückt, wird der status auf hand heben gesetzt, bzw zurückgesetzt; funzt auf deutsch und englisch
// @author       matze
// @match        https://*.videoconference.iserv.eu/*
// @grant        none
// ==/UserScript==

alert('Update: jetzt kann man sich mit g oder m muten/unmuten. sorra falls du das zweimal siehst')

//checkt welchen index das Hand heben in der span tag liste hat
function getRaise(){

    let spanTags = document.getElementsByTagName('span')

    let raiseIndex;

    for(let i = 0; i<spanTags.length;i++){
        if(spanTags[i].innerHTML.includes('Raise') || spanTags[i].innerHTML.includes('Hand heben')){
            raiseIndex = i
            break;
        }
    }
    return raiseIndex
}

//checkt welchen index der name bzw das (Sie) dahinter in der i tag liste hat
function getYou(){

    let youIndex;

    let iTags = document.getElementsByTagName('i')

    for(let i = 0; i<iTags.length;i++){
        if(iTags[i].innerHTML.includes('You') || iTags[i].innerHTML.includes('Sie') || iTags[i].innerHTML.includes('Du')){
            youIndex = i
            break;
        }
    }
    return youIndex;
}

//guckt welchen index das status zurücksetzen in der span tag liste hat
function getClear(){

    let clearIndex;

    let spanTags = document.getElementsByTagName('span')

    for(let i = 0; i<spanTags.length;i++){
        if(spanTags[i].innerHTML.includes('Clear status') || spanTags[i].innerHTML.includes('Status zurücksetzen')){
            clearIndex = i
            break;
        }
    }
    return clearIndex;
}

//guckt welchen index das status setzen in der span tag liste hat
function getSet(){

    let setIndex

    let spanTags = document.getElementsByTagName('span')

    for(let i = 0; i<spanTags.length;i++){
        if(spanTags[i].innerHTML.includes('Set status') || spanTags[i].innerHTML.includes('Status setzen')){
            setIndex = i
            break;
        }
    }
    return setIndex
}

function setStatus(){
    //klickt den eigenen namen
    document.getElementsByTagName('i')[getYou()].click()
    //klickt auf status setzen
    document.getElementsByTagName('span')[getSet()].click()
    //klickt auf hand heben
    document.getElementsByTagName('span')[getRaise()].click()
}

//guckt ob ein status aktiv ist
function getIfStatusActive(){

    let statusActive

    if(getClear()){
        statusActive = true
    }

    return statusActive
}

//set den status zurück
function clearStatus(){

    document.getElementsByTagName('span')[getClear()].click()
}

window.addEventListener('keydown', function(e){

    //verhindert dass der status auch geändert wird wenn man in den chat schreibt
    if (document.activeElement.type == 'text' || document.activeElement.type == 'password' || document.activeElement.type == 'textarea') {
        return;
    }

// falls h gedrückt wird
    else if(e.keyCode == 72){
        //falls es einen status gibt, setze ihn zurück
        if(getIfStatusActive()){
            clearStatus()
        }else{
            // ansonsten setze den status (aus raise / hand heben)
            setStatus()
        }
    }else if(e.keyCode == 71 || e.keyCode == 77){
    let muteButton = document.getElementsByClassName('icon--2q1XXw icon-bbb-unmute')[0] || document.getElementsByClassName('icon--2q1XXw icon-bbb-mute')[0]
    muteButton.click()
    }
})