View More Twitter Replies

Automatically displays replies hidden behind buttons

当前为 2020-06-02 提交的版本,查看 最新版本

// ==UserScript==
// @name         View More Twitter Replies
// @namespace    jak0723
// @version      1.2
// @description  Automatically displays replies hidden behind buttons
// @author       JAK0723
// @match        http*://*twitter.com/*/status/*
// @license      MIT
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function () {
    'use strict';

    function findAndClick(selector, textContent, observer) {
        for (let elem of document.querySelectorAll(selector)) {
            if (elem.textContent === textContent) {
                elem.click();
                observer.disconnect();
            }
        }
    }

    const viewMoreSelector = "[href*='i/status/'] div span";
    const viewMoreText = "View more replies";
    const showMoreSelector = "[role='button'] div div span";
    const showMoreText = "Show more replies";
    const offensiveSelector = "[role='button'] div span span";
    const offensiveText = "Show";

    const rootNode = document.querySelector("#react-root");
    const config = {childList: true, subtree: true};

    const repliesCallback = function (mutationsList, observer) {
        findAndClick(showMoreSelector, showMoreText, observer);
        findAndClick(offensiveSelector, offensiveText, observer);
    };

    const rootCallback = function (mutationsList, observer) {
        findAndClick(viewMoreSelector, viewMoreText, observer);
        const repliesNode = document.querySelector("[aria-label='Timeline: Conversation']");

        if (repliesNode != null) {
            const repliesObserver = new MutationObserver(repliesCallback);
            repliesObserver.observe(repliesNode, config);
        }
    };

    const rootObserver = new MutationObserver(rootCallback);
    rootObserver.observe(rootNode, config);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址