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.

Introduction

I was curious how far away I was from Generalist, and there are some data explorer queries that can show you your progress, but I thought it should be possible to make this work with the API. A bit of work and a few feature requests later...

enter image description here

Features

  • Track the number of days you have towards Epic and Legendary
  • Track your tag progress towards Generalist
  • Track questions and answers that are close to the Nice/Good/Great Question/Answer badges

Usage

Click this link. The app uses access tokens to read your user ID, so you'll have to click through an authorization screen.

Notes

For the Epic/Legendary badges, I'm scraping the user reputation graph page. I hope that this doesn't violate any rules, and if it does I will disable it. I'm basing the progress towards that badge from the data on this page, so if that data's not accurate with respect to the calculation, your numbers will probably be off somewhat.

Top tags is currently limit 50, so it's likely if you have many top tags that aren't in the site's top tags, the Generalist progress will be skewed. Thanks to Kevin for relaxing the "max 30" on this endpoint.

I'd love to track more statistics, but this is about all the ones I could work out a route through the API for without hammering it. The individual calls to the API are staggered so that they don't all hit at once, so there will be a slight delay when you load the page while all the data is fetched.

Source

Available in this GitHub repo, although most of this is already available in your browser. This is released under the BSD 2-clause license. I'd appreciate attribution if you reuse significant portions of the code.

share|improve this question
    
Very fun stuff. I can definitely see now why you were also hitting that throttle issue I put in StackGeography's screenshot. –  patridge Jan 24 '12 at 17:13
    
@patridge, actually, I was hitting that with my first project, LaServ. On this one, I am using an access_token along with my key, so I wouldn't have that issue. –  agent86 Jan 24 '12 at 17:14
    
Perhaps too much traffic at the moment? I am stuck in an endless loop of requesting that I log in. But I am logged in. –  DOK Jan 24 '12 at 17:40
    
@DOK As far as I can tell, the system is running smoothly, however, there might be bugs :) This is a 2-day old app, and both it and the API are "beta" quality! I'm so thrilled it's being noticed, however... –  agent86 Jan 24 '12 at 17:53
    
Would it be possible to link directly to an answer within a question in the "Nice/Good/Great Answer" sections instead of the parent question page? –  patridge Jan 24 '12 at 18:31
    
@agent86 I checked it out from Kevin Montrose's tweet about it. –  patridge Jan 24 '12 at 18:34
    
@patridge, I'll add that to the todo list for the next version. Switching sites also does not empty the request queue (so if you switch mid-refresh, you have to wait for the refresh to finish, bleh!) With all the attention, I'm loathe to roll out a new version right this second, but rest assured any bugs found will be fixed in short order :) –  agent86 Jan 24 '12 at 18:41
    
Well, I'm glad to hear it is running smoothly for you. However, for me, the query runs and the page starts to draw, but them it flips to a short "you have to log in" message. –  DOK Jan 24 '12 at 20:46
    
@DOK, my apologies for the bad experience. What browser and version? I'll try to debug it some this evening. –  agent86 Jan 24 '12 at 20:47
    
Firefox 9.0.1.. –  DOK Jan 24 '12 at 20:56
    
@DOK, and you were logged into a stackexchange site prior to clicking the link? I've been testing in FF but it's possible I missed something. Thanks for the bug report, and I'll look into it. –  agent86 Jan 24 '12 at 21:06
    
Happy to help. This page shows me logged in, and I keep SO open and logged in continuously. And I'm getting notifications of your replies to my comments on the little StackExchange notifier widget in the upper left corner of the SO pages. –  DOK Jan 24 '12 at 21:10
    
@DOK, I tested this on Mac and Windows FF latest, and had success in a variety of scenarios - different authentication states for the app, and different login statuses for my account. What page is looping continuously for you? Can you screenshot it and/or give me the url in your browser? I feel like I've seen this before in the authorization screen, and it might help me (or Kevin) figure out where the issue is. –  agent86 Jan 25 '12 at 1:57
    
Here's the URL in my browser stackexchange.com/oauth/… –  DOK Jan 25 '12 at 2:02
    
@DOK, and it just keeps looping you there? what does the page look like? –  agent86 Jan 25 '12 at 2:06

8 Answers 8

I updated several aspects of the app in response to user feedback:

  • Error handling is somewhat better (it will now tell you if your token is invalid, instead of a generic "error" alert)
  • Queued API calls are aborted now, which should speed up site changing, among other things.
  • There's now an option to deauthorize the app, should you decide to revoke its access to your account information.
  • Generalist now queries to see if the badge is actually possible on the site you're asking about (as it requires 40 tags above 200 questions)
  • Some general style improvements, to make it look less like the 2-day old weekend project it is ;)
share|improve this answer
    
Another small update this evening - Kevin added options to the top tag list query, so now more of your top tags should show up for the Generalist badge. Also, the tags look more like tags now than they did before. –  agent86 Jan 26 '12 at 2:29

Here's what I see after the page briefly populates:

Here's what I see after the page briefly populates:

share|improve this answer
    
Hmm... could you be disabling javascript or blocking some content? If you're logged in, you should see some buttons at the bottom. That's a stackexchange screen, not something from my app. –  agent86 Jan 25 '12 at 2:08
    
I am clicking on the link you provided in the Usage section above, and opening it in a new tab. The intended page appears to begin to render, but then a red message pops up about midway down and it transitions to this. –  DOK Jan 25 '12 at 2:15
    
What happens if you click "Request New Token" on this page? –  agent86 Jan 25 '12 at 2:17
    
ChatterBox is a userscript that adds buttons to the StackExchange Chat interface for checking and reading the contents of your inbox. This app needs these permissions Read access to your global inbox To know what your accounts are on the Stack Exchange network You need to login to authorize this application –  DOK Jan 25 '12 at 2:19
    
This doesn't seem like an issue with my app, (unless I'm doing something silly, which is possible) so I've raised it as a support/bug issue here: stackapps.com/questions/3000/… –  agent86 Jan 25 '12 at 3:03

Could you add progress towards the Enlightened and Guru badges for answers too?

These would list accepted answers that have scores close to 10 and 40 respectively (with the Enlightened candidates limited to first answers only), as well as list not-yet-accepted answers where the score (and "first answer") criteria have been met and would qualify for just badges if only the answer were accepted. These should probably be limited to questions where there isn't yet an accepted answer at all.

share|improve this answer

Running a query on Programmers after running one on Stack Overflow carries over a tag score from SO. I have no points on Programmers for C#

enter image description here

Reauthenticating and running the Programmers query a second time seems to correct this.

share|improve this answer
    
Hmm, it should clear out. I'll double check the logic, thanks. Also, since the "Generalist" queries come last, it's possible that it just hadn't updated yet, although it should blank prior to changing. –  agent86 Jan 26 '12 at 14:53
    
@agent86 I thought about the updating possibility too, but I have other tags on Programmers that are the same as those on SO, and those didn't show up in that run. –  jonsca Jan 26 '12 at 18:48
    
Okay, I believe I found and fixed the bug. Can you try this again? There are only certain situations where this occurs, and having the same tag in the top 40 on 2 sites is one of them :) –  agent86 Jan 26 '12 at 21:33
    
@agent86 Works fine now, I repeated the exact steps. Great app! –  jonsca Jan 26 '12 at 23:58
    
Thanks for the bug report and the feedback :) –  agent86 Jan 27 '12 at 0:34
    
Another issue with the c# tag is that the link generated in the tag element is broken since the # character is not escaped properly. –  teukkam Apr 20 '12 at 12:16

What about adding progress towards tag badges, like c#?

share|improve this answer
1  
Gah, I've just realized I never responded to this - my apologies. I can't make that a quick query against the API, but having more API functionality around tags is something that I'm interested in requesting when the "v2.1" or "v3.0" call for concepts happens. –  agent86 Mar 26 '12 at 19:08
    
Ok, thanks for the info. –  svick Mar 26 '12 at 19:24

Could the Sportsmanship badge be tracked with this application? I know data.SE can't, but an authorized app like this might be able to access more data? (As you can see, I don't really know anything about stack app development. I very much like your app, though, thanks for that!)

share|improve this answer
2  
Unfortunately, no. Due to the private nature of voting, I can't tell what you've voted for via the API. Therefore, I can't track this badge. –  agent86 Jun 12 '12 at 0:30

The page does not seem to work in Opera 12.10. I get the following error in the error console:

[2012-11-28 11.48.45] JavaScript - http://agent86ix.github.com/stackapps/badge/
Event thread: message
Uncaught exception: TypeError: Cannot convert 'bodyinject' to object
Error thrown at line 1757, column 2 in injectcode():
    bodyinject.appendChild(message);
called from line 1647, column 0 in contentfirstrun(e):
    injectcode();
called from line 148, column 4 in <anonymous function: opera.extension.onmessage>(e):
    contentfirstrun(e);

The result is that the page seems to be loading forever. That may be another bug by the way: There are animations that indicates that something is working when it is in fact dead.

share|improve this answer
    
The script uses CORS which historically has had dodgy support in Opera. I work around the limited availability in IE with a jQuery plugin, but I haven't tested extensively with Opera. –  agent86 Nov 28 '12 at 15:38
    
The animations are just images that are not being hidden, because the JS code failed. On normal operation, the animation would be hidden by the code once the page has finished loading. In other words, the fact that the animation continues is a symptom, not a bug in and of itself. –  Martijn Pieters Nov 29 '12 at 11:17
    
Martijn, but the reason the animations are there in the first place is to show the user that something is working. They should stop if the program crashes (at least that's the standard usage of a throbber in software UIs). –  Emil Vikström Nov 29 '12 at 14:29

Would it be possible to add progress indicators for the editing badges, these used to be shown on the site but one of the updates at some point in the last few months seem to have removed them. The badges I am referring to are;

  • Archaeologist
  • Copy Editor
  • Strunk & White

If possible could we get these as well?

  • Civic Duty
  • Electorate
share|improve this answer
    
Edit stats aren't part of the API as far as I can tell. Voting is very general in the user object, but you do know those stats are tracked in the lower right hand corner of your user page, right? –  agent86 May 20 '13 at 18:50
    
votes are, edits aren't, not sure why they removed that –  user12488 May 20 '13 at 19:20

You must log in to answer this question.

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