149

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.

26
  • 1
    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, 2012 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, 2012 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, 2012 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, 2012 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, 2012 at 18:31
  • @agent86 I checked it out from Kevin Montrose's tweet about it.
    – patridge
    Jan 24, 2012 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, 2012 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, 2012 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, 2012 at 20:47
  • Firefox 9.0.1..
    – DOK
    Jan 24, 2012 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, 2012 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, 2012 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, 2012 at 1:57
  • 2
    This is now a 404 page, has it been discontinued?
    – Anonymous
    Jun 9, 2021 at 19:41
  • 1
    Still broken? Just shows spinning wheels for me Sep 10, 2022 at 11:52

9 Answers 9

14

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 ;)
1
  • 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, 2012 at 2:29
7

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

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

5
  • 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, 2012 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, 2012 at 2:15
  • What happens if you click "Request New Token" on this page?
    – agent86
    Jan 25, 2012 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, 2012 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, 2012 at 3:03
5

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.

4


Please add progress towards tag badges, like c#.

1
  • 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, 2012 at 19:08
3

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.

4
  • 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, 2012 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, 2012 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, 2012 at 21:33
  • 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, 2012 at 12:16
3

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
2
  • 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, 2013 at 18:50
  • votes are, edits aren't, not sure why they removed that
    – user12488
    May 20, 2013 at 19:20
3

On Code Review we have people getting the Generalist Badge, but the app says we only have 38 tags that qualify, could you do some updating of that for us please?

2
  • Well, what are the actual rules? What should it be updated with?
    – svick
    Aug 1, 2014 at 21:58
  • we have enough tags that qualify, so it is possible to get Generalist. the app shows I made the progress necessary for the badge, but it shows that the site doesn't have enough tags that qualify. @svick
    – Malachi
    Aug 1, 2014 at 22:00
2

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!)

1
  • 4
    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, 2012 at 0:30
2

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.

3
  • 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, 2012 at 15:38
  • 1
    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. Nov 29, 2012 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). Nov 29, 2012 at 14:29

You must log in to answer this question.

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