Remove Puhlan

чистит чат от мусора

当前为 2019-07-24 提交的版本,查看 最新版本

// ==UserScript==
// @name         Remove Puhlan
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  чистит чат от мусора
// @author       You
// @include https://vk.com/*
// @include http://vk.com/*
// @grant       GM.xmlHttpRequest
// @require      https://code.jquery.com/jquery-2.2.4.min.js
// ==/UserScript==


var name = 'id1818059';
var element = document.getElementById('content');
element.addEventListener("DOMNodeInserted", Filter, false);
element.addEventListener("wheel", Filter, false);

setInterval(Filter, 3000);

function removeMsg(msgId,peerId,hash) {
    console.log("Remove message id: " + msgId + ", PeerId: " + peerId + ", Hash: " + hash);
    GM.xmlHttpRequest({
        method: "POST",
        url: "https://vk.com/al_im.php",
        data: "act=a_mark&al=1&gid=0&hash=" + hash + "&im_v=2&mark=spam&msgs_ids="+msgId+"&peer="+peerId,
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        },
        onload: function(response) {
            console.log("Response: " + response.responseText);
        }
    });
}

function Filter ()
{
    var selector = 'a[href="/'+name+'"]';
    var spam = document.querySelectorAll(selector);

    var hashString = null;
    var scripts = document.getElementsByTagName('script');
    for(var o=0; o<scripts.length; o++) {
        var re = /IM.init\(.*?"hash":"([^"]+)".*/ig;
        var hashStrings = re.exec($(scripts[o]).text());
        if (hashStrings) {
            hashString = hashStrings[1];
        }
    }

    for(var j=0; j<spam.length; j++)
    {
        if (spam[j].className == 'im-mess-stack--lnk'){
            var content = $(spam[j].parentElement.parentElement.parentElement);
            var al = content.find( ".im-mess-stack--lnk" );
            var topClass = al.parent().parent().parent().parent()
            console.log("T2----> " + topClass.text() + " CLASS NAME " + topClass.prop('className'));
            var messages = topClass.find( ".im-mess" );
            for (var i = 0; i < messages.length; i++) {
                var message = $(messages[i]);
                var messageId = message.attr('data-msgid');
                var peerId = message.attr('data-peer');
                if (message.find(".media_link__photo")) {
                    console.log("PHOTOS link: " + messageId);
                    if (hashString) {
                        removeMsg(messageId,peerId,hashString);
                    }
                } else if (message.find(".page_post_sized_thumbs")) {
                    console.log("PHOTOS thumbs: msgid: " + messageId);
                    if (hashString) {
                        removeMsg(messageId,peerId,hashString);
                    }
                }
            }
        }
    }
}