Take the 2-minute tour ×
Stack Apps is a question and answer site for apps, scripts, and development with the Stack Exchange API. It's 100% free, no registration required.

Please note, the tag burninator script requires 10k rep to use. Sorry, noobs!

I pass on to you, dear taxonomist terrorists, the burninator toolkit.

Burninator signal

This toolkit consists of two user scripts which, when configured and used in conjunction, can chew up and spit out whatever tag needing burnination faster than you can believe.

The first user script can be located at this gist. Its goal is to allow you to easily open up many questions that have the same tag. The reason for this will be revealed later.

You use this script by visiting the list of questions for a particular tag. For example, let's use this awful disgusting tag: http://stackoverflow.com/questions/tagged/education

This userscript adds a clickable div to the top of the list:

enter image description here

Which, when clicked, expands to show links to all questions on that page:

enter image description here

When you are using this script for tag eradication, simply ctrl-click (or whatever the equivalent is for your particular keyboard) on the first link to open that in a new tab. Clicking on the link also removes it from the list.

enter image description here

By just holding the mouse and hitting ctrl-click repeatedly you can open up all questions on the page in other tabs in under a minute.

You may be asking me, "why would I want to do this?" I'll tell you.

You would want to do this so that the other half of the kit, this user script right here, can automatically edit out the tag and, optionally, cast a delete vote on it. All without any effort on your part. Yep.

There isn't anything photogenic about this half of the process, so let me illustrate the feeling you get from ripping a crap tag from fifty questions in under a minute:

enter image description here

The script comes preconfigured with many tags that plain old suck. There are ones that just need to be removed from questions,

var tagsThatShouldJustBeRemoved = 
    ["mmorpg", 
    "authors",
    "technologies",
    "code-reading",
    "teaching",
    "information",
    "guide",
    //etc

and the ones that indicate the question should be nuked from orbit (proven to be the only way to be sure)

var tagsThatGetYouDeleted = 
    ["education",
    "suggestions",
    "books",
    "ebook",
    "exam",
    "tutorials",
    "tutorial",
    "oreilly-book", ];

You can personalize your targets to suit your needs. In fact, you should personalize both lists of tags before you use this script. Please note that your edit will happen asynchronously, will run on every question you view, and unless you cast a delete vote you will not know anything happened. Also, if tag removal would result in the question not having any tags, you will be informed by an annoying alert. You'll have to retag it manually :/.

One last warning, you will hit a rate limit if you open fifty tabs one after another. Keep it to about one per second, or more if you're voting to delete after every edit.

Now, install these scripts, go forth, and burn!


Updates

Tag List:
1.0 First release
1.1 Move all closed questions to the front of the list
- Rip through these, then burn the window. No need to examine closed questions.

Tag Burninator:
1.0 First release

share|improve this question
add comment

1 Answer

Inline tag edit requires 10k rep, but 2k rep is enough to edit questions (therefore, do retags). However, inline API is much easier - you just do the post, which contains tags only. Doing full edit requires accessing postable questions body.

I've done quick modification to your script. It's a draft, but working for me... it activates edit mode, waits until it activates and manually un-clicks wrong tags, then clicks submit.

Some parts of code, especially final click may not work because of longer loading time. I know it could be improved. But if I have more time for it, I'd rewrite retagging mechanics. We should be able to do more advances things, namely retagging instead of burninate.

For example, tag [get] is used for many things, for example http get. So if something is tagged [get] and [http], it should be retagged to [http]+[http-get].

This is the modified code:

var id = document.location.href.match(/\d+/);
var rep = $('.reputation-score').first().text().replace(',','')

// posts your edit, and votes to delete if the question sucks, but it requires 10k rep
if (rep >= 10000) {
// here goes your ajax post
} else {
    // users with lower rep require to do the whole cycle: click edit link, wait for
    // edit mode to load, then retag
    $('.postcell a.edit-post').click()
    var removeTags = function() {
        // click delete-tag on each tag from those that are forbidden
        $('.tag-editor .post-tag').each(function(i,el){
            var tag = $(el).text()
            for (var i=0;i<tagsThatShouldJustBeRemoved.length;i++) {
                if (tagsThatShouldJustBeRemoved[i] == tag) {
                    $(el).find('.delete-tag').click()
                }
            }
        })
        var submit = function() {
            $('.inline-editor .form-submit input').each(function(i,el){
                if (el.value == 'Save Edits') $(el).click()
            })
        }
        setTimeout(submit, 500)
    }
    var waitForEdit = function() {
        if ($('.tag-editor').size()) 
            removeTags()
        else
            setTimeout(waitForEdit, 1000)
    }
    waitForEdit()
}
share|improve this answer
add comment

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .