您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Clicks on "Block" and "Maybe later" buttons
当前为
// ==UserScript== // @name x.com autoBtn // @namespace http://tampermonkey.net/ // @version 0.2.1 // @description Clicks on "Block" and "Maybe later" buttons // @author CiNoP // @license GPL-3.0-only // @match https://x.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=x.com // @grant none // ==/UserScript== /* jshint esversion: 11 */ /* jshint asi: true */ (() => { let blockProcessButtonClicked = false let blockProcessConfirmButtonClicked = false function clickBlockButtonIfExists() { if (blockProcessButtonClicked) return const blockButton = document.querySelector('div[data-testid="block"]') const ruBlockButton = document.querySelector('div[data-testid="В черный список"]') if (blockButton || ruBlockButton) { console.log('Кнопка блокировки найдена, ожидаем подтверждения...') ;(blockButton || ruBlockButton).addEventListener('click', () => { blockProcessButtonClicked = true observeConfirmButton() }) } } function clickConfirmButtonIfExists() { const confirmButton = Array.from(document.querySelectorAll('button[data-testid="confirmationSheetConfirm"]')).find(button => button.textContent.includes('В черный список') || button.textContent.includes('Block') ) if (confirmButton) { console.log('Кнопка подтверждения найдена, кликаю...') confirmButton.click() blockProcessConfirmButtonClicked = true setTimeout(() => { blockProcessButtonClicked = false blockProcessConfirmButtonClicked = false }, 500) } } function observeConfirmButton() { const confirmObserver = new MutationObserver(() => { clickConfirmButtonIfExists() }) confirmObserver.observe(document.body, { childList: true, subtree: true }) } const blockObserver = new MutationObserver(() => { clickBlockButtonIfExists() }) const blockObserverConfig = { childList: true, subtree: true, attributes: false } blockObserver.observe(document.body, blockObserverConfig) clickBlockButtonIfExists() })(); (() => { let forYouButtonClicked = false function clickForYouButtonIfExists() { if (forYouButtonClicked) return const forYouButton = Array.from(document.querySelectorAll('a[role="tab"]')).find(el => el.textContent.trim() === "Для вас" || el.textContent.trim() === "For you" ) if (forYouButton) { const buttonText = forYouButton.textContent.trim() === "Для вас" ? "Не сейчас" : "Maybe later" const targetButton = Array.from(document.querySelectorAll('button')).find( btn => btn.textContent.trim() === buttonText ) if (targetButton) { console.log(`Кнопка "${buttonText}" найдена, кликаю...`) targetButton.click() forYouButtonClicked = true setTimeout(() => { forYouButtonClicked = false }, 500) } } } const forYouObserver = new MutationObserver(mutationsList => { for (const mutation of mutationsList) { if (mutation.type === 'childList' || mutation.type === 'attributes') { clickForYouButtonIfExists() } } }) const forYouObserverConfig = { childList: true, subtree: true, attributes: false } forYouObserver.observe(document.body, forYouObserverConfig) clickForYouButtonIfExists() })()