What do you do when you get home from having your appendix removed? Work on weekly challenges, of course! Happy to share my 75 badge as it is also for a short time a reference to The Answer to Life, the Universe, and Everything. I also added some visualytics to the challenge tracker macro @mceleavey created. It is now an app (attached). Just wanted to share and keep Alteryxing!
Update: I wanted to see the date I completed the challenge, so I added some additional data parsing and updated the output. Enjoy!
Thanks Joe, just more clarification on the spoiler/image aspect.
Does any spoiler count or must it be a spoiler with an image? For example, in this thread, they are mainly all spoilers with no image attached. But it looks like they're still counted.
Also, if an image is posted without a spoiler, is that counted?
So I decided to build my own version of a Weekly Challenge Tracker. I was inspired by what @mceleavey made and wanted to see if there was a way for it to run quicker
I made an assumption that a challenge is counted when a user posts an attachment/spoiler/image. @estherb47 was a good example to figure out what is counted as she's completed all of them so far. This is an example of a post that only had images (no spoilers/attachment) but is still counted. This is an example of a post that had only spoilers (no image/attachments). So based off that, I decided that a post is counted if it contains either an attachment/spoiler/image.
mceleavey's version goes through each challenge thread REST API and checks if the user has a response in the thread or not. This means (at this point in time) it has to download 162 links. Right now, the run time is around 1 minute. I thought that working backwards might be quicker - going through each reply a user has made and check whether it was in a challenge thread or not. Using the REST API coupled with an iterative macro, I can go through 1000 replies per page - meaning for most users it only has to download 1 page. This makes it run a lot quicker. My username takes around 10 seconds. However, if you're a power user like @MarqueeCrew with over 3000 replies, it'll take longer to run and will end up pretty much the same as the mceleavey's version in terms of runtime.
- Username search is more accurate. Previously, entering a username like 'ben' wouldn't necessarily pick that exact user as it would look through a challenge thread with 'ben' anywhere instead. This could be 'benjamin', '123ben', 'xben3' etc. In most cases this would work with a more distinct username, but this may not always be the case. @mceleavey, this could probably be fixed by filtering for '<login type="string">'+[Username]+'</login>' instead. I have an iterative macro which searches through the Alteryx user search page for the exact username so that I could find the User ID which is used for the next part.
- Previously, a challenge was counted as completed if there was any kind of reply in the challenge thread. As stated above, there needs to be a spoiler/image/attachment. The REST API doesn't tell you whether there's an attachment or not. So the tricky part is to cycle through the user's post history using variations of this link. A page can have a maximum of 20 posts. Going through all of them would be very slow (MarqueeCrew's post history would require over 150 pages to go through) so I decided to speed up this process too. Using the REST API, I know how recent a post is. If it's the 5th post, the post will be on the 1st page. If it's the 21st post, it'll show up on the 2nd page etc. So using this logic, the workflow will only download the relevant pages that have challenges and then checks whether the relevant post has an attachment. However, these pages don't tell you whether an image or spoiler was used. So I used the REST API again to find the message ID and then check if there any posts that had a spoiler/attachment.
- Added a completion date field with a bunch of charts for different ways of viewing progress. If there are multiple posts within the same challenge thread by the same user, then the first post (that contains a spoiler/attachment/image) is taken as the completion date. It has a cumulative count of your progress in daily/monthly grain and another chart which shows the amount of challenges completed per MonthYear.
Overall, a good challenge. I challenged myself to parse fields in Regex only once. First time using lookaheads in Regex which was fun. Props again to @mceleavey for creating the original workflow.