No commit activity in last 3 years
No release in over 3 years
Gem for finding paths between artists in Last.fm
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

= 4.1.2
= 1.7.0
 Project Readme
This project is the implementation of a conversation between César Alvarez Doval and myself, a program which finds a path between two (apparently) unrelated artists.

== Installation

Just a simple and clean

 gem install lastfm-path-finder

== Requisites

It requires Redis. It's been developed using a Redis 2.4.6 and Ubuntu 11.10.

== Last.fm settings

You need both an API key and an API secret from Last.fm to use this gem. You can obtain them in the Last.fm API site (http://www.lastfm.es/api).

You must load this API settings in an YML file like the one in config/settings.example.yml and provide its path to the gem (see below for detailed use both as a command and as a library). By default it looks for it in config/settings.yml .

== How to use the commands?

=== Finding similar artists

Run the command:

 lastfm-path-finder similar "Pink Floyd"

To obtain the artists similar to Pink Floyd according to Last.fm

You can find those similar artists that a list of artists have in common by providing multiple artists names:

 lastfm-path-finder similar "Pink Floyd" "Beatles"

=== Finding a path

Run the command:

 lastfm-path-finder "Pink Floyd" "Beatles"

And you will find the path of similar artists that comes from Pink Floyd to Beatles

=== Lastfm Settings

In order to provide the settings path just add the --settings option to the command you are running

 lastfm-path-finder similar "Pink Floyd" --settings path/to/settings.file.yml

== How to use the gem

=== Finding similar artists

 LastfmPathFinder::Artist.new(:name => "Pink Floyd").related_artists

You obtain a Redis SortedSet

=== Finding a path

 from = LastfmPathFinder::Artist.new(:name => "Pink Floyd")
 to = LastfmPathFinder::Artist.new(:name => "Franz Ferdinand")
 path = LastfmPathFinder::Finder.find from, to

You obtain a LastfmPathFinder::Path object.

=== Lastfm Settings

In order to provide the settings path just execute the source method on Settings class before you try to obtain any data from Lastfm.

 LastfmPathFinder::Settings.source "path/to/settings.file.yml"

== Contributions

Gemfile includes all the requried gemos to develope this gem. Fork and pull request any feature you think could be interesting :)