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 +4 -4
- data/README.md +1 -1
- data/lib/ejaydj/djs/twitter_bot.rb +4 -5
- data/lib/ejaydj/services/track_service.rb +7 -6
- data/lib/ejaydj/track.rb +2 -0
- data/lib/ejaydj/version.rb +1 -1
- data/spec/dj_spec.rb +4 -2
- data/spec/djs/twitter_bot_spec.rb +4 -3
- data/spec/playlist_spec.rb +4 -2
- data/spec/services/track_service_spec.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9812683c836ac5484095c4ea461f544d38ffa4ec
|
4
|
+
data.tar.gz: 8934f32b70874c13c2222c3ae2c75d9fdfcb8cd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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 =
|
14
|
-
MAX_ARTIST_LENGTH =
|
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}
|
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 |
|
13
|
+
response_items.map do |item|
|
14
14
|
Track.new(
|
15
|
-
id:
|
16
|
-
name:
|
17
|
-
album:
|
18
|
-
artist:
|
19
|
-
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
|
data/lib/ejaydj/version.rb
CHANGED
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}
|
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
|
data/spec/playlist_spec.rb
CHANGED
@@ -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.
|
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-
|
11
|
+
date: 2014-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|