Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: rjp/spotify-stuff
...
head fork: rjp/spotify-stuff
Checking mergeability… Don't worry, you can still create the pull request.
Commits on Mar 12, 2012
@rjp Convert published Spotify playlists into XSPF XML nonsense for andym f153338
Commits on May 16, 2012
@rjp Different approach to downloading playlists
Handing everything off to despotify-gateway seems more reliable
98b20eb
Commits on May 17, 2012
@rjp Lots of tidying up and handling errors
Stolen id2uri from lib/despotify.c for convert track IDs to spotify URIs
8a4edd3
@rjp Shuffle things around, write out playlists as we find them
Try and create the real playlist link in the XSPF
TODO figure out why id2uri doesn't work for playlist ids
f416054
@andym andym use the ISRC as the track identifier in XSPF 1b2baa7
@andym andym playlist license must be a URI 4b458fd
@andym andym track/location must be a URI 51950c7
@andym andym playlist/info should be 'a web page to find out more about this playl…
…ist. Likely to be homepage of the author' so point that straight at the spotify user. Add a location element, which is a URI pointing at the playlist
b79da72
@rjp id2uri sometimes uses less than 22 characters which leaves prefixed s…
…paces

remove them to avoid breakage later
baa799a
@rjp Guard against missing bits of information in the XSPF construction 8ac5439
@rjp Even though playlists have 34 character identifiers, the URIs are con…
…structed from only the first 32

{ I HATE THE SPOTIFY API }
79206ec
@rjp Put the correct username for the playlist into the XSPF output dc08fb9
@rjp Treat spotify:blah links as "real" tids and handle them in load_track…
… instead of load_playlist

If tid is a spotify:local URI then fudge up a track record based on the artist/album/title data we have

We need the URI module for unescaping the URIs
5a23042
@rjp Remember which user originated this playlist f06f7dc
@rjp Sometimes we have a partial URI, sometimes we have a full URI, someti…
…mes we ALL FALL DOWN WITH PLAGUE
32b0d04
@rjp I am an idiot. Fix up the accesses to XSPF::Track 75782d7
@andym andym Grab the track duration (in ms). Hopefully local tracks have this... b31d4d2
Commits on May 18, 2012
@rjp Move outputdir into the object as an attribute df57fa8
@rjp Distinguish between "load all playlists" and "load these playlists"
TODO add some kind of "load playlists matching /xyz/" option
cdac444
@rjp Merge remote-tracking branch 'origin/master' e59593e
@rjp Local tracks kinda have a duration in seconds tacked on
TODO no idea if this is a definite feature
c6c5712
@rjp Fix dumb "=" vs "=>" confusion caused by illness-induced braindeath 75c580b
@rjp Minor tidyups 2ef760f
@rjp Retrieve the UPC using the Spotify HTTP Metadata API for albums
If we find a UPC, smoosh it into the XSPF Track Identifier (because the Ruby XSPF library is broken)
Cache album metadata per session to avoid abuse
TODO stick the returned XML into an SDBM store for intra-session caching
4396f6d
@rjp Merge branch 'spotify-cache-album-upc' eb45442
@andym andym playlists are supposed to have an identifier c22367b
@andym andym Merge branch 'master' of github.com:rjp/experiments 48a1cad
@rjp Trap errors coming from the API by returning nil 5ed3266
@andym andym track identifier can't have any spaces in it 60c5a1f
@andym andym Merge branch 'master' of github.com:rjp/experiments 4213ca4
@rjp Work around annoying Fixnum vs String confusion with local tracks (in…
… two ways)
7f1b9af
@rjp Merge remote-tracking branch 'origin/master' 0b6c3bc
@rjp Join the identifier parts with semicolons for easier splitting later 1a22ede
@rjp Heisenbug is making track[:uri] nil - must be from id2uri but how?
Work around it by protecting in two places by adding magic markers
124ce8a
@rjp Refactor id2uri into a call to baseconvert
This gives us uri2id for free if we need it later
Warn if we see a trackid matching spotify:track:.*
d84fb12
Commits on May 19, 2012
@rjp Use Nokogiri::XML::Builder to fashion our XSPF output instead of the …
…xspf gem

Removes a dependency, gives us correct outputting of <identifier> and <meta> tags
FIXME should roll that out and into a new xspf handling library for the sake of sanity
eefc63a
Commits on May 21, 2012
@rjp Add artist id to the track hash 0755e05
@rjp Anything in :album_meta :id will be added as an identifier URI of the…
… form "key:value"

Move the trackNum node output to group all identifier tags together
69d45ca
@rjp If we have a "real" track, add Spotify links to artist + album and id…
…s for everything as meta tags
b3f7379
@rjp Compartmentalise 494995a
@rjp Merge remote-tracking branch 'rs/master' 23db623
Something went wrong with that request. Please try again.