rockstar 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
- * v 0.3.0: update api to use v2.0 of the last.fm api and renamed gem to
2
- * "Rockstar Gem"
1
+ * v 0.4.0: Add geo class and support for events and locations
2
+ * v 0.3.0: update api to use v2.0 of the last.fm api and renamed gem to "Rockstar Gem"
3
3
  * v 0.2.3: changed the way things get escaped in hopes that it would fix some problems some were having
4
4
  * v 0.2.2: a bunch of changes from titanous, mostly refactoring
5
5
  * v 0.2.0: added support for scrobbling tracks and now playing submission (Titanous)
@@ -1,7 +1,7 @@
1
1
  =Rockstar
2
2
 
3
3
  Rockstar is a wrapper for the last.fm audioscrobbler web services (http://www.last.fm/api/). This gem is based on the scrobbler
4
- gem by John Nunemaker and updated to use the 2.0 version of the last.fm api
4
+ gem by John Nunemaker and was updated to use the 2.0 version of the last.fm api
5
5
 
6
6
  Below is just a sampling of how easy this lib is to use.
7
7
 
@@ -80,6 +80,20 @@ If you want to use the api in an rails app, you could add an initializer in conf
80
80
  # examples/scrobble.rb for a complete example
81
81
  track.love(session_key)
82
82
 
83
+ ==Geo
84
+
85
+ geo = Rockstar::Geo.new
86
+
87
+ # Get events for a lat/long
88
+ geo.events(:lat => 50.0, :long => 12.3).each{|e| p "#{e.title} at #{e.venue.name}"}
89
+
90
+ # Get events for a location
91
+ geo.events(:location => 'london').each{|e| p "#{e.title} at #{e.venue.name}"}
92
+
93
+ # To get a list of possible locations use
94
+ geo.metros("germany").each{|m| p m.name}
95
+
96
+
83
97
  == Token Authentication (for scrobbling and recommendations)
84
98
 
85
99
  a = Rockstar::Auth.new
data/Rakefile CHANGED
@@ -8,7 +8,7 @@ begin
8
8
  Jeweler::Tasks.new do |gem|
9
9
  gem.name = "rockstar"
10
10
  gem.summary = %Q{wrapper for audioscrobbler (last.fm) web services}
11
- gem.description = %Q{This gem is an updated version of jnunemakers scrobbler gem.}
11
+ gem.description = %Q{This gem is an updated version of jnunemakers scrobbler gem. Rockstar uses v2.0 of the last.fm api.}
12
12
  gem.email = "bodo@bitboxer.de"
13
13
  gem.homepage = "http://github.com/bitboxer/rockstar"
14
14
  gem.authors = ["Bodo Tasche"]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.4.0
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'rockstar'))
2
+
3
+ # Please enter your API-Keys into lastfm.yml first.
4
+ # You can find them here : http://www.lastfm.de/api/account
5
+ Rockstar.lastfm = YAML.load_file(File.join(File.dirname(__FILE__), 'lastfm.yml'))
6
+
7
+ geo = Rockstar::Geo.new
8
+
9
+ geo.events(:location => 'london').each{|e| p "#{e.title} at #{e.venue.name}"}
@@ -8,9 +8,13 @@ require 'rockstar/version'
8
8
  require 'rockstar/album'
9
9
  require 'rockstar/artist'
10
10
  require 'rockstar/chart'
11
+ require 'rockstar/event'
12
+ require 'rockstar/geo'
13
+ require 'rockstar/metro'
11
14
  require 'rockstar/user'
12
15
  require 'rockstar/tag'
13
16
  require 'rockstar/track'
17
+ require 'rockstar/venue'
14
18
 
15
19
  require 'rockstar/simpleauth'
16
20
  require 'rockstar/auth'
@@ -0,0 +1,73 @@
1
+ module Rockstar
2
+ class Event < Base
3
+
4
+ attr_accessor :eid, :title, :artists, :headliners, :start_date, :end_date,
5
+ :description, :attendance, :reviews, :tag, :url, :website, :tickets,
6
+ :cancelled, :tags, :images, :venue
7
+
8
+ class << self
9
+ def new_from_xml(xml, doc)
10
+ e = Event.new(
11
+ (xml).at(:id).inner_html,
12
+ (xml).at(:title).inner_html
13
+ )
14
+
15
+ e.artists = []
16
+ xml.search("/artists/artist").each {|a|
17
+ e.artists << a.inner_html
18
+ }
19
+
20
+ e.headliners = []
21
+ xml.search("/artists/headliner").each{|h|
22
+ e.headliners << h.inner_html
23
+ }
24
+
25
+ e.start_date = Time.parse(xml.search("/startDate").inner_html.strip)
26
+ e.end_date = Time.parse(xml.search("/endDate").inner_html.strip)
27
+ e.description = xml.search("/description").inner_html.strip
28
+ e.attendance = xml.search("/attendance").inner_html.strip.to_i
29
+ e.reviews = xml.search("/reviews").inner_html.strip.to_i
30
+ e.tag = xml.search("/tag").inner_html.strip
31
+ e.url = xml.search("/url").inner_html.strip
32
+ e.website = xml.search("/website").inner_html.strip
33
+ e.cancelled = xml.search("/cancelled").inner_html.strip == 1
34
+
35
+ e.tickets = []
36
+ xml.search("/tickets/ticket").each{|t|
37
+ e.tickets << t.inner_html
38
+ }
39
+
40
+ e.tags = []
41
+ xml.search("/tags/tag").each{|t|
42
+ e.tags << t.inner_html
43
+ }
44
+
45
+ e.images = {}
46
+ xml.search('/image').each {|image|
47
+ e.images[image['size']] = image.inner_html
48
+ }
49
+
50
+ e.venue = Venue.new_from_xml(xml.search('/venue'), doc) if xml.search('/venue')
51
+
52
+ e
53
+ end
54
+ end
55
+
56
+ def initialize(id, title)
57
+ raise ArgumentError, "ID is required" if id.blank?
58
+ raise ArgumentError, "Title is required" if title.blank?
59
+ @eid = id
60
+ @title = title
61
+ end
62
+
63
+ def image(which=:medium)
64
+ which = which.to_s
65
+ raise ArgumentError unless ['small', 'medium', 'large', 'extralarge', 'mega'].include?(which)
66
+ if (self.images.nil?)
67
+ load_info
68
+ end
69
+ self.images[which]
70
+ end
71
+ end
72
+ end
73
+
@@ -0,0 +1,22 @@
1
+ module Rockstar
2
+ class Geo < Base
3
+
4
+
5
+ # Get events in a specific location. Opts can be
6
+ #
7
+ # * :location => 'madrid' # A city name from geo.metros
8
+ # * :lat => 50.0, :long => 14.0 # A geo point
9
+ #
10
+ # Additionally you can set the distance from that point with
11
+ # :distance => 50 # 50 km from the given location
12
+ #
13
+ def events(opts = {}, force = false)
14
+ get_instance("geo.getEvents", :events, :event, opts, force)
15
+ end
16
+
17
+ def metros(country, force = false)
18
+ get_instance("geo.getMetros", :metros, :metro, {:country => country}, force)
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ module Rockstar
2
+ class Metro < Base
3
+
4
+ attr_accessor :name, :country
5
+
6
+ class << self
7
+ def new_from_xml(xml, doc)
8
+ Metro.new(
9
+ (xml).at(:name).inner_html,
10
+ (xml).at(:country).inner_html
11
+ )
12
+ end
13
+ end
14
+
15
+ def initialize(name, country)
16
+ raise ArgumentError, "Name is required" if name.blank?
17
+ raise ArgumentError, "Country is required" if country.blank?
18
+ @name = name
19
+ @country = country
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+
26
+
@@ -189,6 +189,11 @@ module Rockstar
189
189
  doc = self.class.fetch_and_parse("user.getWeeklyTrackChart", {:user => @username, :from => from, :to => to})
190
190
  (doc/:track).inject([]) { |elements, el| elements << Track.new_from_xml(el); elements }
191
191
  end
192
-
192
+
193
+ # Get the recommendated events for the user, auth.session.key needed.
194
+ def events(session_key, force = false)
195
+ get_instance("user.getEvents", :events, :event, {:user => @username, :sk => session_key}, force)
196
+ end
197
+
193
198
  end
194
199
  end
@@ -0,0 +1,51 @@
1
+ module Rockstar
2
+ class Venue < Base
3
+
4
+ attr_accessor :vid, :name, :city, :country, :street, :postalcode, :lat, :long, :url,
5
+ :website, :phonenumber, :images
6
+
7
+ class << self
8
+ def new_from_xml(xml, doc)
9
+ v = Venue.new(
10
+ (xml).at(:id).inner_html,
11
+ (xml).at(:name).inner_html
12
+ )
13
+
14
+ v.city = xml.search("/location/city").inner_html.strip
15
+ v.country = xml.search("/location/country").inner_html.strip
16
+ v.street = xml.search("/location/street").inner_html.strip
17
+ v.postalcode = xml.search("/location/postalcode").inner_html.strip
18
+ v.lat = xml.search("geo:lat").inner_html.strip
19
+ v.long = xml.search("geo:long").inner_html.strip
20
+ v.url = xml.search("/url").inner_html.strip
21
+ v.website = xml.search("/website").inner_html.strip
22
+ v.phonenumber= xml.search("/phonenumber").inner_html.strip
23
+
24
+ v.images = {}
25
+ xml.search('/image').each {|image|
26
+ v.images[image['size']] = image.inner_html
27
+ }
28
+
29
+ v
30
+ end
31
+ end
32
+
33
+ def initialize(id, name)
34
+ raise ArgumentError, "ID is required" if id.blank?
35
+ raise ArgumentError, "Name is required" if name.blank?
36
+ @vid = id
37
+ @name = name
38
+ end
39
+
40
+ def image(which=:medium)
41
+ which = which.to_s
42
+ raise ArgumentError unless ['small', 'medium', 'large', 'extralarge', 'mega'].include?(which)
43
+ if (self.images.nil?)
44
+ load_info
45
+ end
46
+ self.images[which]
47
+ end
48
+ end
49
+ end
50
+
51
+
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rockstar}
8
- s.version = "0.3.0"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bodo Tasche"]
12
- s.date = %q{2010-07-29}
13
- s.description = %q{This gem is an updated version of jnunemakers scrobbler gem.}
12
+ s.date = %q{2010-07-30}
13
+ s.description = %q{This gem is an updated version of jnunemakers scrobbler gem. Rockstar uses v2.0 of the last.fm api.}
14
14
  s.email = %q{bodo@bitboxer.de}
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
26
26
  "examples/.gitignore",
27
27
  "examples/album.rb",
28
28
  "examples/artist.rb",
29
+ "examples/geo.rb",
29
30
  "examples/lastfm.yml_example",
30
31
  "examples/scrobble.rb",
31
32
  "examples/tag.rb",
@@ -37,6 +38,9 @@ Gem::Specification.new do |s|
37
38
  "lib/rockstar/auth.rb",
38
39
  "lib/rockstar/base.rb",
39
40
  "lib/rockstar/chart.rb",
41
+ "lib/rockstar/event.rb",
42
+ "lib/rockstar/geo.rb",
43
+ "lib/rockstar/metro.rb",
40
44
  "lib/rockstar/playing.rb",
41
45
  "lib/rockstar/rest.rb",
42
46
  "lib/rockstar/scrobble.rb",
@@ -46,6 +50,7 @@ Gem::Specification.new do |s|
46
50
  "lib/rockstar/tokenauth.rb",
47
51
  "lib/rockstar/track.rb",
48
52
  "lib/rockstar/user.rb",
53
+ "lib/rockstar/venue.rb",
49
54
  "lib/rockstar/version.rb",
50
55
  "rockstar.gemspec",
51
56
  "test/fixtures/xml/album/getinfo_album_Some_Hearts_artist_Carrie_Underwood.xml",
@@ -54,6 +59,8 @@ Gem::Specification.new do |s|
54
59
  "test/fixtures/xml/artist/gettopfans_artist_Metallica.xml",
55
60
  "test/fixtures/xml/artist/gettoptags_artist_Metallica.xml",
56
61
  "test/fixtures/xml/artist/gettoptracks_artist_Metallica.xml",
62
+ "test/fixtures/xml/geo/getevents_location_london.xml",
63
+ "test/fixtures/xml/geo/getmetros_country_germany.xml",
57
64
  "test/fixtures/xml/tag/gettopalbums_tag_rock.xml",
58
65
  "test/fixtures/xml/tag/gettopartists_tag_rock.xml",
59
66
  "test/fixtures/xml/tag/gettoptags.xml",
@@ -61,6 +68,7 @@ Gem::Specification.new do |s|
61
68
  "test/fixtures/xml/track/gettopfans_artist_Carrie_Underwood_track_Before_He_Cheats.xml",
62
69
  "test/fixtures/xml/track/gettoptags_artist_Carrie_Underwood_track_Before_He_Cheats.xml",
63
70
  "test/fixtures/xml/track/love_artist_Carrie_Underwood_sk_tag_track_Before_He_Cheats.xml",
71
+ "test/fixtures/xml/user/getevents_sk_token_user_bodot.xml",
64
72
  "test/fixtures/xml/user/getfriends_user_jnunemaker.xml",
65
73
  "test/fixtures/xml/user/getinfo_user_jnunemaker.xml",
66
74
  "test/fixtures/xml/user/getinfo_user_oaknd1.xml",
@@ -85,6 +93,7 @@ Gem::Specification.new do |s|
85
93
  "test/unit/test_album.rb",
86
94
  "test/unit/test_artist.rb",
87
95
  "test/unit/test_chart.rb",
96
+ "test/unit/test_geo.rb",
88
97
  "test/unit/test_playing.rb",
89
98
  "test/unit/test_scrobble.rb",
90
99
  "test/unit/test_simpleauth.rb",
@@ -104,6 +113,7 @@ Gem::Specification.new do |s|
104
113
  "test/unit/test_album.rb",
105
114
  "test/unit/test_artist.rb",
106
115
  "test/unit/test_chart.rb",
116
+ "test/unit/test_geo.rb",
107
117
  "test/unit/test_playing.rb",
108
118
  "test/unit/test_scrobble.rb",
109
119
  "test/unit/test_simpleauth.rb",
@@ -113,6 +123,7 @@ Gem::Specification.new do |s|
113
123
  "test/unit/test_user.rb",
114
124
  "examples/album.rb",
115
125
  "examples/artist.rb",
126
+ "examples/geo.rb",
116
127
  "examples/scrobble.rb",
117
128
  "examples/tag.rb",
118
129
  "examples/track.rb",
@@ -0,0 +1,531 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <lfm status="ok">
3
+ <events xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" location="London, United Kingdom" page="1" totalpages="149" total="1486">
4
+ <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
5
+ <id>1595673</id>
6
+ <title>Basement Scam</title>
7
+ <artists>
8
+ <artist>George Washington's Penis</artist>
9
+ <artist>The Blanche Hudson Weekend</artist>
10
+ <artist>Electrophonvintage</artist>
11
+ <headliner>George Washington's Penis</headliner>
12
+ </artists>
13
+ <venue>
14
+ <id>8780149</id>
15
+ <name>Buffalo Bar</name>
16
+ <location>
17
+ <city>London</city>
18
+ <country>United Kingdom</country>
19
+ <street>259 Upper Street, Highbury Corner</street>
20
+ <postalcode>N1 1RU</postalcode>
21
+ <geo:point>
22
+ <geo:lat>51.546074</geo:lat>
23
+ <geo:long>-0.103393</geo:long>
24
+ </geo:point>
25
+ </location>
26
+ <url>http://www.last.fm/venue/8780149+Buffalo+Bar</url>
27
+ <website>http://www.buffalobar.co.uk/</website>
28
+ <phonenumber></phonenumber>
29
+ <image size="small">http://userserve-ak.last.fm/serve/34/12225457.jpg</image>
30
+ <image size="medium">http://userserve-ak.last.fm/serve/64/12225457.jpg</image>
31
+ <image size="large">http://userserve-ak.last.fm/serve/126/12225457.jpg</image>
32
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/12225457.jpg</image>
33
+ <image size="mega">http://userserve-ak.last.fm/serve/_/12225457/Buffalo+Bar+bar3th.jpg</image>
34
+ </venue> <startDate>Fri, 30 Jul 2010 01:12:01</startDate>
35
+ <description></description>
36
+ <image size="small"></image>
37
+ <image size="medium"></image>
38
+ <image size="large"></image>
39
+ <image size="extralarge"></image>
40
+ <attendance>13</attendance>
41
+ <reviews>0</reviews>
42
+ <tag>lastfm:event=1595673</tag>
43
+ <url>http://www.last.fm/event/1595673+Basement+Scam</url>
44
+ <website></website>
45
+ <tickets>
46
+ </tickets>
47
+ <cancelled>0</cancelled>
48
+ <tags>
49
+ <tag>under 2000 listeners</tag>
50
+ </tags>
51
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
52
+ <id>1618751</id>
53
+ <title>Reggie Watts</title>
54
+ <artists>
55
+ <artist>Reggie Watts</artist>
56
+ <headliner>Reggie Watts</headliner>
57
+ </artists>
58
+ <venue>
59
+ <id>8777870</id>
60
+ <name>Bloomsbury Theatre</name>
61
+ <location>
62
+ <city>London</city>
63
+ <country>United Kingdom</country>
64
+ <street>15 Gordon Street</street>
65
+ <postalcode>WC1H 0AH</postalcode>
66
+ <geo:point>
67
+ <geo:lat>51.525323</geo:lat>
68
+ <geo:long>-0.133001</geo:long>
69
+ </geo:point>
70
+ </location>
71
+ <url>http://www.last.fm/venue/8777870+Bloomsbury+Theatre</url>
72
+ <website>http://www.thebloomsbury.com</website>
73
+ <phonenumber></phonenumber>
74
+ <image size="small"></image>
75
+ <image size="medium"></image>
76
+ <image size="large"></image>
77
+ <image size="extralarge"></image>
78
+ <image size="mega"></image>
79
+ </venue> <startDate>Fri, 30 Jul 2010 08:01:01</startDate>
80
+ <description></description>
81
+ <image size="small">http://userserve-ak.last.fm/serve/34/16286901.jpg</image>
82
+ <image size="medium">http://userserve-ak.last.fm/serve/64/16286901.jpg</image>
83
+ <image size="large">http://userserve-ak.last.fm/serve/126/16286901.jpg</image>
84
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/16286901.jpg</image>
85
+ <attendance>1</attendance>
86
+ <reviews>0</reviews>
87
+ <tag>lastfm:event=1618751</tag>
88
+ <url>http://www.last.fm/event/1618751+Reggie+Watts+at+Bloomsbury+Theatre+on+30+July+2010</url>
89
+ <website></website>
90
+ <tickets>
91
+ </tickets>
92
+ <cancelled>0</cancelled>
93
+ <tags>
94
+ <tag>funk</tag>
95
+ <tag>soul</tag>
96
+ <tag>electronic</tag>
97
+ <tag>beatbox</tag>
98
+ </tags>
99
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
100
+ <id>1490925</id>
101
+ <title>Ssh All Day Festival Of Quiet Music</title>
102
+ <artists>
103
+ <artist>Alex Highton</artist>
104
+ <headliner>Alex Highton</headliner>
105
+ </artists>
106
+ <venue>
107
+ <id>8792865</id>
108
+ <name>Cecil Sharp House</name>
109
+ <location>
110
+ <city>London</city>
111
+ <country>United Kingdom</country>
112
+ <street>2 Regents Park Road</street>
113
+ <postalcode>NW1 7AY</postalcode>
114
+ <geo:point>
115
+ <geo:lat>51.5381</geo:lat>
116
+ <geo:long>-0.149363</geo:long>
117
+ </geo:point>
118
+ </location>
119
+ <url>http://www.last.fm/venue/8792865+Cecil+Sharp+House</url>
120
+ <website>http://www.efdss.org/contact.htm</website>
121
+ <phonenumber></phonenumber>
122
+ <image size="small">http://userserve-ak.last.fm/serve/34/88471.jpg</image>
123
+ <image size="medium">http://userserve-ak.last.fm/serve/64/88471.jpg</image>
124
+ <image size="large">http://userserve-ak.last.fm/serve/126/88471.jpg</image>
125
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/88471.jpg</image>
126
+ <image size="mega">http://userserve-ak.last.fm/serve/_/88471/Cecil+Sharp+House.jpg</image>
127
+ </venue> <startDate>Fri, 30 Jul 2010 09:18:01</startDate>
128
+ <description><![CDATA[<div class="bbcode">Shh the mini festival of quiet music. Cecil Sharp House is the headquarters of the English Folk Dance and Song Society, and houses the Vaughan Williams Memorial Library. It also contains a number of halls which are used for folk events of various sorts. There is a licensed bar serving Greene King re</div>]]></description>
129
+ <image size="small">http://userserve-ak.last.fm/serve/34/41195423.jpg</image>
130
+ <image size="medium">http://userserve-ak.last.fm/serve/64/41195423.jpg</image>
131
+ <image size="large">http://userserve-ak.last.fm/serve/126/41195423.jpg</image>
132
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/41195423.jpg</image>
133
+ <attendance>2</attendance>
134
+ <reviews>0</reviews>
135
+ <tag>lastfm:event=1490925</tag>
136
+ <url>http://www.last.fm/event/1490925+Ssh+All+Day+Festival+Of+Quiet+Music</url>
137
+ <website>http://www.localism.org.uk</website>
138
+ <tickets>
139
+ </tickets>
140
+ <cancelled>0</cancelled>
141
+ <tags>
142
+ <tag>folk</tag>
143
+ <tag>mellow</tag>
144
+ <tag>singer-songwriter</tag>
145
+ <tag>indie</tag>
146
+ </tags>
147
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
148
+ <id>1539290</id>
149
+ <title>Camera &amp; Tremor - Album Launch Party</title>
150
+ <artists>
151
+ <artist>the Tamborines</artist>
152
+ <artist>Advert</artist>
153
+ <headliner>the Tamborines</headliner>
154
+ </artists>
155
+ <venue>
156
+ <id>8968610</id>
157
+ <name>The Victoria</name>
158
+ <location>
159
+ <city>London</city>
160
+ <country>United Kingdom</country>
161
+ <street>110 Grove Road, Bow</street>
162
+ <postalcode>E3 5TH</postalcode>
163
+ <geo:point>
164
+ <geo:lat>51.538376</geo:lat>
165
+ <geo:long>-0.040078</geo:long>
166
+ </geo:point>
167
+ </location>
168
+ <url>http://www.last.fm/venue/8968610+The+Victoria</url>
169
+ <website></website>
170
+ <phonenumber></phonenumber>
171
+ <image size="small">http://userserve-ak.last.fm/serve/34/17962599.jpg</image>
172
+ <image size="medium">http://userserve-ak.last.fm/serve/64/17962599.jpg</image>
173
+ <image size="large">http://userserve-ak.last.fm/serve/126/17962599.jpg</image>
174
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/17962599.jpg</image>
175
+ <image size="mega">http://userserve-ak.last.fm/serve/_/17962599/The+Victoria+pic96.jpg</image>
176
+ </venue> <startDate>Fri, 30 Jul 2010 09:39:01</startDate>
177
+ <description><![CDATA[<div class="bbcode">Launch party for our debut album<br />
178
+ [ [ Camera &amp; Tremor] ]<br />
179
+ <br />
180
+ Come and celebrate with us!<br />
181
+ <br />
182
+ Special Guests<br />
183
+ Advert ( live)<br />
184
+ <br />
185
+ DJ sets from<br />
186
+ Jonathan &amp; Panda [The Ruling Class]<br />
187
+ Vanessa &amp; Issie (The She Set)<br />
188
+ <br />
189
+ More to be announced shortly!<br />
190
+ <a href="http://www.myspace.com/thetamborines" rel="nofollow">http://www.myspace.com/thetamborines</a><br />
191
+ <a href="http://www.myspace.com/therulingclassuk" rel="nofollow">http://www.myspace.com/therulingclassuk</a><br />
192
+ <a href="http://www.myspace.com/thesheset" rel="nofollow">http://www.myspace.com/thesheset</a><br />
193
+ <a href="http://www.myspace.com/advert" rel="nofollow">http://www.myspace.com/advert</a></div>]]></description>
194
+ <image size="small">http://userserve-ak.last.fm/serve/34/36700663.jpg</image>
195
+ <image size="medium">http://userserve-ak.last.fm/serve/64/36700663.jpg</image>
196
+ <image size="large">http://userserve-ak.last.fm/serve/126/36700663.jpg</image>
197
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/36700663.jpg</image>
198
+ <attendance>8</attendance>
199
+ <reviews>0</reviews>
200
+ <tag>lastfm:event=1539290</tag>
201
+ <url>http://www.last.fm/event/1539290+Camera+-+Tremor++-+Album+Launch+Party</url>
202
+ <website></website>
203
+ <tickets>
204
+ </tickets>
205
+ <cancelled>0</cancelled>
206
+ <tags>
207
+ <tag>shoegaze</tag>
208
+ <tag>under 2000 listeners</tag>
209
+ <tag>indie</tag>
210
+ <tag>post-punk</tag>
211
+ <tag>lo-fi</tag>
212
+ <tag>indiepop</tag>
213
+ <tag>experimental</tag>
214
+ </tags>
215
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
216
+ <id>1552481</id>
217
+ <title>Guided By Lights</title>
218
+ <artists>
219
+ <artist>Guided By Lights</artist>
220
+ <artist>The Cut Outs</artist>
221
+ <headliner>Guided By Lights</headliner>
222
+ </artists>
223
+ <venue>
224
+ <id>8816722</id>
225
+ <name>The Spice Of Life</name>
226
+ <location>
227
+ <city>London</city>
228
+ <country>United Kingdom</country>
229
+ <street>6 Moor St</street>
230
+ <postalcode>W1D 5NA</postalcode>
231
+ <geo:point>
232
+ <geo:lat>51.513419</geo:lat>
233
+ <geo:long>-0.129783</geo:long>
234
+ </geo:point>
235
+ </location>
236
+ <url>http://www.last.fm/venue/8816722+The+Spice+Of+Life</url>
237
+ <website>http://www.spiceoflifesoho.com/</website>
238
+ <phonenumber></phonenumber>
239
+ <image size="small">http://userserve-ak.last.fm/serve/34/6264221.gif</image>
240
+ <image size="medium">http://userserve-ak.last.fm/serve/64/6264221.gif</image>
241
+ <image size="large">http://userserve-ak.last.fm/serve/126/6264221.gif</image>
242
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/6264221.gif</image>
243
+ <image size="mega">http://userserve-ak.last.fm/serve/_/6264221/The+Spice+Of+Life+spice_home.gif</image>
244
+ </venue> <startDate>Fri, 30 Jul 2010 11:21:01</startDate>
245
+ <description></description>
246
+ <image size="small">http://userserve-ak.last.fm/serve/34/34685611.jpg</image>
247
+ <image size="medium">http://userserve-ak.last.fm/serve/64/34685611.jpg</image>
248
+ <image size="large">http://userserve-ak.last.fm/serve/126/34685611.jpg</image>
249
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/34685611.jpg</image>
250
+ <attendance>1</attendance>
251
+ <reviews>0</reviews>
252
+ <tag>lastfm:event=1552481</tag>
253
+ <url>http://www.last.fm/event/1552481+Guided+By+Lights+at+The+Spice+Of+Life+on+30+July+2010</url>
254
+ <website>http://www.facebook.com/event.php?eid=130602816952770&amp;ref=mf</website>
255
+ <tickets>
256
+ </tickets>
257
+ <cancelled>0</cancelled>
258
+ <tags>
259
+ <tag>folk</tag>
260
+ <tag>brighton</tag>
261
+ <tag>alternative</tag>
262
+ <tag>indie pop</tag>
263
+ <tag>indie</tag>
264
+ </tags>
265
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
266
+ <id>1604617</id>
267
+ <title>Djevara LIVE : Moved to THE WATER RATS</title>
268
+ <artists>
269
+ <artist>Djevara</artist>
270
+ <headliner>Djevara</headliner>
271
+ </artists>
272
+ <venue>
273
+ <id>8790875</id>
274
+ <name>229 Great Portland Street</name>
275
+ <location>
276
+ <city>London</city>
277
+ <country>United Kingdom</country>
278
+ <street>229 Great Portland Street</street>
279
+ <postalcode>W1W 5PN</postalcode>
280
+ <geo:point>
281
+ <geo:lat>51.523568</geo:lat>
282
+ <geo:long>-0.144821</geo:long>
283
+ </geo:point>
284
+ </location>
285
+ <url>http://www.last.fm/venue/8790875+229+Great+Portland+Street</url>
286
+ <website>http://www.229thevenue.co.uk/</website>
287
+ <phonenumber></phonenumber>
288
+ <image size="small">http://userserve-ak.last.fm/serve/34/8601565.jpg</image>
289
+ <image size="medium">http://userserve-ak.last.fm/serve/64/8601565.jpg</image>
290
+ <image size="large">http://userserve-ak.last.fm/serve/126/8601565.jpg</image>
291
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/8601565.jpg</image>
292
+ <image size="mega">http://userserve-ak.last.fm/serve/_/8601565/229+Great+Portland+Street+229front.jpg</image>
293
+ </venue> <startDate>Fri, 30 Jul 2010 13:37:01</startDate>
294
+ <description><![CDATA[<div class="bbcode">Djevara will be perfoming as part of a live showcase at THE WATER RATS on FRIDAY 30th JULY, one of London's premier small venues renowned for its sound and vibe. As a final last performance before heading into the studio to record &quot;The Rising Tide (Part 2)&quot;, the band will be using this as part of their &quot;Voice of The Voiceless&quot; campaign of shows, following on from the successful festival, aimed at promoting awareness and raising funds for people across the world affected by injustice, discrimination and oppression. Djevara will be showcasing all-new material here- playing through the new record in its entirety; this will be the first opportunity to hear the new material in its final form! :)<br />
295
+ <br />
296
+ FUNDRAISING<br />
297
+ Djevara will donate £1 from every ticket sold to Welfare Association (Palestine) for their vital work in Palestine. Here is a link: <a href="http://www.welfareassociation.org.uk" rel="nofollow">www.welfareassociation.org.uk</a> <br />
298
+ <br />
299
+ This is a part of the world where suffering results from one of the greatest injustices of our time made even more poignant by the fact that its one of the most conspicuous. <br />
300
+ <br />
301
+ Please come out and help us to make a difference.<br />
302
+ <br />
303
+ TICKETS AVAILABLE DIRECT FROM THE BAND HERE:<br />
304
+ <a href="http://www.wegottickets.com/event/87716" rel="nofollow">http://www.wegottickets.com/event/87716</a><br />
305
+ <br />
306
+ Alternatively please print off our flyer and bring it with you to the venue. Highly recommend ordering the advance ticket for cheaper entry.<br />
307
+ <br />
308
+ IMPORTANT NOTE! : we are not the promoters of this show. All donations to World Vision are from tickets we sell only.</div>]]></description>
309
+ <image size="small">http://userserve-ak.last.fm/serve/34/48883089.jpg</image>
310
+ <image size="medium">http://userserve-ak.last.fm/serve/64/48883089.jpg</image>
311
+ <image size="large">http://userserve-ak.last.fm/serve/126/48883089.jpg</image>
312
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/48883089.jpg</image>
313
+ <attendance>1</attendance>
314
+ <reviews>0</reviews>
315
+ <tag>lastfm:event=1604617</tag>
316
+ <url>http://www.last.fm/event/1604617+Djevara+LIVE+%3A+Moved+to+THE+WATER+RATS</url>
317
+ <website>http://www.wegottickets.com/event/87716</website>
318
+ <tickets>
319
+ </tickets>
320
+ <cancelled>0</cancelled>
321
+ <tags>
322
+ <tag>the low fidelity disconnect</tag>
323
+ <tag>punk</tag>
324
+ <tag>miocene</tag>
325
+ <tag>genin records</tag>
326
+ </tags>
327
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
328
+ <id>1500159</id>
329
+ <title>Tiësto</title>
330
+ <artists>
331
+ <artist>Tiësto</artist>
332
+ <artist>Pendulum</artist>
333
+ <artist>The Japanese Popstars</artist>
334
+ <artist>South Central</artist>
335
+ <artist>Avicii</artist>
336
+ <artist>Blamma! Blamma!</artist>
337
+ <artist>Eddie Halliwell</artist>
338
+ <artist>Gareth Wyn</artist>
339
+ <artist>Tom Staar</artist>
340
+ <artist>Stereo:Type</artist>
341
+ <artist>Sean Brosnan</artist>
342
+ <artist>I Am One</artist>
343
+ <artist>Union DJs</artist>
344
+ <artist>David Griffiths</artist>
345
+ <artist>Dom Chung</artist>
346
+ <artist>Jason Marx</artist>
347
+ <artist>Haran De Lucas</artist>
348
+ <headliner>Tiësto</headliner>
349
+ </artists>
350
+ <venue>
351
+ <id>8789850</id>
352
+ <name>Victoria Park</name>
353
+ <location>
354
+ <city>London</city>
355
+ <country>United Kingdom</country>
356
+ <street>Victoria Park</street>
357
+ <postalcode>E9</postalcode>
358
+ <geo:point>
359
+ <geo:lat>51.538271</geo:lat>
360
+ <geo:long>-0.043527</geo:long>
361
+ </geo:point>
362
+ </location>
363
+ <url>http://www.last.fm/venue/8789850+Victoria+Park</url>
364
+ <website></website>
365
+ <phonenumber></phonenumber>
366
+ <image size="small">http://userserve-ak.last.fm/serve/34/2612238.jpg</image>
367
+ <image size="medium">http://userserve-ak.last.fm/serve/64/2612238.jpg</image>
368
+ <image size="large">http://userserve-ak.last.fm/serve/126/2612238.jpg</image>
369
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/2612238.jpg</image>
370
+ <image size="mega">http://userserve-ak.last.fm/serve/_/2612238/Victoria+Park+250pxVictoria_park_bathing_pon.jpg</image>
371
+ </venue> <startDate>Fri, 30 Jul 2010 14:00:00</startDate>
372
+ <description></description>
373
+ <image size="small">http://userserve-ak.last.fm/serve/34/30889989.jpg</image>
374
+ <image size="medium">http://userserve-ak.last.fm/serve/64/30889989.jpg</image>
375
+ <image size="large">http://userserve-ak.last.fm/serve/126/30889989.jpg</image>
376
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/30889989.jpg</image>
377
+ <attendance>52</attendance>
378
+ <reviews>0</reviews>
379
+ <tag>lastfm:event=1500159</tag>
380
+ <url>http://www.last.fm/event/1500159+Ti%C3%ABsto+at+Victoria+Park+on+30+July+2010</url>
381
+ <website></website>
382
+ <tickets>
383
+ </tickets>
384
+ <cancelled>0</cancelled>
385
+ <tags>
386
+ <tag>electronic</tag>
387
+ </tags>
388
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
389
+ <id>1587931</id>
390
+ <title>My First Failure</title>
391
+ <artists>
392
+ <artist>My First Failure</artist>
393
+ <artist>Staring At The Sun</artist>
394
+ <artist>Almost Home</artist>
395
+ <artist>The Cold Harbour</artist>
396
+ <artist>No Second Chance</artist>
397
+ <artist>Lives At Sea</artist>
398
+ <headliner>My First Failure</headliner>
399
+ </artists>
400
+ <venue>
401
+ <id>8780039</id>
402
+ <name>The Fighting Cocks</name>
403
+ <location>
404
+ <city>Kingston upon Thames</city>
405
+ <country>United Kingdom</country>
406
+ <street>56 Old London Road</street>
407
+ <postalcode>KT2 6QA</postalcode>
408
+ <geo:point>
409
+ <geo:lat>51.410603</geo:lat>
410
+ <geo:long>-0.298777</geo:long>
411
+ </geo:point>
412
+ </location>
413
+ <url>http://www.last.fm/venue/8780039+The+Fighting+Cocks</url>
414
+ <website>http://www.the-fighting-cocks.co.uk/</website>
415
+ <phonenumber></phonenumber>
416
+ <image size="small">http://userserve-ak.last.fm/serve/34/14432601.jpg</image>
417
+ <image size="medium">http://userserve-ak.last.fm/serve/64/14432601.jpg</image>
418
+ <image size="large">http://userserve-ak.last.fm/serve/126/14432601.jpg</image>
419
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/14432601.jpg</image>
420
+ <image size="mega">http://userserve-ak.last.fm/serve/_/14432601/The+Fighting+Cocks+fighting.jpg</image>
421
+ </venue> <startDate>Fri, 30 Jul 2010 15:09:01</startDate>
422
+ <description><![CDATA[<div class="bbcode">£5<br />
423
+ <br />
424
+ 18+</div>]]></description>
425
+ <image size="small">http://userserve-ak.last.fm/serve/34/29434395.jpg</image>
426
+ <image size="medium">http://userserve-ak.last.fm/serve/64/29434395.jpg</image>
427
+ <image size="large">http://userserve-ak.last.fm/serve/126/29434395.jpg</image>
428
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/29434395.jpg</image>
429
+ <attendance>6</attendance>
430
+ <reviews>0</reviews>
431
+ <tag>lastfm:event=1587931</tag>
432
+ <url>http://www.last.fm/event/1587931+My+First+Failure+at+The+Fighting+Cocks+on+30+July+2010</url>
433
+ <website></website>
434
+ <tickets>
435
+ </tickets>
436
+ <cancelled>0</cancelled>
437
+ <tags>
438
+ <tag>hardcore</tag>
439
+ <tag>melodic hardcore</tag>
440
+ <tag>ukhc</tag>
441
+ </tags>
442
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
443
+ <id>1559929</id>
444
+ <title>Ghamailo presents Virtuoso</title>
445
+ <artists>
446
+ <artist>Sweet Leaf</artist>
447
+ <artist>The Frayed Laces</artist>
448
+ <artist>Tora!</artist>
449
+ <artist>justice nowhere</artist>
450
+ <artist>Lemon Curse</artist>
451
+ <artist>Rubinger</artist>
452
+ <headliner>Sweet Leaf</headliner>
453
+ </artists>
454
+ <venue>
455
+ <id>8783683</id>
456
+ <name>The Grosvenor</name>
457
+ <location>
458
+ <city>London</city>
459
+ <country>United Kingdom</country>
460
+ <street>17 Sidney Road</street>
461
+ <postalcode>SW9 0TP</postalcode>
462
+ <geo:point>
463
+ <geo:lat>51.469971</geo:lat>
464
+ <geo:long>-0.117076</geo:long>
465
+ </geo:point>
466
+ </location>
467
+ <url>http://www.last.fm/venue/8783683+The+Grosvenor</url>
468
+ <website>http://www.thegrosvenorsw9.co.uk/</website>
469
+ <phonenumber></phonenumber>
470
+ <image size="small">http://userserve-ak.last.fm/serve/34/12447293.jpg</image>
471
+ <image size="medium">http://userserve-ak.last.fm/serve/64/12447293.jpg</image>
472
+ <image size="large">http://userserve-ak.last.fm/serve/126/12447293.jpg</image>
473
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/12447293.jpg</image>
474
+ <image size="mega">http://userserve-ak.last.fm/serve/500/12447293/The+Grosvenor+DSC01246.jpg</image>
475
+ </venue> <startDate>Fri, 30 Jul 2010 18:00:00</startDate>
476
+ <description><![CDATA[<div class="bbcode">£5 / £3 for musicians</div>]]></description>
477
+ <image size="small">http://userserve-ak.last.fm/serve/34/26517541.jpg</image>
478
+ <image size="medium">http://userserve-ak.last.fm/serve/64/26517541.jpg</image>
479
+ <image size="large">http://userserve-ak.last.fm/serve/126/26517541.jpg</image>
480
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/26517541.jpg</image>
481
+ <attendance>4</attendance>
482
+ <reviews>0</reviews>
483
+ <tag>lastfm:event=1559929</tag>
484
+ <url>http://www.last.fm/event/1559929+Ghamailo+presents+Virtuoso</url>
485
+ <website></website>
486
+ <tickets>
487
+ </tickets>
488
+ <cancelled>0</cancelled>
489
+ </event> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >
490
+ <id>1589514</id>
491
+ <title>Chris Salmon and Social residents</title>
492
+ <artists>
493
+ <artist>Chris Salmon and Social residents</artist>
494
+ <headliner>Chris Salmon and Social residents</headliner>
495
+ </artists>
496
+ <venue>
497
+ <id>8839034</id>
498
+ <name>The Social</name>
499
+ <location>
500
+ <city>London</city>
501
+ <country>United Kingdom</country>
502
+ <street>5 Little Portland Street</street>
503
+ <postalcode>W1W 7JD</postalcode>
504
+ <geo:point>
505
+ <geo:lat>51.51739</geo:lat>
506
+ <geo:long>-0.140834</geo:long>
507
+ </geo:point>
508
+ </location>
509
+ <url>http://www.last.fm/venue/8839034+The+Social</url>
510
+ <website>http://www.thesocial.com/</website>
511
+ <phonenumber></phonenumber>
512
+ <image size="small">http://userserve-ak.last.fm/serve/34/30588575.jpg</image>
513
+ <image size="medium">http://userserve-ak.last.fm/serve/64/30588575.jpg</image>
514
+ <image size="large">http://userserve-ak.last.fm/serve/126/30588575.jpg</image>
515
+ <image size="extralarge">http://userserve-ak.last.fm/serve/252/30588575.jpg</image>
516
+ <image size="mega">http://userserve-ak.last.fm/serve/_/30588575/The+Social+story.jpg</image>
517
+ </venue> <startDate>Fri, 30 Jul 2010 18:00:00</startDate>
518
+ <description><![CDATA[<div class="bbcode">BAGGY MONDAYS are fresh from another triumphant set at Glastonbury, the Social's legendary night returns for another night of Madchester mayhem.</div>]]></description>
519
+ <image size="small"></image>
520
+ <image size="medium"></image>
521
+ <image size="large"></image>
522
+ <image size="extralarge"></image>
523
+ <attendance>0</attendance>
524
+ <reviews>0</reviews>
525
+ <tag>lastfm:event=1589514</tag>
526
+ <url>http://www.last.fm/event/1589514+Chris+Salmon+and+Social+residents+at+The+Social+on+30+July+2010</url>
527
+ <website>http://Friday Social - Baggy Mondays Special</website>
528
+ <tickets>
529
+ </tickets>
530
+ <cancelled>0</cancelled>
531
+ </event></events></lfm>