Auto Refresh Twitter (X) Timeline

Automatically refreshes the Twitter (X) timeline every 5 seconds without refreshing the tab.

目前為 2023-10-28 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name            Auto Refresh Twitter (X) Timeline
// @namespace       https://gist.github.com/4lrick/bedb39b069be0e4c94dc20214137c9f5
// @version         1.9
// @description     Automatically refreshes the Twitter (X) timeline every 5 seconds without refreshing the tab.
// @description:fr  Actualise automatiquement la timeline Twitter (X) toutes les 5 secondes sans rafraîchir l'onglet.
// @description:es  Refresca automáticamente el timeline de Twitter (X) cada 5 segundos sin refrescar la pestaña.
// @description:de  Aktualisiert automatisch die Twitter (X) Timeline alle 5 Sekunden ohne das Tab neu zu laden.
// @description:it  Aggiorna automaticamente la timeline di Twitter (X) ogni 5 secondi senza aggiornare la scheda.
// @description:zh  在不刷新标签页的情况下, 每5秒自动刷新Twitter(X)时间轴。
// @author          4lrick
// @match           https://twitter.com/*
// @match           https://x.com/*
// @icon            https://www.google.com/s2/favicons?sz=64&domain=twitter.com
// @grant           none
// @license         GPL-3.0-only
// ==/UserScript==

(function() {
    'use strict';

    const refreshIntervalInSeconds = 5;

    function isAtTopOfPage() {
        return window.scrollY <= 120;
    }

    function refreshTimeline() {
        if (window.location.href.startsWith('https://twitter.com/home')) {
            if (isAtTopOfPage()) {
                const refreshButton = document.querySelector('[aria-label="X"]');
                if (refreshButton) {
                    refreshButton.click();
                }
            }
        }
    }
    setInterval(refreshTimeline, refreshIntervalInSeconds * 1000);
})();