VK posts filter

Скрывает рекламные и политические посты в vk.com.

当前为 2016-09-10 提交的版本,查看 最新版本

// ==UserScript==
// @name            VK posts filter
// @name:en         VK posts filter
// @namespace       FIX
// @version         0.1
// @description     Скрывает рекламные и политические посты в vk.com.
// @description:en  Hide ad and political posts from vk.com.
// @copyright		2016, raletag
// @author			raletag
// @supportURL      http://gf.qytechs.cn/ru/forum/messages/add/raletag
// @include         *://vk.com/*
// @exclude         *://vk.com/*.php*
// @grant           GM_addStyle
// ==/UserScript==

(function() {
    'use strict';
    var
    ads = 'vk.com\/app|побед(a|у) (в сражении|над боссом)|я повысил(|a) уровень|я тебя обогнал|вступай(|те) в|расска(зать|жите) дру(зьям|гу) про запись|сдела(й|йте|ете) репост|добав(ь|те|ляем) (активн(ого|ых))|(пиар(|ся|ьтесь) тут)|подпи(шись|саться|сывайся) на|активно добавля(й|ем)|(быть|стать) подписчиком|уровень в игре|получить бесплатно',
    politiс = 'выборы в|правительств|националист|оппозици|петици|митинг|парламент|фальсификац|госдум|арест',
    regexp = new RegExp('(' + ads + '|' + politiс +')', 'mi'),
    showheader = true; // false - полностью скрывать пост

    if (showheader === true) GM_addStyle('.post_header_fix {padding: 15px 20px 15px!important;}');

    function filter (e) {
        var text = e.querySelector('.wall_text');
        if (e.querySelector('a.lnk[href*="vk.com/app"]') || (text && regexp.test(text.innerText) === true)) {
            if (showheader === true) {
                e.querySelector('.post_header').classList.add('post_header_fix');
                e.querySelector('.post_content').style.display = "none";
            } else {
                e.style.display = "none";
            }
        }
    }

    var links = document.querySelectorAll('div[data-post-id]');
    for (var i = links.length - 1; i >= 0; --i) {
        filter (links[i]);
    }

    var o = new MutationObserver(function(ms){
        ms.forEach(function(m){
            m.addedNodes.forEach(function(n){
                if (n.nodeType !== Node.ELEMENT_NODE) {
                    return;
                } else if (n.getAttribute('data-post-id')) {
                    filter (n);
                } else {
                    var links = n.querySelectorAll('div[data-post-id]');
                    for (var i = links.length - 1; i >= 0; --i) {
                        filter (links[i]);
                    }
                }
            });
        });
    });
    o.observe(document.body, {childList: true, subtree: true});
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址