ejaydj 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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