Youtube Logo - Link to subscriptions feed

Change YouTube logo link to user's subscription feed instead of homepage (only when logged in)

目前为 2017-12-02 提交的版本,查看 最新版本

// ==UserScript==
// @name            Youtube Logo - Link to subscriptions feed
// @namespace       Youtube Logo - Link to subscriptions feed
// @description     Change YouTube logo link to user's subscription feed instead of homepage (only when logged in)
// @version         1.1.7
// @include         /http|https://.*\.youtube\..*/
// @supportURL      https://greasyfork.org/en/scripts/13582/feedback
// @author          aciid
// ==/UserScript==

function checkLogoLoaded(){
    var loopCount = 1;
    var loopInterval = setInterval(function(){
    var LogoElement = document.getElementById("logo").getElementsByTagName("a")[0];
    var UserLoggedIn = document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") != null;
    try {LogoElement.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {}                                                                      // Update special event logo URL - try catch used to suppress error     
    
    //console.info("Searching for logo - Loop: " + loopCount + " LogoElement: " + (LogoElement != null) + " UserLoggedIn: " + UserLoggedIn);
    if((LogoElement != null && UserLoggedIn) || loopCount >= 120){                                                                                                    // Loop to wait up to 60 seconds for YouTube logo
        //LogoElement.href = "/feed/subscriptions";
        LogoElement.addEventListener("click", function(){window.location.href = "/feed/subscriptions";});                                                             // Force page redirection
        clearInterval(loopInterval);                                                                                                                                  // Stop loop
    }
    loopCount++;
    }, 500);                                                                                                                                                          // Loop with 500ms sleep
}

function runScriptOldLogo() {
		var LogoElement = document.getElementById("logo-container");              			                                                                                  // Get logo element
    try {LogoElement.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {}                                                                      // Update special event logo URL - try catch used to suppress error     
    if (document.getElementById("yt-masthead-user") != null
        || document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") != null) {// Check user is logged in (old design)
           LogoElement.href = "/feed/subscriptions";                                                                                                                  // Update logo element URL
    } 
}

console.info("Running Youtube Logo - Link to subscriptions feed");
document.getElementsByTagName("body")[0].addEventListener("yt-navigate-finish", checkLogoLoaded);                                                                      // New youtube design
window.addEventListener("spfdone", runScriptOldLogo);                                                                                                                  // Old youtube design
window.onload = setTimeout(function(){checkLogoLoaded(),runScriptOldLogo();}, 1);                                                                                      // Execute script after page load