DeViantHack

Blocking ads and popup on Deviantart

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name     DeViantHack
// @namespace deviantHack_1764648480613
// @version  1
// @grant    none
// @author 	 LuaMaria (GreasyFork Version)
// @include	 *://www.deviantart*
// @description Blocking ads and popup on Deviantart
// @run-at 	 document-end
// @icon			https://st.deviantart.net/eclipse/icons/da_favicon_v2.ico
// @license   GNU General Public License v3.0
// ==/UserScript==

const w = window;
const d = document;
const this_url = w.location.href;
const this_hostname = w.location.hostname;
const url_path = w.location.pathname;
const body = d.body;

function id(str){
 	return d.getElementById(str); 
}

function s(str){
	return d.querySelector(str);  
}

function sa(str){
	return d.querySelectorAll(str);  
}

//body.style.visibility = 'hidden';

//timeout
setTimeout( () => {
  
  //body.style.visibility = 'visible';
	const ad_pp = s('dialog');
	console.log('ads_banner:', ad_pp);
  ad_pp.close();
  s('button[aria-label="Close"]').click();
  
  //replace links
	const banner = sa('a[href]');
  banner.forEach( link => {
  	//console.log(link.href);
    if( link.href.includes('core') ){
     	link.setAttribute('style', "display: none;"); 
    }
  });
  
  //replace images
  const img_banner = sa('img[alt="Banner"]');
  img_banner.forEach( img => {
  	img.style.display = 'none';
  });
  
  //replace aside
  const img_aside = sa('aside');
  img_aside.forEach( as => {
  	as.style.display = 'none';
  });
  

//end_timeout
}, 1000);


function blast_root(){
  const evil = sa('iframe[scrolling="no"]');  
  evil.forEach( i => {
 		console.log('root:', i );
  	const limbo = "https://media.tenor.com/e71bz32B3AcAAAAi/cute-cats.gif";
  	i.src = limbo;
  });
                     
}
                     
                     
const root_ad = setTimeout(blast_root, 2000);
const root_ad1 = setTimeout(blast_root, 3000);
const root_ad2 = setTimeout(blast_root, 7000);


const targetNode = document.body;


const callback = function(mutationsList) {
  mutationsList.forEach(mutation => {
    if (mutation.type === 'childList') {
      console.warn('Body content has changed!', mutation);
    }else{
     console.log(mutation); 
    }
  });
};


//alert('Done');