Inoreader Auto-Load Full Article

Automatically load full content when opening an article in Inoreader

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

// ==UserScript==
// @name         Inoreader Auto-Load Full Article
// @namespace    elddc
// @version      2.0
// @description  Automatically load full content when opening an article in Inoreader
// @author       Elddc
// @match        https://www.inoreader.com/*
// @grant        none
// ==/UserScript==

//----- configure (change as desired) -----
const excludedSources = ["Associated Press"]; // subscriptions to exclude from auto-load
const buttonSelector = ".icon-article_topbar_mobilize_empty"; // modify this if the button class name changes
const sourceSelector = ".article_sub_title a";
//------------------------------------

function loadFullArticle(button) {
    let source = ""; // fallback if there is an error finding the article source
    try {
        source = document.querySelector(".article_sub_title a").innerText.trim();
    } catch (err) {
        console.log("The source selector has changed! Open an issue here to let me know: https://github.com/elddc/inoreader-autoload-full-content/issues");
    }

    console.log(source);
    if (!excludedSources.includes(source)) {
        button.click();
    }
}

function handleNav() {
    if (!window.location.pathname.includes("article/")) {
        return;
    }

    const button = document.querySelector(buttonSelector);
    if (button) {
        loadFullArticle(button);
    }

    const observer = new MutationObserver(() => {
        const button = document.querySelector(buttonSelector);
        if (button) {
            observer.disconnect();
            loadFullArticle(button);
        }
    });
    observer.observe(document.body, { childList: true, subtree: true });
}

handleNav();
window.onpopstate = handleNav;