// ==UserScript==
// @name Stack Exchange Reputation Audit Helper
// @namespace yijiang
// @include http://stackoverflow.com/reputation
// @include http://meta.stackoverflow.com/reputation
// @include http://superuser.com/reputation
// @include http://serverfault.com/reputation
// @include http://askubuntu.com/reputation
// @include http://answers.onstartups.com/reputation
// @include http://stackapps.com/reputation
// @include http://*.stackexchange.com/reputation
// ==/UserScript==
(function(){
function json (data) {
var sites = data.api_sites,
list = document.createElement('div');
list.innerHTML = "more reputation: <br>";
list.style.position = 'absolute';
list.style.top = 0;
list.style.left = '40em';
list.style.fontFamily = 'Ubuntu, Arial, sans-serif';
list.style.lineHeight = '1.8em';
document.body.appendChild(list);
for(var i = 0; i < sites.length; i++) {
// Exclude SE 2.0 linked Metas
if(sites[i].state !== 'linked_meta') {
var a = document.createElement('a'),
icon = document.createElement('img');
// Include the favicon in the link
icon.src = sites[i].icon_url.replace('apple-touch-icon.png', 'favicon.ico');
icon.style.border = '0';
icon.style.verticalAlign = 'middle';
icon.style.paddingRight = '3px';
a.href = sites[i].site_url + '/reputation';
a.style.color = '#999';
a.style.display = 'block';
a.appendChild(icon);
a.innerHTML += sites[i].name;
// Stick ya links in the pre element
list.appendChild(a);
}
}
}
function spaces (n) {
return new Array(n + 1).join(' ');
}
var voteTypesComplex = {
1: {
15: 'your answer accepted',
2: 'answer accepted by you'
},
3: {
'-1': 'downvote by you',
'-2': 'downvote to you'
}
}, voteTypeSimple = {
2: 'upvote',
4: 'penalty for post flagged as offensive',
8: 'bounty granted by you',
9: 'bounty awarded to you',
12: 'penalty for post flagged as spam'
};
var pre = document.getElementsByTagName('pre')[0],
html = pre.innerHTML,
lines = html.split(/\n/g),
maxLen = Math.max.apply(Math, lines.filter(function(c){
return !c || !!c.split(/\s/g)[1].match(/^(1|2|3|4|8|9|12)$/);
}).map(function(c){
return c.length;
}));
for(var i = 0; i < lines.length; i++) {
var chunks = lines[i].split(/\s+/g);
if(chunks.length > 3) {
if(chunks[1].match(/^(1|3)$/)) {
console.log((/^[([](-?\d+)[)\]]$/).exec(chunks[3]), chunks[3]);
chunks.push(voteTypesComplex[chunks[1]][(/^[([](-?\d+)[)\]]$/).exec(chunks[3])[1]]);
} else if(chunks[1].match(/^(2|4|8|9|12)$/)) {
chunks.push(voteTypeSimple[chunks[1]]);
}
if(!isNaN(chunks[1])) {
lines[i] = spaces(1) + chunks[1] + spaces(2) + chunks[2] + spaces(8 - chunks[2].length) + chunks[3] + spaces(maxLen - lines[i].length + 3) + chunks[4];
}
}
}
html = lines.join('\n');
/*
// explain the various status codes
for(var i in voteTypeSimple) {
var search = new RegExp('^(\\s*' + i + '\\s+.*$)', 'gm');
html = html.replace(search, '$1 ' + voteTypeSimple[i]);
}
for(var i in voteTypesComplex) {
var search = new RegExp('^(\\s*' + i + '\\s+\\d+\\s+\\(' + voteTypesComplex[i].rep + '\\)$)', 'gm');
html = html.replace(search, '$1 ' + voteTypesComplex[i].text);
}*/
// link the question/post id
html = html.replace(/^\s*(1|2|3|4|8|9|12)\s*(\d+)/gm, " $1 <a href='http://" + window.location.host + "/q/$2'>$2</a>");
pre.innerHTML = html;
// Inject json function into page
var script = document.createElement('script');
script.innerHTML = json.toString();
document.getElementsByTagName('head')[0].appendChild(script);
// Grab site list from StackAuth
var jsonScript = document.createElement('script');
jsonScript.src = 'http://stackauth.com/1.0/sites?jsonp=json';
document.getElementsByTagName('head')[0].appendChild(jsonScript);
})();
Mozilla add on,User script,Grease Monkey Script, greasemonkey userscripts, updater userscripts mafia wars userscripts mafia wars autoplayer userscripts mafia wars wall userscripts scripts userscripts travian greasemonkey greasemonkey download greasemonkey facebook greasemonkey tutorial greasemonkey youtube greasemonkey travian greasemonkey chrome greasemonkey mafia wars greasemonkey mafia wars autoplayer
Sunday, January 23, 2011
Stack Exchange Reputation Audit Helper
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment