erweiterung (benachrichtigungen) für das gesehende videos ausblenden oder makieren

zeigt an wie viele nachrichten gelesen und ungelesen sind mit farbauswahl

Tento skript by nemal byť nainštalovaný priamo. Je to knižnica pre ďalšie skripty, ktorú by mali používať cez meta príkaz // @require https://update.greasyfork.org/scripts/488550/1385283/erweiterung%20%28benachrichtigungen%29%20f%C3%BCr%20das%20%20gesehende%20videos%20ausblenden%20oder%20makieren.js

// ==UserScript==
// @name         erweiterung (benachrichtigungen für das  gesehende videos ausblenden oder makieren
// @namespace    https://basti1012.bplaced.net
// @version      1.3
// @description  zeigt an wie viele nachrichten gelesen und ungelesen sind mit farbauswahl
// @author       basti1012
// @allFrames           true
// @run-at document-end
// @license MIT License
// @noframes
// @icon        https://basti1012.de/images/favicon.png
// ==/UserScript==

if(!console_log_value){
var console_log_value = [];
}
var start1 = performance.now();
if(!array_localsdtorage){
    var array_localsdtorage=[];
}
if(!erweiterungs_einstellungs_array){
var erweiterungs_einstellungs_array=[];
}
var console_benachrichtigung='________';
var console_benachrichtigung_per='________';

array_localsdtorage.push(["srollen_hoehe_in_px_benachrichtungen", 50000],["reloaden_nach_millisekunden_benachrichtungen", 60000],["nicht_gesehene_benachtichtigung_color","#ff0000"],["gesehene_benachtichtigung_color","##00ff00"],["erweiterung_benachrichtigung_aktivieren",false],["sound_benachrichtungen",true],["sound_link_benachrichtungen",""]);

function benachrichtigungen_auslesen(){
    var var_menge_all_post;
    var var_menge_unread_post;
    if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')=='true'){
        
        
                            const styleTag12 = document.createElement('style');
            styleTag12.innerHTML = `
         div#items .style-scope.yt-multi-page-menu-section-renderer {

                background:${localStorage.getItem('gesehene_benachtichtigung_color')};

            }
         div#items .style-scope.yt-multi-page-menu-section-renderer.unread {

                background:${localStorage.getItem('nicht_gesehene_benachtichtigung_color')};

            }`;
            document.head.appendChild(styleTag12);
        
        
        
        
        /*
        function isValidURL(string){
            var res = string.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
            return (res !== null)
        }
        if(localStorage.getItem('sound_benachrichtungen')=='true'){
            var checkurl = localStorage.getItem('sound_link_benachrichtungen');
            var be_sound = document.createElement("audio");
            if(localStorage.getItem('sound_link_benachrichtungen')=='' || checkurl.length<=11 || isValidURL(checkurl)!=true){
                 be_sound.src = "https://basti1012.bplaced.net/media/1.mp3";
                 be_sound.type = "audio/ogg";
                 be_sound.autoplay = "true";
            }else{
                be_sound.src=checkurl;
            }
        }
        var bo = document.getElementsByTagName("body")[0];
        bo.appendChild(be_sound);
        var gg=0;
        var benachrichtigung_interval=setInterval(function(){
            gg++;
            if(document.querySelector('#buttons > .style-scope ~ .style-scope .undefined')){// && document.querySelector('ytd-notification-topbar-button-renderer')){
                //console.log('%cGlocke gefunden','color:green');
				console_benachrichtigung='Glocke gefunden :';
                console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                console_log_value.push({
                    name: console_benachrichtigung,
                    wert: console_benachrichtigung_per
                });
                if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                    console.table(console_log_value);
                }
                clearInterval(benachrichtigung_interval);
                var startinterval;
                var erstclick=false;
                var new_message_helper;
                function benachrichtigungs_unction_interval(){
                    if(erstclick==false){
                        if(document.querySelector('#buttons > .style-scope ~ .style-scope .undefined')){
                            document.querySelector('#buttons > .style-scope ~ .style-scope .undefined').click();
                            document.querySelector('#contentWrapper').style.display='none';
                        // setTimeout(function(){
                            document.querySelector('#contentWrapper #container').scrollBy(0,localStorage.getItem('srollen_hoehe_in_px_benachrichtungen'));

                            document.querySelector('#contentWrapper').style.display='block';
                            document.querySelector('#buttons > .style-scope ~ .style-scope .undefined').click();
                        // },444);
                            clearInterval(startinterval);
                            erstclick=true;
                        }else{
                            return true;
                        }
                   }

                   var nn=document.querySelector('ytd-notification-topbar-button-renderer');
                   nn.click();

                   document.querySelector('#contentWrapper').style.display='none';
                   document.querySelector('#contentWrapper #container').scrollBy(0,localStorage.getItem('srollen_hoehe_in_px_benachrichtungen'));

                   var_menge_all_post=document.querySelectorAll('#contentWrapper #container #sections #items ytd-notification-renderer').length;
                   //  console.log('%cGlocke insgesamt '+var_menge_all_post+' erhalten','color:orange');
				   console_benachrichtigung='Glocke insgesamt '+var_menge_all_post+' erhalten';
                   console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                   console_log_value.push({
                       name: console_benachrichtigung,
                       wert: console_benachrichtigung_per
                  });
                  if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                      console.table(console_log_value);
                  }
                   document.querySelectorAll('#contentWrapper #container #sections #items ytd-notification-renderer:not(.unread)').forEach(function(ba){
                       ba.style.background='rgba(255,0,0,0.5)';
                   });

                   var_menge_unread_post=document.querySelectorAll('#contentWrapper #container #sections #items .unread').length;
                  // console.log('%cGlocke nachrichten, ungelesene Nachrichten '+var_menge_unread_post+' / '+var_menge_all_post,'color:green');
				   console_benachrichtigung='Glocke nachrichten, ungelesene Nachrichten '+var_menge_unread_post+' / '+var_menge_all_post+'';
                   console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                   console_log_value.push({
                       name: console_benachrichtigung,
                       wert: console_benachrichtigung_per
                   });
                   if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                       console.table(console_log_value);
                   }
                   document.querySelectorAll('#contentWrapper #container #sections #items .unread').forEach(function(ba1){
                       ba1.style.background='rgba(0,255,0,0.5)';
                   });

                   //console.log('%cGlocke nachrichten '+var_menge_unread_post,'color:green');
				   console_benachrichtigung='Glocke nachrichten '+var_menge_unread_post+'';
                   console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                   console_log_value.push({
                       name: console_benachrichtigung,
                       wert: console_benachrichtigung_per
                   });
                   if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                       console.table(console_log_value);
                   }
                   var tooltip_var=document.querySelector('ytd-notification-topbar-button-renderer #tooltip');
                   tooltip_var.innerHTML=`Sie haben noch ${var_menge_unread_post} ungelesene Benachrichtigungen  <br> von insgesamt ${var_menge_all_post}`;
                   document.querySelector('#buttons > .style-scope ~ .style-scope .undefined').innerHTML=`<div title="Sie haben noch ${var_menge_unread_post} ungelesene Benachrichtigungen von insgesamt ${var_menge_all_post}" style="width:16px;background:green;position: absolute;top: -8px;left:8px;padding: 2px;border: 1px solid white;border-radius: 50%;text-align: center;font-size: 9px;font-weight: 200;line-height: 16px;" class="yt-spec-icon-badge-shape__badge">${var_menge_unread_post}/${var_menge_all_post}</div>
                   <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24" viewBox="0 0 24 24" width="24" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;"><path d="M10 20h4c0 1.1-.9 2-2 2s-2-.9-2-2zm10-2.65V19H4v-1.65l2-1.88v-5.15C6 7.4 7.56 5.1 10 4.34v-.38c0-1.42 1.49-2.5 2.99-1.76.65.32 1.01 1.03 1.01 1.76v.39c2.44.75 4 3.06 4 5.98v5.15l2 1.87zm-1 .42-2-1.88v-5.47c0-2.47-1.19-4.36-3.13-5.1-1.26-.53-2.64-.5-3.84.03C8.15 6.11 7 7.99 7 10.42v5.47l-2 1.88V18h14v-.23z"></path></svg>`;
                   document.querySelector('#contentWrapper').style.display='block';

                   nn.click();
                   //console.log(new_message_helper+'  =  '+var_menge_unread_post);
				   console_benachrichtigung=''+new_message_helper+'  =  '+var_menge_unread_post+'';
                   console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                   console_log_value.push({
                       name: console_benachrichtigung,
                       wert: console_benachrichtigung_per
                   });
                   if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                       console.table(console_log_value);
                   }
                   if(new_message_helper!=var_menge_unread_post){
                       nn.style.background='red';
                       nn.style.borderRadius='50%';
                       if(localStorage.getItem('sound_benachrichtungen')=='true'){
                           be_sound.play();
                       }
                       setTimeout(function(){
                           nn.style.background='none';
                       },1000);
                   }
                   new_message_helper=var_menge_unread_post;
                   var benachrichtigungs_timer_counter=localStorage.getItem('reloaden_nach_millisekunden_benachrichtungen');
                   var sekunden_ablauf=benachrichtigungs_timer_counter/1000;
                   var nachrichten_tooltip_info_timer=setInterval(function(){
                       sekunden_ablauf--;
                       tooltip_var.innerHTML=`Sie haben noch ${var_menge_unread_post} ungelesene Benachrichtigungen  <br>
                       von insgesamt ${var_menge_all_post}<br>
                       Nachrichten werden alle ${benachrichtigungs_timer_counter/1000} Sekunden aktualiesiert<br>
                       Nächte aktualisierung in ${sekunden_ablauf} Sekunden`;
                       if(sekunden_ablauf<=0){
                           clearInterval(nachrichten_tooltip_info_timer);
                           benachrichtigungs_unction_interval();
                       }
                   },1000);
               }
               startinterval=setInterval(function(){
                   benachrichtigungs_unction_interval();
               },1000);
           }else{
                //console.log('%cGlocke durch scriptnoch noch nicht gefunden nach '+gg+' versuchen','color:rgba(188,1,1,0.5)');
			   	console_benachrichtigung='Glocke durch scriptnoch noch nicht gefunden nach '+gg+' versuchen';
                console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                console_log_value.push({
                    name: console_benachrichtigung,
                    wert: console_benachrichtigung_per
                });
                if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                    console.table(console_log_value);
                }
           }
           if(gg>=10){
                clearInterval(benachrichtigung_interval);
                //console.log('%cGlocke durch script nach '+gg+' versuchen nicht gefunden, versuche werden abgebrochen durch timeout','color:red');
			   	console_benachrichtigung='Glocke durch script nach '+gg+' versuchen nicht gefunden, versuche werden abgebrochen durch timeout';
                console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
                console_log_value.push({
                    name: console_benachrichtigung,
                    wert: console_benachrichtigung_per
                });
                if(localStorage.getItem('console_log_debugging_aktivieren')=='true'){
                    console.table(console_log_value);
                }
                gg=0;
           }
       },4000);
       */
       return 1;
	}else{
		return 2;
	}
	return 3;
}
var checkboxerweiterungsoundaktiv;
var checkboxerweiterungaktiv;
if(localStorage.getItem('sound_benachrichtungen')=='true'){
    checkboxerweiterungsoundaktiv ='checked="true"';
}else{
    checkboxerweiterungsoundaktiv ='';
}
if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')=='true'){
    checkboxerweiterungaktiv ='checked="true"';
}else{
    checkboxerweiterungaktiv ='';
}
if(!erweiterungs_einstellungs_array){
    erweiterungs_einstellungs_array = [];
}
erweiterungs_einstellungs_array.push(['benachrichtigungen_auslesen',`
<label>
    <label style="display:flex;flex-direction:column">
        <p>
            <strong>Benachrichtigungs tool</strong>
            <input type="checkbox" id="erweiterungbenachrichtigungaktivieren" ${checkboxerweiterungaktiv}>
            <span>?
                <small>
                    Mit dieser funktion werden die benachrichtigen auch mehr als 0 angezeigt.Mit farbauswahl für nicht gelesene und gelesene benachrichtigungen uvm.
                </small>
            </span>
        </p>
    </label>
    <label style="display:flex;flex-direction:column">
	<p>Farbe gesehende Benachrichtigung:
	    <input type="color" value="${localStorage.getItem('gesehene_benachtichtigung_color')}" id="gesehenebenachtichtigungcolor">
		</p>
	</label>
     <label style="display:flex;flex-direction:column"><p>
	 Farbe nicht gesehene Benachrichtigung:
	    <input type="color" value="${localStorage.getItem('nicht_gesehene_benachtichtigung_color')}" id="nichtgesehenebenachtichtigungcolor"></p>
	</label>
     <label style="display:flex;flex-direction:column"><p>
	 Scrolhöhe in der Benachrichtigungen:
        <input type="number" value="${localStorage.getItem('srollen_hoehe_in_px_benachrichtungen')}" id="srollenhoeheinpxbenachrichtungen"></p>
	</label>
    <label style="display:flex;flex-direction:column"><p>
	Reloadzeit des benachrichtigungseingang:
       <input type="number" value="${localStorage.getItem('reloaden_nach_millisekunden_benachrichtungen')}" id="reloadennaxhnachmillisekundenbenachrichtungen"></p>
   </label>
   <label style="display:flex;flex-direction:column"><p>
       Sound bei neue Benachrichtigung:
       <input type="checkbox" id="soundbenachrichtungen" ${checkboxerweiterungsoundaktiv}></p>
   </label>

   <label style="display:flex;flex-direction:column"><p>
   Sound auswahl mit Link
       <input type="text" value="${localStorage.getItem('sound_link_benachrichtungen')}" id="soundlinkbenachrichtungen"></p>
   </label>

   <small>Wenn das Feld bei Soundauswahl Link leer bleibt wird ein Standartton abgespielt,<br>
       Wenn Sie einen Link zur Sounddatei eingeben wird doeser dann abfespielt
   </small>
</label>     <hr style="height:3px;background:black">`]);

if(!array_script){
	var array_script=[];
}
array_script.push([`
var benachrichtigungs_set_localstorage=["erweiterung_benachrichtigung_aktivieren",
"gesehene_benachtichtigung_color",
"nicht_gesehene_benachtichtigung_color",
"srollen_hoehe_in_px_benachrichtungen",
"reloaden_nach_millisekunden_benachrichtungen",
"sound_benachrichtungen",
"sound_link_benachrichtungen"];

var benachrichtigung_ids=["erweiterungbenachrichtigungaktivieren",
"gesehenebenachtichtigungcolor",
"nichtgesehenebenachtichtigungcolor",
"srollenhoeheinpxbenachrichtungen",
"reloadennaxhnachmillisekundenbenachrichtungen",
"soundbenachrichtungen",
"soundlinkbenachrichtungen"];

//console.log(benachrichtigung_ids,benachrichtigung_ids.length);
//console.log(benachrichtigungs_set_localstorage,benachrichtigungs_set_localstorage.length)
for(let benachrichtigungsplus=0;benachrichtigungsplus<=benachrichtigung_ids.length-1;benachrichtigungsplus++){

//console.log(benachrichtigungsplus,benachrichtigung_ids[benachrichtigungsplus]);
    var was_be_einstellung_var=document.getElementById(benachrichtigung_ids[benachrichtigungsplus]);
//    console.log(was_be_einstellung_var);
    was_be_einstellung_var.addEventListener('click',function(j,index){
//console.log(benachrichtigungs_set_localstorage,benachrichtigungsplus,j,index)
    if(j.target.type=='checkbox'){
	    if(j.target.checked==true){
		    localStorage.setItem(benachrichtigungs_set_localstorage[benachrichtigungsplus],true);
	    }else{
		    localStorage.setItem(benachrichtigungs_set_localstorage[benachrichtigungsplus],false);
	    }
     //   console.log(j.target.checked+' save')
    }else{
	    localStorage.setItem(benachrichtigungs_set_localstorage[benachrichtigungsplus],j.target.value);
     //   console.log(j.target.value+' save')
    }
    })
}
`]);
if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')){
	    console_benachrichtigung='________';
        console_benachrichtigung_per='________';
    var be_func=benachrichtigungen_auslesen();
    if(be_func==1){
        //console.log('%cBenachrichtigungen  aktiv: ' + (performance.now() - start1) + ' ms.','color:green');
		 console_benachrichtigung='Benachrichtigungen  aktiv:';
         console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
    }else if(be_func==2){
        //console.log('%cbenachrichtigungen deaktiviert: '+ (performance.now() - start1) + ' ms.','color:red');
		 console_benachrichtigung='benachrichtigungen deaktiviert:';
         console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
    }else if(be_func==3){
        //console.log('%cbenachrichtigungen functin error : '+ (performance.now() - start1) + ' ms.','color:red');
		 console_benachrichtigung='benachrichtigungen functin error :';
         console_benachrichtigung_per=''+(performance.now() - start1) + ' ms.';
    }
}
        console_log_value.push({
            name: console_benachrichtigung,
            wert: console_benachrichtigung_per
        });