Youtube Logo - Link to subscriptions feed

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

目前為 2020-03-14 提交的版本,檢視 最新版本

// ==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.2.5
// @include         *://*.youtube.tld/*
// @supportURL      https://greasyfork.org/en/scripts/13582/feedback
// @author          aciid
// ==/UserScript==
//console.info("Running Youtube Logo - Link to subscriptions feed");

function checkLogo() {
    var loopCount = 1;
    var loop = setInterval(function() {
        var Logo = document.getElementById("logo");
        var LogoContainer = Logo.getElementsByTagName("a")[0];
        var UserLoggedIn = (document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer").length > 0);
        try {Logo.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {}

        //console.info("Searching for logo! - Loop: " + loopCount + " Logo: " + (Logo !== null) + " LogoContainer: " + (LogoContainer !== null) + " UserLoggedIn: " + UserLoggedIn);

        if (Logo !== null && LogoContainer !== null) {
            if (UserLoggedIn) {
                LogoContainer.href = "/feed/subscriptions";
                LogoContainer.addEventListener("click", function() { window.location.href = "/feed/subscriptions"; });
                clearInterval(loop);
            } else {
                try {Logo.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {}
                clearInterval(loop);
            }
        } else if (loopCount >= 120) {
            console.info("Failed to find YouTube Logo fter 60 seconds! Giving up...")
            clearInterval(loop);
        }
        loopCount++;
    }, 500); // Loop twice a second
}

function runScript() {
    var LogoContainer = document.getElementById("logo-container");
    var UserLoggedIn = (document.getElementById("yt-masthead-user") !== null || document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") !== null);
    try {LogoContainer.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {}

    //console.info("Searching for logo-container! - LogoContainer: " + (LogoContainer !== null) + " UserLoggedIn: " + UserLoggedIn);

    if (LogoContainer !== null) {
        if (UserLoggedIn) {
            LogoContainer.href = "/feed/subscriptions";
        }
    } else {
        try {checkLogo();} catch (e) {}
    }
}

//window.onload = setTimeout(function () {runScript();}, 1000);
document.getElementsByTagName("body")[0].addEventListener("yt-navigate-finish", runScript); //Run on navigation event
window.addEventListener("spfdone", runScript); //Run on navigation event
runScript(); //Run at page load