您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically scrolls down the Twitter(X) bookmarks page. Recommended for use with the 'Twitter Web Exporter' script.
// ==UserScript== // @name Twitter Bookmarks Auto Scroller // @name:zh-CN 推特(X)收藏夹页面自动划屏 // @namespace http://tampermonkey.net/ // @version 0.4 // @description Automatically scrolls down the Twitter(X) bookmarks page. Recommended for use with the 'Twitter Web Exporter' script. // @description:zh-CN 推特(X)收藏夹页面自动划屏(建议搭配 https://greasyfork.org/zh-CN/scripts/492218-twitter-web-exporter 食用) // @author Mashiro Shiina // @license MIT // @match *://twitter.com/i/bookmarks* // @match *://x.com/i/bookmarks* // @match *://mobile.x.com/i/bookmarks* // @grant GM_addStyle // @icon https://www.google.com/s2/favicons?sz=64&domain=twitter.com // ==/UserScript== (function() { 'use strict'; // --- 配置项 --- // 滚动时间间隔(毫秒)。网络慢可适当调大,如 5000。不建议设置太小,容易触发API风控。 const scrollInterval = 3000; // --- 脚本内部变量 --- let autoScrollInterval = null; // 用于存储定时器ID let isScrolling = false; // 标记当前是否正在滚动 // --- 创建控制按钮 --- const controlButton = document.createElement('button'); controlButton.textContent = '开始自动滚动'; document.body.appendChild(controlButton); // --- 按钮点击事件 --- controlButton.addEventListener('click', toggleScrolling); // --- 功能函数 --- function startScrolling() { if (isScrolling) return; // 如果已经在滚动,则不执行任何操作 isScrolling = true; controlButton.textContent = '停止自动滚动'; controlButton.style.backgroundColor = '#dc3545'; // 红色,表示正在运行 console.log('Auto-scrolling started.'); // 先立即执行一次滚动 window.scrollTo(0, document.body.scrollHeight); // 设置定时器,周期性滚动 autoScrollInterval = setInterval(() => { let lastHeight = document.body.scrollHeight; window.scrollTo(0, document.body.scrollHeight); console.log('Auto-scrolling down...'); // 检查是否已到达底部 // 在滚动后等待一小段时间,检查页面高度是否不再变化 setTimeout(() => { if (document.body.scrollHeight === lastHeight && isScrolling) { console.log('Reached the bottom.'); stopScrolling(); // 停止滚动 alert('已到达收藏夹底部,自动滚动已停止。'); } }, 1000); }, scrollInterval); } function stopScrolling() { if (!isScrolling) return; // 如果已停止,则不执行任何操作 isScrolling = false; controlButton.textContent = '开始自动滚动'; controlButton.style.backgroundColor = '#28a745'; // 绿色,表示已停止 clearInterval(autoScrollInterval); autoScrollInterval = null; console.log('Auto-scrolling stopped by user.'); } function toggleScrolling() { if (isScrolling) { stopScrolling(); } else { startScrolling(); } } // --- 按钮样式 --- // 使用 GM_addStyle 来添加CSS样式,确保按钮美观且位置固定 GM_addStyle(` #${controlButton.id = 'scroll-control-button'} { position: fixed; bottom: 25px; right: 25px; z-index: 9999; padding: 10px 18px; font-size: 16px; color: white; background-color: #28a745; /* 初始为绿色 */ border: none; border-radius: 8px; cursor: pointer; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transition: background-color 0.3s, transform 0.1s; } #scroll-control-button:hover { opacity: 0.9; } #scroll-control-button:active { transform: scale(0.95); } `); })();