// ==UserScript== // @name Daily rep limit badge tracker // @namespace http://shog9.com/greasemonkey/scripts // @description Tracks the number of days a user has hit or exceeded the daily rep limit // @include http://stackoverflow.com/users/* // @include http://meta.stackoverflow.com/users/* // @include http://serverfault.com/users/* // @include http://superuser.com/users/* // ==/UserScript== var output = document.getElementById("date-selection"); if ( output ) var rep_data = eval(document.getElementById("source").innerHTML.toString().match( /\s+var d = (\[.*]]);/ )[1]); if ( rep_data ) { var capped_days = 0; for (var i=0; i < rep_data.length; ++i) { var today = rep_data[i]; var yesterday = rep_data[i-1] || [0,0]; if (today[1] - 200 >= yesterday[1]) ++capped_days; } output.innerHTML += "
Hit the reputation cap on " + capped_days + " days: " + format_badge_distance(150, "Legendary", 1) + ", " + format_badge_distance(50, "Epic", 2) + ", " + format_badge_distance(1, "Mortarboard", 3) + "
"; } function format_badge_distance(caps_needed, title, rank) { if ( capped_days < caps_needed ) return caps_needed - capped_days + " more to achieve " + format_badge(title, rank); else if ( capped_days > caps_needed ) return capped_days - caps_needed + " past " + format_badge(title, rank); return " at " + format_badge(title, rank); } function format_badge(title, rank) { return ' '+title+''; }