// ==UserScript==
// @name erweiterung (benachrichtigungen für das gesehende videos ausblenden oder makieren
// @namespace https://basti1012.bplaced.net
// @version 1.2
// @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==
var start1 = performance.now();
if(!array_localsdtorage){
var array_localsdtorage=[];
}
if(!erweiterungs_einstellungs_array){
var erweiterungs_einstellungs_array=[];
}
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(){
if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')=='true'){
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');
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');
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');
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');
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);
if(new_message_helper!=var_menge_unread_post){
nn.style.background='red';
nn.style.borderRadius='50%';
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{
//log('error','color:darkred',e+' Zeile 915 checkForjsfinisch')
console.log('%cGlocke durch scriptnoch noch nicht gefunden nach '+gg+' versuchen','color:rgba(188,1,1,0.5)');
}
if(gg>=10){
clearInterval(benachrichtigung_interval);
//log('error','color:darkred',e+' Zeile 915 checkForjsfinisch')
console.log('%cGlocke durch scriptnoch nicht gefunden nach '+gg+' versuchen, versuche werden jetzt abgevrochen durch timeout','color:red');
gg=0;
}
},4000);
return 1;
}else{
return 2;
}
return 3;
}
if(localStorage.getItem('sound_benachrichtungen')=='true'){
var checkboxerweiterungsoundaktiv ='checked="true"';
}else{
var checkboxerweiterungsoundaktiv ='';
}
if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')=='true'){
var checkboxerweiterungaktiv ='checked="true"';
}else{
var checkboxerweiterungaktiv ='';
}
if(!erweiterungs_einstellungs_array){
var 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="eerweiterungbenachrichtigungaktivieren" ${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>
<script>
setTimeout(function(){
var benachrichtigung_ids=["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 benachrichtigungs_set_localstorage=["erweiterungbenachrichtigungaktivieren",
"gesehenebenachtichtigungcolor",
"nichtgesehenebenachtichtigungcolor",
"srollenhoeheinpxbenachrichtungen",
"reloadennaxhnachmillisekundenbenachrichtungen",
"soundbenachrichtungen",
"soundlinkbenachrichtungen"];
console.log(benachrichtigung_ids,benachrichtigung_ids.length);
console.log(benachrichtigungs_set_localstorage,benachrichtigungs_set_localstorage.length)
for(var 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);
if(was_be_einstellungen_var.type=='checkbox'){
if(was_be_einstellung_var==true){
localstorage.setIten(benachrichtigungs_set_localstorage[benachrichtigungsplus],true);
}else{
localstorage.setIten(benachrichtigungs_set_localstorage[benachrichtigungsplus],false);
}
}else{
localstorage.setIten(benachrichtigungs_set_localstorage[benachrichtigungsplus],was_be_einstellungen_var.value);
}
}</script>`]);
if(localStorage.getItem('erweiterung_benachrichtigung_aktivieren')=='true'){
var be_func=benachrichtigungen_auslesen()
if(be_func==1){
console.log('%cBenachrichtigungen aktiv: ' + (performance.now() - start1) + ' ms.','color:green');
}else if(be_func==2){
console.log('%cbenachrichtigungen deaktiviert: '+ (performance.now() - start1) + ' ms.','color:red');
}else if(be_func==3){
console.log('%cbenachrichtigungen functin error : '+ (performance.now() - start1) + ' ms.','color:red');
}
}