3

After finding and reading How do I audit my reputation? I thought it would be a good idea to write some JavaScript that makes the response from https://stackoverflow.com/reputation a little bit more readable and useful.

Here's what I came up with for Opera's UserJS:

// ==UserScript==
// @include http://*stackoverflow.com/reputation
// ==/UserScript==

// add useful info to the reputation output
window.opera.addEventListener("AfterEvent.DOMContentLoaded",
    function(e)
    {
        var html, pre, host;

        if (e.event.eventPhase != Event.CAPTURING_PHASE) return;

        pre = e.event.target.getElementsByTagName("pre")[0];
        html = pre.innerHTML;
        host = e.event.target.location.host;

        // link the question/post id
        html = html.replace(/(\d{5,})/g, "<a href=\"http://" + host + "/questions/$1\">$1</a>");

        // explain the various status codes
        html = html.replace(/^(\s*1\s+.*$)/gm, "$1   accepted answer (to or from you)");
        html = html.replace(/^(\s*2\s+.*$)/gm, "$1   upvote (to you)");
        html = html.replace(/^(\s*3\s+.*$)/gm, "$1   downvote (to or from you)");
        html = html.replace(/^(\s*4\s+.*$)/gm, "$1   penalty for post flagged as offensive");
        html = html.replace(/^(\s*8\s+.*$)/gm, "$1   bounty grant (from you)");
        html = html.replace(/^(\s*9\s+.*$)/gm, "$1   bounty award (to you)");
        html = html.replace(/^(\s*12\s+.*$)/gm, "$1   penalty for post flagged as spam");

        // append further links to reputations
        e.event.target.body.innerHTML +=
            "<hr>more reputation:<br>" +
            "<a href=\"https://stackoverflow.com/reputation\">https://stackoverflow.com/reputation</a><br>" +
            "<a href=\"http://cooking.stackexchange.com/reputation\">http://cooking.stackexchange.com/reputation</a><br>" +
            "<a href=\"http://serverfault.com/reputation\">http://serverfault.com/reputation</a><br>" +
            "<a href=\"http://gaming.stackexchange.com/reputation\">http://gaming.stackexchange.com/reputation</a><br>" +
            "<a href=\"http://superuser.com/reputation\">http://superuser.com/reputation</a><br>" +
            "<a href=\"http://meta.stackoverflow.com/reputation\">http://meta.stackoverflow.com/reputation</a><br>";

        pre.innerHTML = html;
    }, false);

Could anyone convert this to other browsers in case they support some client-side JavaScript?

I assume this is more of a wiki-entry than a question, but I can't create a wiki-question.

5
  • 2
    This script makes certain naive assumptions, especially the regex used to match posts: /(\d{5,})/g, which will match any number in the page that has 5 or more digits. Newer SE sites have post ids starting with 1, and 10k users have reputation more than 5 digits.
    – Yi Jiang
    Commented Jan 16, 2011 at 2:02
  • actually, I think this might be a better fit on stackapps.com than here, honestly Commented Jan 16, 2011 at 7:44
  • @JeffAtwood I thought StackApps is only for scripts that actually uses the API? Because this one, as far as I can tell, doesn't.
    – Yi Jiang
    Commented Jan 16, 2011 at 9:22
  • @yij true, I guess there's no good place for greasemonkey stuff other than here then Commented Jan 16, 2011 at 17:45
  • Starting a bounty to award it to YiJiang's answer. That is such great work
    – Pekka
    Commented Jan 21, 2011 at 10:54

1 Answer 1

8
+500

I've rewritten the script so that it works on Firefox, Chrome and Opera. It now lists all sites in the Stack Exchange network, by using the API to retrieve the list of sites. I've also updated the regex to avoid the problem I mentioned in the comments.

Stack Exchange Reputation Audit Helper

Install - Source

Edit: I've updated the parser to infer from the amount of rep changed the type of accepted answer and downvote that was given.

3
  • Whow, I didn't know there were that many related sites. Anyway, thanks for your work. There isn't really much left from my code ;).
    – sjngm
    Commented Jan 16, 2011 at 16:59
  • Just FYI, you may want to add askubuntu to the include list
    – KitsuneYMG
    Commented Jan 20, 2011 at 19:21
  • @KitsuneYMG Added, together with a few others I missed. Thanks!
    – Yi Jiang
    Commented Jan 21, 2011 at 4:11

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