Delete Multiple Subscriptions

By Afuna Last update Aug 20, 2009 — Installed 950 times. Daily Installs: 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1

There are 3 previous versions of this script.

// ==UserScript==

// @name           Delete Multiple Subscriptions

// @namespace      http://afunamatata.com/greasemonkey/

// @description    Reload the page only after deleting all subscriptions, not after each deletion

// @include        http://www.livejournal.com/manage/settings/?cat=notifications*

// @include http://www.dreamwidth.org/manage/settings/?cat=notifications*

// @tags           livejournal, dreamwidth

// ==/UserScript==



function markForDeletion(event)

{

    str = this.href.substr(deletebutton.getAttribute("original_url_length"));

    if(this.getAttribute("toDelete")=="true")

    {

        // delete

        myvar.splice(myvar.indexOf(str),1);

        this.style.border = 'none';

    }

    else

    {

        // don't delete

        myvar.push(str);

        this.style.border='1px solid red';

        

    }

    this.setAttribute("toDelete", this.getAttribute("toDelete") == "true" ? "false" : "true");

    var href = "http://"+document.location.hostname+document.location.pathname+"?cat=notifications&"+myvar.join("&");

    deletebutton.setAttribute("delete_vars", href);

    deletebutton.setAttribute("title", href);

    event.preventDefault();

    event.stopPropagation();

}



myvar = new Array();

xpath = document.evaluate("//img[contains(@src,'img/portal/btn_del.gif')]/parent::*", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for(i = 0; i < xpath.snapshotLength; ++i) { 

    a = xpath.snapshotItem(i);

    a.setAttribute("toDelete", "false");

    a.addEventListener('click', markForDeletion,false);

}



var container = document.getElementById("settings_save");



deletebutton = document.createElement("button");

deletebutton.addEventListener( "click", function(event) { 
    event.preventDefault();
    event.stopPropagation();
    document.location = this.getAttribute("delete_vars");

}, false);

deletebutton.innerHTML= "Delete";

deletebutton.setAttribute("delete_vars", "http://"+document.location.hostname+document.location.pathname+"/?cat=notifications");
deletebutton.setAttribute("original_url_length", ("http://"+document.location.hostname+document.location.pathname+"/?cat=notifications").length);

deletebutton.setAttribute("class", "deletebutton");

container.appendChild(deletebutton);



GM_addStyle("a.deletebutton { text-decoration:none; text-align: center; padding: 1px 5px; \n\
background-color: #eee; border: 2px solid gray; border-top-color: white; border-left-color: white; color: black;}");