derevnia / VK.com hide advertisment

// ==UserScript==
// @name           VK.com hide advertisment
// @namespace      derevnia
// @author		   vk.com/derevnia
// @description    Скрывает посты с рекламой вконтакте и блоки рекламы (vkontakte) (without jquery)
// @version		   3.1
// @include        *://vk.com/*
// @updateURL	   https://openuserjs.org/install/derevnia/VK.com_hide_advertisment.user.js
// @downloadURL    https://openuserjs.org/install/derevnia/VK.com_hide_advertisment.user.js
// @grant		   none
// ==/UserScript==
window.onload = function () {
//console.debug()
	function getCookie(cday) {// получение cookie
		var matches = document.cookie.match(new RegExp(
			"(?:^|; )" + cday.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
		));
		return matches ? decodeURIComponent(matches[1]) : undefined;
	}
	var count_day_var = getCookie('cday');
	var count_d = parseInt(count_day_var, 10);// сбой cookie
	var count = 0;
	var count_regexp = "<br>";
	function delCookie(name) {// удаление cookie
		document.cookie = name + "=" + "; expires=Thu, 01 Jan 1970 00:00:01 GMT";
	}
	function setCookie(cday) {// установка cookie
		now = new Date();
		var date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59);
		document.cookie = "cday=" + escape(cday) + "; expires=" + date.toUTCString();
	}
	if (count_day_var === undefined || isNaN(count_d) === true) {// сбой cookie
	delCookie('cday');
	setCookie('0');
	count_day_var=0; // del при отладке
	}
	document.getElementById("stl_bg")
		.innerHTML += "<br /><div style='display:inline;padding:0 10px;font-weight:bold;color:#45688e'>Now: <div id='count_ad' style='display:inline'>" + count + "</div></div><br /><div style='display:inline;padding:0 10px;font-weight:bold;color:#45688e'>Today: <div id='count_ad_today' style='display:inline'>" + count_day_var + "</div></div><br /><div id='count_ad_stop' style='display:inline;padding:0 10px;font-weight:bold;color:#f00'></div><div id='count_regexp' style='display:inline;padding:0 10px;font-weight:bold;color:#f00'>" + count_regexp + "</div>";
	var li = document.getElementsByClassName('wall_text');
	var patt = new RegExp('Подробнее в группе|Подписалась на|traffictransferpro|rolhathep|Убедись сам|Оставь заявку|Играть - |Начать играть|Играть <a href|Подробнее здесь|Подробнее на|найдете в группе|Тогда тебе сюда|только здесь:|магазин:|Сделайте ставку|Вулкан Ставк|правила акции|при покупке|Покупай тут|Дарим купон|Перейти в каталог|перейдите по ссылке|Качайте по ссылке|оригинальный дизайн|Смотри ответ|Просмотреть каталог|невероятным ценам|получите скидку|Регистрация|Зарегистрироваться|Купить выгодно|Прими участие|Хoчешь тaк же|Узнайте здесь|Узнать можно здесь|Стать частью легенды:|получи скидку|Узнайте больше|пepeйди по этoй cсылке|Начни игру|Выбить ИГРУ|Присоединяйтесь|пройти тест|Online-магазин|Наш магазин|Интернет-магазин|скидка -|Нажмите и получите|wargaming|blackdesert|World Of Tanks|Доступные цены|цены:|Доставка по всей России|Оплата при получении|#TuborgColors|iqOption|iq Option|способ заработка|распродажа|принять участие|Успей купить|Купить -|заходи на сайт|Наш сайт|Посетите наш сайт|Узнать подробности|Читать подробнее|подробности на|конца акции:|Подробности в офисе|Подробности акции|Купить по акции|Акция:|АКЦИЯ!|Baellery|жмите на ссылку|Жми сюда|Скорее ЖМИ|#этомощно|Успей приобрести|бизнес за 1 день|Перейдите по этой ссылке|ОНЛАЙН-БИЗНЕС|Детектив 0|ДИСТАНЦИОННОЕ ОБРАЗОВАНИЕ|Не стесняйтесь делиться!|Рекомендуемые сообщества|Рекомендуем подписаться|LUXURY-KEYS|MBA|Bailini|Ночной чат|Орленок|Xzibit|Fonepad|forex|Счастьe-xренастье|Ёлки-хуёлки|Маленькие ёлочки|TRICOVEL|VHS Video|КВАРТИРНЫЙ ВОПРОС|gettaxi|БЕСПЛАТН|mdkthegreat|Регистрируйся|Регистрируйтесь|зарегестрируйтесь|зарегистрируйтесь|получай призы|OlympTrade|скидки|продолжение читайте в источнике|конкурс|Че там делаете?|подписывайтесь|подписывайся|Подпишись|Консультация и заказ|Закажи|ЗАКАЖИТЕ|ЗАКАЗАТЬ|БЕЗ ПРЕДОПЛАТЫ|Calvin Klein|Ray Ban|Мурзилка|КСБ-55|Рекламная запись|Заказывай со скидкой|Заказывать здесь|АНТИКРИЗИСНАЯ ЦЕНА|Заказывайте сейчас|Оформить заказ|Оформи заказ|Для заказа|заказать без предоплаты|Подпишись на |ссылка в ВК|telegram.me|greatshot1|bestmafia|GreenGuard|mega-wallet|activizmru|42HK2m|4z3YHM|3Wvv1X|unicredit|sustav.zv-spb|style1225|thesmolny|3XUlLT|tvoisotki|everest-capital|wmestocard|mfs-shop|pJKF6.i|memorypoets|17479367|tube-partner|vk_interior|2GuwlL|3IaMLh|6FsTno|3VKeHK|3DrKiZ|gooduev|ZamshaWallet|inkognitoclub|rukodelnica_shema_vishivki|id297194314|whitelightpro|sprashlvai.ru|Скучно на парах?|Заходи на|Скачай игру:|Скачать и играть|Для Android|Для iOS|Только для Android|Установить на Android|Установить на iOS|Скачать на iOS|Скачать на Android|Пoсмотреть пoлнoстью|Читать полностью|Читать далее|Читать продолжение|продолжение читайте|ПРОДОЛЖЕНИЕ В ИСТОЧНИКЕ', 'i');
	var count_ad = document.getElementById("count_ad");
	var count_ad_today = document.getElementById("count_ad_today");
	var count_ad_stop = document.getElementById("count_ad_stop");
	var clickEvent = new MouseEvent("click");
	// Скрытие статичных блоков
		if (document.getElementById("feed_recommends")) {
			document.getElementById("feed_recommends")
				.setAttribute("style", "display: none;");
		}
		if (document.getElementById("posthashtag_recoms")) {
			document.getElementById("posthashtag_recoms")
				.setAttribute("style", "display: none;");
		}
	 // end блоков
function feed() {
	// Скрытие динамических блоков
		if (document.getElementById("left_ads")) {
			document.getElementById("left_ads")
				.setAttribute("style", "display: none;");
		}
		if (document.getElementById("feed_rows").getElementsByClassName("ads_ads_news_wrap")[0] !== undefined) {
			document.getElementById("feed_rows").getElementsByClassName("ads_ads_news_wrap")[0]
				.setAttribute("style", "display: none;");
		}
		// end блоков
			   if (window.location.pathname == "/feed" || window.location.pathname == "/al_feed.php") {
			var refresh = document.getElementById("feed_new_posts");
			if (refresh.getAttribute('style') != 'display: none' && refresh.getAttribute('style') != 'display: none;'/* && document.getElementById("head_play_btn")
				.classList.contains('playing') !== true */&& document.getElementsByClassName("page_video_inline_wrap")
				.length === 0 && document.getElementById("top_audio_player")) {

				refresh.dispatchEvent(clickEvent);
			} else {
				if (document.getElementsByClassName("page_video_inline_wrap")
					.length !== 0) {
					count_ad_stop
						.innerHTML = "Перезагрузить!";
				} else {
					count_ad_stop
						.innerHTML = "";
				}
			}
			for (var i = 0; i < li.length; i++) {
			  var myArray;
			  if (myArray=li[i].innerHTML.match(patt) !== null) {
					if (li[i].getAttribute('d') != 'true') {
						li[i].setAttribute('d', 'true');
						li[i].parentNode.parentNode.parentNode.setAttribute('style', 'display: none;');
						if (document.location.host == 'new.vk.com'){
							li[i].parentNode.parentNode.parentNode.querySelector("div.post_header>div.post_header_info>div.ui_actions_menu_wrap>div.ui_actions_menu>a.ui_actions_menu_item")
							.dispatchEvent(clickEvent);
						}else{
							li[i].parentNode.querySelector("div.post_actions_wrap>div.post_actions>div")
							.dispatchEvent(clickEvent);
						}
						document.getElementById("count_regexp").innerHTML += li[i].innerHTML.match(patt)[0]+"<br>";
						console.debug(li[i].innerHTML.match(patt)[0]);
						count++;
						count_day_var = parseInt(getCookie('cday'), 10) + 1;
						delCookie('cday');
						setCookie(count_day_var);
					}
				}
			}
		// обновление счетчиков
		count_ad
			.innerHTML = count;
		count_ad_today
			.innerHTML = count_day_var;
		// end обновление
			return count;
		}
	}
//eventListener new posts
function eventListenerNewPosts(){
	var trigger  = document.querySelector( '#feed_new_posts' );
	var observer = new MutationObserver( function( mutations ){
	mutations.forEach( function( mutation ){
		if( mutation.attributeName === 'style' && window.getComputedStyle( trigger ).getPropertyValue( 'display' ) !== 'none'){
			document.getElementById("feed_new_posts").dispatchEvent(clickEvent);
		}
	});
});
observer.observe( trigger, { attributes: true } );
}
//eventListener new posts with scroll
document.getElementById("feed_rows").addEventListener('DOMNodeInserted', function () {
	feed();
}, false);
	eventListenerNewPosts();
	feed();
}