ejaydj 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c7b3aac4292a3b24563d8e1adaabf9444ce3954
4
- data.tar.gz: 72da1fddaa35c3c8fd223bce31e14c5cc35d5c6e
3
+ metadata.gz: 9812683c836ac5484095c4ea461f544d38ffa4ec
4
+ data.tar.gz: 8934f32b70874c13c2222c3ae2c75d9fdfcb8cd5
5
5
  SHA512:
6
- metadata.gz: 55a91144630f2b6da1211b2a55c9da9dfaa0b49ee62178e4969ee077a7eee9499274d1863b66032e044bc2760abea2c0d58e0bece780003a3a681fff7c57e9d5
7
- data.tar.gz: d3e2db30fba50dc890d78d2e26d57179de69571909df28c8eb1021e2454fa9d989a72a1e34505ca91f86a92a652b85c690bb6a6c62173beeded225ea096e99b6
6
+ metadata.gz: bb76809bf2a7ab1e78b409598daae49b38baba9c4b60f39018998d48c95d925cb1e48c4a304aaaf72e815f434ee7b4872b2a8aaf1b9e3fe069ae22182f7c4460
7
+ data.tar.gz: f8588a303c859e12403c7fa191780ae0ca8fbb0ba447567d33759109fce32c1510e58dcb833c141ad7005e1c64a64bf8d9550da1b20e59255ce01addbd2d1d54
data/README.md CHANGED
@@ -54,7 +54,7 @@ Given a `dj` object from the above configuration, tweeting your music is as simp
54
54
  ```
55
55
 
56
56
  The tweet format will look like:
57
- `NP: {song} by {artist} from {playlist} playlist: {playlist_url}`
57
+ `NP: {song} by {artist} from playlist: {playlist_url}`
58
58
  Each songs is based on the provided time (default is current time). It will automatically lookup for tracks in the scheduled playlists.
59
59
 
60
60
  ## Playlists Schedule
@@ -10,8 +10,8 @@ module Ejaydj
10
10
  :twitter_access_token_secret,
11
11
  :twitter_client
12
12
 
13
- MAX_SONG_LENGTH = 50
14
- MAX_ARTIST_LENGTH = 50
13
+ MAX_SONG_LENGTH = 40
14
+ MAX_ARTIST_LENGTH = 40
15
15
 
16
16
  def initialize(attributes={}, &block)
17
17
  super(attributes, &block)
@@ -22,14 +22,13 @@ module Ejaydj
22
22
  tweet = tweet_string
23
23
 
24
24
  twitter_client.update(tweet)
25
-
26
25
  {message: tweet, song: @song}
27
26
  end
28
27
 
29
28
  private
30
29
 
31
30
  def tweet_string
32
- tweet_string = ("NP: #{@song.name} by #{@song.artist} from playlist: #{shorten_url(@song.playlist.url)}")
31
+ tweet_string = ("NP: #{@song.name} by #{@song.artist}: #{shorten_url(@song.url)} | playlist: #{shorten_url(@song.playlist.url)}")
33
32
  shorten_tweet(tweet_string)
34
33
  end
35
34
 
@@ -39,7 +38,7 @@ module Ejaydj
39
38
  @song.name = "#{@song.name[0..MAX_SONG_LENGTH]}..." if @song.name.length > MAX_SONG_LENGTH
40
39
  @song.artist = "#{@song.artist[0..MAX_ARTIST_LENGTH]}..." if @song.artist.length > MAX_ARTIST_LENGTH
41
40
 
42
- "NP: #{@song.name} by #{@song.artist} | #{shorten_url(@song.playlist.url)}"
41
+ "NP: #{@song.name} by #{@song.artist}: #{shorten_url(@song.url)} | #{shorten_url(@song.playlist.url)}"
43
42
  end
44
43
 
45
44
  def shorten_url(url)
@@ -10,13 +10,14 @@ module Ejaydj
10
10
  def all
11
11
  response_items = @music_client.playlist_tracks(user_id: @user_id, playlist_id: @playlist_id)
12
12
 
13
- response_items.map do |track|
13
+ response_items.map do |item|
14
14
  Track.new(
15
- id: track["track"]["id"],
16
- name: track["track"]["name"],
17
- album: track["track"]["album"]["name"],
18
- artist: track["track"]["artists"][0]["name"],
19
- duration_ms: track["track"]["duration_ms"]
15
+ id: item["track"]["id"],
16
+ name: item["track"]["name"],
17
+ album: item["track"]["album"]["name"],
18
+ artist: item["track"]["artists"][0]["name"],
19
+ duration_ms: item["track"]["duration_ms"],
20
+ url: item["track"]["external_urls"]["spotify"]
20
21
  )
21
22
  end
22
23
  end
data/lib/ejaydj/track.rb CHANGED
@@ -4,6 +4,7 @@ module Ejaydj
4
4
  :album,
5
5
  :artist,
6
6
  :duration_ms,
7
+ :url,
7
8
  :playlist
8
9
 
9
10
  def initialize(attributes={})
@@ -13,6 +14,7 @@ module Ejaydj
13
14
  @artist = attributes[:artist]
14
15
  @playlist = attributes[:playlist]
15
16
  @duration_ms = attributes[:duration_ms]
17
+ @url = attributes[:url]
16
18
  end
17
19
  end
18
20
  end
@@ -1,3 +1,3 @@
1
1
  module Ejaydj
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/spec/dj_spec.rb CHANGED
@@ -30,7 +30,8 @@ RSpec.describe Ejaydj::Dj do
30
30
  "name" => "Track 1",
31
31
  "album" => {"name" => "Album 1"},
32
32
  "artists" => [{"name" => "Artist 1"}],
33
- "playlist_id" => 1
33
+ "playlist_id" => 1,
34
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
34
35
  }}
35
36
  ]
36
37
  end
@@ -93,7 +94,8 @@ RSpec.describe Ejaydj::Dj do
93
94
  "name" => "Track 2",
94
95
  "album" => {"name" => "Album 2"},
95
96
  "artists" => [{"name" => "Artist 2"}],
96
- "playlist_id" => 2
97
+ "playlist_id" => 2,
98
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
97
99
  }}
98
100
  dj.reload!
99
101
  expect(dj.playlists.first.tracks.count).to eq(track_items.count)
@@ -36,12 +36,13 @@ RSpec.describe Ejaydj::Djs::TwitterBot do
36
36
  {"track" => { "id" => 1,
37
37
  "name" => "Track 1",
38
38
  "album" => {"name" => "Album 1"},
39
- "artists" => [{"name" => "Artist 1"}]
39
+ "artists" => [{"name" => "Artist 1"}],
40
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
40
41
  }}
41
42
  ]
42
43
  end
43
44
 
44
- let(:shorten_url) { 'http://goo.gl' }
45
+ let(:shorten_url) { 'http://goo.gl/Abc123' }
45
46
 
46
47
  before do
47
48
  allow(music_client).to receive(:user_playlists).and_return(playlist_items)
@@ -54,7 +55,7 @@ RSpec.describe Ejaydj::Djs::TwitterBot do
54
55
  tweet = twitter_bot_dj.tweet_me_a_song(time: Time.new(2014, 11, 20, 7, 0, 0))
55
56
  song = tweet[:song]
56
57
 
57
- expect(tweet[:message]).to eq("NP: #{song.name} by #{song.artist} from playlist: #{shorten_url}")
58
+ expect(tweet[:message]).to eq("NP: #{song.name} by #{song.artist}: #{shorten_url} | playlist: #{shorten_url}")
58
59
  end
59
60
 
60
61
  context "when tweet string is over 140" do
@@ -15,7 +15,8 @@ RSpec.describe Ejaydj::Playlist do
15
15
  "name" => "Track 1",
16
16
  "album" => {"name" => "Album 1"},
17
17
  "artists" => [{"name" => "Artist 1"}],
18
- "playlist_id" => 1
18
+ "playlist_id" => 1,
19
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
19
20
  }}
20
21
  ]
21
22
  end
@@ -58,7 +59,8 @@ RSpec.describe Ejaydj::Playlist do
58
59
  "name" => "Track 2",
59
60
  "album" => {"name" => "Album 2"},
60
61
  "artists" => [{"name" => "Artist 2"}],
61
- "playlist_id" => 2
62
+ "playlist_id" => 2,
63
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
62
64
  }}
63
65
  playlist.reload!
64
66
  expect(playlist.tracks.count).to eq(track_items.count)
@@ -13,14 +13,16 @@ RSpec.describe Ejaydj::Services::TrackService do
13
13
  "name" => "Track 1",
14
14
  "album" => {"name" => "Album 1"},
15
15
  "artists" => [{"name" => "Artist 1"}],
16
- "playlist_id" => 1
16
+ "playlist_id" => 1,
17
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
17
18
  }},
18
19
 
19
20
  {"track" => {"id" => 2,
20
21
  "name" => "Track 2",
21
22
  "album" => {"name" => "Album 2"},
22
23
  "artists" => [{"name" => "Artist 2"}],
23
- "playlist_id" => 2
24
+ "playlist_id" => 2,
25
+ "external_urls" => {"spotify" => "http://www.spotify.com"}
24
26
  }}
25
27
  ]
26
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ejaydj
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ejay Canaria
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-20 00:00:00.000000000 Z
11
+ date: 2014-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client