ejaydj 0.0.2 → 0.0.3
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 +4 -4
- data/ejaydj.gemspec +1 -0
- data/lib/ejaydj/djs/twitter_bot.rb +26 -3
- data/lib/ejaydj/track.rb +3 -4
- data/lib/ejaydj/version.rb +1 -1
- data/spec/djs/twitter_bot_spec.rb +16 -2
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c7b3aac4292a3b24563d8e1adaabf9444ce3954
|
4
|
+
data.tar.gz: 72da1fddaa35c3c8fd223bce31e14c5cc35d5c6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55a91144630f2b6da1211b2a55c9da9dfaa0b49ee62178e4969ee077a7eee9499274d1863b66032e044bc2760abea2c0d58e0bece780003a3a681fff7c57e9d5
|
7
|
+
data.tar.gz: d3e2db30fba50dc890d78d2e26d57179de69571909df28c8eb1021e2454fa9d989a72a1e34505ca91f86a92a652b85c690bb6a6c62173beeded225ea096e99b6
|
data/ejaydj.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_runtime_dependency "rest-client", "~> 1.7"
|
22
22
|
spec.add_runtime_dependency "json"
|
23
23
|
spec.add_runtime_dependency "twitter"
|
24
|
+
spec.add_runtime_dependency "googl"
|
24
25
|
|
25
26
|
spec.add_development_dependency "bundler", "~> 1.6"
|
26
27
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'twitter'
|
2
|
+
require 'googl'
|
2
3
|
|
3
4
|
module Ejaydj
|
4
5
|
module Djs
|
@@ -9,20 +10,42 @@ module Ejaydj
|
|
9
10
|
:twitter_access_token_secret,
|
10
11
|
:twitter_client
|
11
12
|
|
13
|
+
MAX_SONG_LENGTH = 50
|
14
|
+
MAX_ARTIST_LENGTH = 50
|
15
|
+
|
12
16
|
def initialize(attributes={}, &block)
|
13
17
|
super(attributes, &block)
|
14
18
|
end
|
15
19
|
|
16
20
|
def tweet_me_a_song(time: Time.now)
|
17
|
-
song = play_me_a_song(time: time)
|
18
|
-
tweet =
|
21
|
+
@song = play_me_a_song(time: time)
|
22
|
+
tweet = tweet_string
|
23
|
+
|
19
24
|
twitter_client.update(tweet)
|
20
25
|
|
21
|
-
{message: tweet, song: song}
|
26
|
+
{message: tweet, song: @song}
|
22
27
|
end
|
23
28
|
|
24
29
|
private
|
25
30
|
|
31
|
+
def tweet_string
|
32
|
+
tweet_string = ("NP: #{@song.name} by #{@song.artist} from playlist: #{shorten_url(@song.playlist.url)}")
|
33
|
+
shorten_tweet(tweet_string)
|
34
|
+
end
|
35
|
+
|
36
|
+
def shorten_tweet(tweet_string)
|
37
|
+
return tweet_string unless tweet_string.length > 140
|
38
|
+
|
39
|
+
@song.name = "#{@song.name[0..MAX_SONG_LENGTH]}..." if @song.name.length > MAX_SONG_LENGTH
|
40
|
+
@song.artist = "#{@song.artist[0..MAX_ARTIST_LENGTH]}..." if @song.artist.length > MAX_ARTIST_LENGTH
|
41
|
+
|
42
|
+
"NP: #{@song.name} by #{@song.artist} | #{shorten_url(@song.playlist.url)}"
|
43
|
+
end
|
44
|
+
|
45
|
+
def shorten_url(url)
|
46
|
+
Googl.shorten(url).short_url
|
47
|
+
end
|
48
|
+
|
26
49
|
def twitter_client
|
27
50
|
@twitter_client ||= Twitter::REST::Client.new do |config|
|
28
51
|
config.consumer_key = @twitter_consumer_key
|
data/lib/ejaydj/track.rb
CHANGED
data/lib/ejaydj/version.rb
CHANGED
@@ -27,7 +27,7 @@ RSpec.describe Ejaydj::Djs::TwitterBot do
|
|
27
27
|
|
28
28
|
let(:playlist_items) do
|
29
29
|
[
|
30
|
-
{"name" => "Morning Playlist", "owner" => {"id" => 1}, "external_urls" => {"spotify" => "
|
30
|
+
{"name" => "Morning Playlist", "owner" => {"id" => 1}, "external_urls" => {"spotify" => "http://spotify.com"}, "tracks" => {"total" => 10}}
|
31
31
|
]
|
32
32
|
end
|
33
33
|
|
@@ -41,9 +41,12 @@ RSpec.describe Ejaydj::Djs::TwitterBot do
|
|
41
41
|
]
|
42
42
|
end
|
43
43
|
|
44
|
+
let(:shorten_url) { 'http://goo.gl' }
|
45
|
+
|
44
46
|
before do
|
45
47
|
allow(music_client).to receive(:user_playlists).and_return(playlist_items)
|
46
48
|
allow(music_client).to receive(:playlist_tracks).and_return(track_items)
|
49
|
+
allow(Googl).to receive(:shorten).and_return(double('GoogleURL', short_url: shorten_url))
|
47
50
|
end
|
48
51
|
|
49
52
|
describe '#tweet_me_a_song' do
|
@@ -51,7 +54,18 @@ RSpec.describe Ejaydj::Djs::TwitterBot do
|
|
51
54
|
tweet = twitter_bot_dj.tweet_me_a_song(time: Time.new(2014, 11, 20, 7, 0, 0))
|
52
55
|
song = tweet[:song]
|
53
56
|
|
54
|
-
expect(tweet[:message]).to eq("NP: #{song.name} by #{song.artist} from
|
57
|
+
expect(tweet[:message]).to eq("NP: #{song.name} by #{song.artist} from playlist: #{shorten_url}")
|
58
|
+
end
|
59
|
+
|
60
|
+
context "when tweet string is over 140" do
|
61
|
+
it "shrinks the tweet less than 140 text" do
|
62
|
+
track_items.first["track"]["name"] = "This is a very long track name, yeah it is, yeah it is yeah it is...................................."
|
63
|
+
|
64
|
+
tweet = twitter_bot_dj.tweet_me_a_song(time: Time.new(2014, 11, 20, 7, 0, 0))
|
65
|
+
song = tweet[:song]
|
66
|
+
|
67
|
+
expect(tweet[:message].length).to be <= 140
|
68
|
+
end
|
55
69
|
end
|
56
70
|
end
|
57
71
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ejay Canaria
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: googl
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|