I know I should spend more time polishing my Scripting Games entries but there’s also so much fun coding a way to monitor the leaderboard 😛
Since my previous post many things have changed. The online page displays only the top 10 users in each track. It means I cannot get your current position if the event isn’t closed (voting included) unless you appear in the top 10 users of the ongoing event.
When I wrote my previous entry, I took the wrong approach to find your name. Select-String will find all matches by default. Now that there are two events, if your name appears in both top 10 users, I got 2 matches. Of course, I could have used Select-String with the -Context parameter but it will capture the specified number of lines before and after the line with the match:
$page | sls -Pattern "Advanced 2" -Context 10
At the end, I didn’t use Select-String as I’ve found a quicker way to extract the top 10 users from the online page with a while loop 😎
I’ve updated the script. The Get-PSH2013Leaderboard function’s features remain unchanged. I’ve created 2 “child” functions that will either read the top 10 users online or download and read all closed entries in your temp directory:
Join-Path -Path $env:temp -ChildPath "SG2013"
To get things run quicker and as voting ended, it’s downloaded only once.
To use the version 2.0 of the Scripting Games 2013 monitoring script, I load all the functions by dot-sourcing the main script like this:
For event 1: I can see the top 5 users and my own rank. The total number of votes property was available and I’ve added it.
If it’s the first time I use it, I will see the following progress bar indicating that entries are downloaded in the %temp%\SG2013 directory:
If I run the same command again, I get results more quickly as entries are being read locally.
Get-PSH2013Learder -Category Advanced -EventNumber 1 -TopUsers 5 -UserName "_Emin_" | Select Rank,Name,Score,Votes | ft -AutoSize
For event 2: as long as it isn’t closed, it makes sense to query the top 10 users online.
Get-PSH2013Learder -Category Advanced -EventNumber 2 -TopUsers 5 -UserName "_Emin_" -Repeat
As you can see in the above image, I got only 16 votes on my first entry whereas Mike F. Robbins got 74. Sure, Mike has a fan club 😀 and I don’t 😦
In the meantime, scoring guides lines have been published by Don Jones: http://powershell.org/wp/the-scripting-games/scoring-guidelines/ and a nice reminder apprears in the standard voting mode:
…as well as in Beta voting mode:
If you read this post that far and before voting ends on event 2 (2013-05-14 00:00:00 (all times GMT)), you actually owe me a vote on my entry (if you didn’t rate it yet): http://scriptinggames.org/entrylist.php?entryid=465. Don’t forget to write a comment on what you like or don’t like. The whole point of the Scripting Games is to get feeback on my work and have fun.
Sure, you voted on my entry so that I can beat Mike? 😉 Here’s the link to the version 2.0 of Monitor-SG2013.ps1