Magical Experimental Fedora Badges Topic!

I have hooked up this topic with some bailing wire and string so that if you reply to it, and if you have badges on https://badges.fedoraproject.org, those badges will be created here if they don’t exist already, and awarded to you.

This is just an experiment, not a permanent feature. I will probably delete them all from the site after I’m done playing with it.

But for now… try it out! Just reply to this post and … wait. It takes a little while because:

  1. The existing badge system is very slow.
  2. My script is subject to rate-limits from the built-in spam protection, and since I’m just playing I haven’t set it up to evade that.
  3. A lot of people have a lot of badges!

So, the script takes a little while between each request, and I’ve set this topic to wait an hour between replies. It’s possible the script will not immediately award all of your badges, and there’s nothing to sync if you get a new one, except posting again here (after that hour limit, if necessary) — which should be fine, since it checks to see if you’ve already got each badge.

Also note that this cause you to get a Discourse notification for every badge awarded. I think that were this running in real time as badges are awarded, that’d be exactly what we want — more visibility to badges. But for initial population for folks who have 50+, or 100+… it’s definitely not ideal!

3 Likes

Me first!

1 Like

Hook me up

1 Like

This post must be at least 5 characters

2 Likes

Word up!

1 Like

Hook me up, too!

1 Like

It appears to be working!

Some easy refinements:

  • Discourse defaults to displaying the badges at 64×64. Our badge images are 256×256 — but all seem to have quite a bit of transparent border built into the image, which makes them look smaller than intended. It’d probably be better to auto-crop them before uploading.
  • The badges on Fedora Badges are in categories by tag. For this experiment on the Discourse badge list I just put them all into “Fedora Badges”. We can make custom categories here too, and map the tags.
  • Discourse has a leaderboard view at http://discussion.fedoraproject.org/u?order=topic_count, but it doesn’t have a badge count as a column, and apparently that’s hard because it’s not in the underlying database. The Discourse team is looking at options… there is one hacky idea but I’m going to see what they come back with first.
  • There are two levels of description, short and long, in addition to the name. Fedora Badges has just name and description. Many of our badges have parenthetical explanations, though, like " What goes up… (Koji Failure I)". I could parse the parenthetical and put that into the “short” description, and the rest into the long.

Some more complicated things:

  • The all-badges UI for both the original badges site and the discourse view is not meant for this number of badges. We could figure out something better.
  • Same with badges on user profiles — and here, that’s a lot worse than Fedora Badges because it doesn’t show the categories. The former I think we can do a lot with with theming, but the user profiles might need to go deeper into Discourse internals and be a plugin to be meaningfully changed.
  • Instead of the very hacky “respond to get badged!” thing here, I could make it respond to badges being awarded as announced on the message bus (and a one-time thing when a new account is created, and a really one time thing for all existing accounts).

Some functionality badges here have that the current badges don’t:

  • Individual badges can be marked as able to be awarded more than once. This might be nice for, e.g. karma cookies, and maybe in general to replace or pare down some of the “leveled” badge sets which aren’t really very interestingly different.
  • Badges can be Bronze, Silver, or Gold. We could maybe use that for something — possibly the “badge path” idea?
  • You can mark up to some number (configurable, right now it’s 2) as your “favorites” and they’ll show up in your user card. (Click my avatar to see!)
  • You can pick a badge name as your “title” on this site. If you do, that title will show up by your username. (This is configurable on a per-badge basis — right now I’ve turned it on for all of them.)

And conversely:

  • Fedora Badges allows an arbitrary number of tags to apply to each badge. This system just allows for one category (and then also a “Bronze”, “Silver”, “Gold”).

Of course, this isn’t meant to be a permanent solution for badges. Just playing!

Anyway, since I’ve put this topic on “slow mode” to keep from overwhelming my scripts, this isn’t the best place to discuss really. Reply as a new thread if you want to, or wait until I do, because I probably will eventually. :slight_smile:

PS: @calvinistmac It doesn’t look like you have an account on Fedora Badges? You’ll need to sign in there first to get the badges there before it will work.

Ha. Pretty cool.

1 Like

This is great stuff.

1 Like

i would like to test this out

1 Like

I’d like to have some… umm… badges :stuck_out_tongue_winking_eye:

1 Like

Nom nom badges

Has anyone mentioned badgers, mushrooms, or snakes yet? I feel this topic needs all of these noted.

3 Likes

Trying again to see if other badges come over this time.

They should be all there now. There were a couple of bugs in my script:

  • I was using the wrong API endpoint for getting the list of badges you already have, and therefore calculating that wrong.
  • Almost all existing Fedora Badges have, in their json description, a full URL to the badge icon, but at least one (the Nest museum one) just has the filename, and that was causing a crash.

I re-sent the webhook for everyone who has posted so far, so those all should be updated —
I believe as of now everyone who has replied should have all of their badges. If not, let me know!

1 Like

There’s no such thing as too many badges

1 Like

Badges…we need stinking badges!

3 Likes

Badges has always been buggy for me. Let’s see if I can get the bugs to infect this shiny new system. :stuck_out_tongue:

1 Like

Replying…

1 Like

Testing 1 2 3

1 Like