// ==UserScript== // @name Yandex mail Advertisement Remover // @description Remove advertisement at Yandex mail // @name:ar مزيل إعلانات ياندكس ميل // @description:ar إزالة الإعلانات في ياندكس ميل // @name:bg Премахване на реклами в Yandex Mail // @description:bg Премахване на реклами в Yandex Mail. // @name:cs Odstraňovač reklam v Yandex Mailu // @description:cs Odstraní reklamy v Yandex Mailu // @name:da Yandex Mail Reklamefjerner // @description:da Fjerner reklamer i Yandex Mail // @name:de Yandex Mail Werbeentferner // @description:de Entfernt Werbung in Yandex Mail // @name:el Αφαίρεση διαφημίσεων Yandex Mail // @description:el Αφαιρεί διαφημίσεις στο Yandex Mail // @name:en Yandex Mail Advertisement Remover // @description:en Remove advertisement at Yandex mail // @name:eo Yandex Mail Reklamforigardilo // @description:eo Forigas reklamojn en Yandex Mail // @name:es Eliminador de publicidad de Yandex Mail // @description:es Elimina la publicidad en Yandex Mail // @name:fi Yandex Mail -mainosten poistaja // @description:fi Poistaa mainokset Yandex Mailista // @name:fr Suppresseur de publicité Yandex Mail // @description:fr Supprime la publicité dans Yandex Mail // @name:fr-CA Suppresseur de publicité Yandex Mail // @description:fr-CA Supprime la publicité dans Yandex Mail // @name:he מסיר פרסומות של Yandex Mail // @description:he מסיר פרסומות ב-Yandex Mail // @name:hr Uklanjanje oglasa Yandex Maila // @description:hr Uklanja oglase na Yandex Mailu // @name:hu Yandex Mail hirdetéseltávolító // @description:hu Eltávolítja a hirdetéseket a Yandex Mailben // @name:id Penghilang Iklan Yandex Mail // @description:id Menghilangkan iklan di Yandex Mail // @name:it Rimozione pubblicità Yandex Mail // @description:it Rimuove la pubblicità in Yandex Mail // @name:ja Yandex Mail広告リムーバー // @description:ja Yandex Mailの広告を削除します // @name:ka Yandex Mail-ის რეკლამის ამომშლელი // @description:ka აშორებს რეკლამას Yandex Mail-ში // @name:ko Yandex 메일 광고 제거기 // @description:ko Yandex 메일의 광고를 제거합니다. // @name:nb Yandex Mail Reklamefjerner // @description:nb Fjerner reklame i Yandex Mail // @name:nl Yandex Mail Advertentie Verwijderaar // @description:nl Verwijdert advertenties in Yandex Mail // @name:pl Usuwanie reklam z Yandex Mail // @description:pl Usuwa reklamy w Yandex Mail // @name:pt-BR Removedor de Anúncios do Yandex Mail // @description:pt-BR Remove anúncios no Yandex Mail // @name:ro Eliminator de reclame Yandex Mail // @description:ro Elimină reclamele din Yandex Mail // @name:ru Удаление рекламы в Яндекс Почте // @description:ru Удаляет рекламу в Яндекс Почте // @name:sk Odstraňovač reklám Yandex Mail // @description:sk Odstráni reklamy v Yandex Mail // @name:sr Уклањање реклама са Yандекс Маила // @description:sr Уклања рекламе са Yандекс Маила // @name:sv Yandex Mail Annonsborttagare // @description:sv Tar bort annonser i Yandex Mail // @name:th ตัวลบโฆษณา Yandex Mail // @description:th ลบโฆษณาใน Yandex Mail // @name:tr Yandex Mail Reklam Kaldırıcı // @description:tr Yandex Mail'deki reklamları kaldırır // @name:ug Yandex почта ئېلان ئۆچۈرگۈچ // @description:ug Yandex почта دىكى ئېلاننى ئۆچۈرۋېتىدۇ // @name:uk Видалення реклами в Yandex Mail // @description:uk Видаляє рекламу в Yandex Mail // @name:vi Trình xóa quảng cáo Yandex Mail // @description:vi Xóa quảng cáo trong Yandex Mail // @name:zh Yandex 邮件广告移除器 // @description:zh 移除 Yandex 邮件中的广告 // @name:zh-CN Yandex 邮件广告移除器 // @description:zh-CN 移除 Yandex 邮件中的广告 // @name:zh-HK Yandex 邮件广告移除器 // @description:zh-HK 移除 Yandex 邮件中的广告 // @name:zh-SG Yandex 邮件广告移除器 // @description:zh-SG 移除 Yandex 邮件中的广告 // @name:zh-TW Yandex 邮件广告移除器 // @description:zh-TW 移除 Yandex 邮件中的广告 // @version 0.0.1 // @author aspen138 // @match http*://mail.yandex.ru/* // @match https://mail.yandex.com/* // @grant none // @namespace http://tampermonkey.net/ // @license MIT // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAPVJREFUOBHFULsOgkAQXOCw0uMrjIUfYGOjlS8STXzEzi/xmyz0w7QyiuIMhzm4gqCJcZM9dm9nZocT+Xd46b6Xyin5zscivCqZKBEP/OOHIstQZBjc/Gz1GCJTZN0geRBkaCPAkk5mNUSWwORk0qwAOzqJK0RWJJfn5Y4iI1wFeJTDnZ2NLWz3jW176TrgBDhZN0Q2yHfsUMcYUNiJsgMFQBN/RdwchDZqIjr5Zo36koo8rIoV8AFugVlc0nUsexhq3J2h8DQi5hF5Rsgi2S4pV8REEDHM/KPRUb1uEEonCCWRSiRIHa/ZrPogQ/uFl66G/276AufFGp4pjOgzAAAAAElFTkSuQmCC // @downloadURL https://update.greasyfork.icu/scripts/532778/Yandex%20mail%20Advertisement%20Remover.user.js // @updateURL https://update.greasyfork.icu/scripts/532778/Yandex%20mail%20Advertisement%20Remover.meta.js // ==/UserScript== (function() { 'use strict'; let observer = null; const allowedViewValues = ['notifications', 'labels', 'footer', 'app']; const nonAddKeys = [ "box=fake-head-background-box", "box=toolbar-box", "box=infoline-box", "box=right-box", "box=toolbar-box", "box=advanced-search-box" ]; // Function to hide an element const hideElement = (element) => { if (!element || element.style.display === "none") { return; // Element is already hidden or doesn't exist } // Disconnect the observer to prevent recursion during DOM manipulation if (observer !== null) { observer.disconnect(); observer = null; } element.style.display = 'none'; // Hide the element // Restart the observer if (observer === null) { startObserver(); } }; // Function to process and remove elements const processAndRemoveElements = () => { // 1. Handle elements with data-key attributes starting with "view=" const viewElements = document.querySelectorAll('[data-key^="view="]'); viewElements.forEach(element => { const key = element.dataset['key']; const matches = key && key.match(/^view=([a-z]+)$/); if (!matches) { return; // Skip if the data-key doesn't match the expected pattern } const viewValue = matches[1]; if (allowedViewValues.includes(viewValue)) { return; // Skip elements with allowed view values } hideElement(element); }); // 2. Handle "DisableAdsButton" elements document.querySelectorAll('a[class*="DisableAdsButton"]').forEach(element => { hideElement(element); }); // 3. Remove the next sibling of elements with class 'ns-view-react-left-column' const leftColumn = document.querySelector(".ns-view-react-left-column"); if (leftColumn && leftColumn.nextElementSibling) { leftColumn.nextElementSibling.remove(); } // 4. Remove child elements of '.mail-Layout-Content' that do not have a data-key in nonAddKeys const mailLayoutContent = document.querySelector(".mail-Layout-Content"); if (mailLayoutContent) { for (const element of mailLayoutContent.children) { const dataKey = element.getAttribute("data-key"); if (dataKey && !nonAddKeys.includes(dataKey)) { element.remove(); } } } }; // Function to start the MutationObserver const startObserver = () => { observer = new MutationObserver(() => { processAndRemoveElements(); }); observer.observe(document.body, { childList: true, subtree: true, attributes: true }); }; // Immediately process and remove elements on initial load processAndRemoveElements(); // Start observing the DOM for changes startObserver(); // Set interval to repeatedly process and remove elements (if needed) // setInterval(processAndRemoveElements, 100); // Commented out for now; enable if periodic checks are necessary })();