Trying to skip Cyber Monday sale, Black Friday sale, and ads with a "Decline offer" or "Competition started" in them
当前为
// ==UserScript==
// @name Tradingview Skip Ads (Cyber Monday sale and other annoyances)
// @description Trying to skip Cyber Monday sale, Black Friday sale, and ads with a "Decline offer" or "Competition started" in them
// @author Konf
// @namespace https://greasyfork.org/users/424058
// @icon https://www.google.com/s2/favicons?sz=64&domain=tradingview.com
// @version 3.1.0
// @match https://www.tradingview.com/*
// @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js#sha512-wkU3qYWjenbM+t2cmvw2ADRRh4opbOYBjkhrPGHV7M6dcE/TR0oKpoDkWXfUs3HrulI2JFuTQyqPLRih1V54EQ==
// @run-at document-start
// @grant none
// @license MIT
// @noframes
// ==/UserScript==
/* jshint esversion: 8 */
(function() {
'use strict';
(function main() {
if (!document.documentElement) return setTimeout(main);
// Close Cyber Monday popup
document.arrive(
'div.tv-dialog__modal-body',
{ existing: true },
(modal) => {
for (const span of modal.querySelectorAll('span')) {
if (span.innerText === 'Cyber Monday' || span.innerText.includes('Black Friday')) {
modal.querySelector('div.tv-dialog__close').click();
break;
}
}
},
);
// Handle "Decline offer" in GoPro modals
document.arrive(
'div[data-dialog-name="gopro"]',
{ existing: true },
(modal) => {
findAndDeclineOffer(modal);
},
);
document.arrive(
'div[data-dialog-name="gopro-mobile"]',
{ existing: true },
(modal) => {
findAndDeclineOffer(modal);
for (const p of modal.querySelectorAll('p')) {
if (p.innerText === 'Competition started') {
modal.querySelector('button[aria-label="Close"]').click();
break;
}
}
},
);
// Close Black Friday popup
document.arrive(
'div.banner-WnHzIH9Q',
{ existing: true },
(popup) => {
const closeButton = popup.closest('div.tv-dialog__modal-container')?.querySelector('.tv-dialog__close');
if (closeButton) {
closeButton.click();
}
},
);
// utils ----------------------------------------------------------
function findAndDeclineOffer(goProModal) {
for (const span of goProModal.querySelectorAll('span')) {
if (span.innerText === 'Decline offer') {
span.parentElement.click();
break;
}
}
}
// ---------------------------------------------------------- utils
}());
})();