To make the downloading of a bunch of tracks from music blogs a bit easier (like the excellent Freebreaksblog), i’ve made a scraper for these kind of blogs. You can paste a link and the JS will list all links to the soundcloud downloads on that page. If there’s no available download, it falls back to retrieve the (low quality) stream mp3.
The scraper is designed to be used with jDownloader, a download-manager with an enormous amount of features. It also handles the actual retrieving of the download URLs.
So, I finally got the thing running. Of course, it turned out to be harder than i thought…
Some things i ran into while implementing it:
PHP and the Google Charts API don’t play along too nicely when you have to deal with JSON encoded Dates. The Google API expects months starting with 0 (e.g. January = 0, February = 1), PHP delivers months starting with 1.
My approach basically boils down to this:
Run a WSH script regularly which executes a c program which decrypts the mpdata file, reads in the relevant bytes for kills and deaths.
It then makes a GET request to a PHP script which saves the kills, deaths and a unix timestamp to a file.
A WordPress widget displays the statistics as a Google Chart after converting the file to JSON.
The code is on github, it’s all very ugly, but working.
I’ve started working on a little project which will do the following:
Read out the current cod4 stats (kills/deaths) from the local player profile
Post it automatically to a php script so it can be displayed (e.g. on this site) using WSH (Windows Script Host)
What i will need to figure out for that:
Decrypting the mpdata file in <cod 4 game dir>\players\profiles\<profile name>
Read in the correct offsets for kills and deaths in the decrypted file using JS
Bonus: Fancy stats with the Google Charts API
The first item on this list is solved by using this guy’s decrypter which can be executed from the script. The code for the decryption is available under GPL so a future version would involve porting this code to JS.
Update: Turns out the whole read some bytes from a file thing is incredibly stupid in JS/VBS.