tweetomator 1.0.2 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4fcc324183e143e5b0cdc10f46ce302813f6c887
4
- data.tar.gz: 6be15674f917def226b68a7333af27b65806e87f
3
+ metadata.gz: 4fe9ed9b8f25c3191d276c5bfb8f1ab7e667743f
4
+ data.tar.gz: 44d3f6ca11bad6d7fc44d40bf9692ffd15dfcc92
5
5
  SHA512:
6
- metadata.gz: 92db45f499d31361254fda74f3a3f37ac31fc4ffa5586a47e618e6f0d3f234cd11ea56780a97a8e9cc7a2d3729bc4a72e0dd9bb842df1bd8b2f534389236d747
7
- data.tar.gz: 4db5bc27fb25590e749a98de830d1c4760d6f9b3f1b09b100228325e2b3ad56d460a3a67f5de47060f4b0d3f631967d54e68d8cd006b2b4ec12a1f8b0d6aaecc
6
+ metadata.gz: 6956fea6e07501934c388484916b6cb31a2cdd768f54764b7ae1303528cf74918bc2d426a4c56d6a2c60ddc8edbd6e556be97647f01ce32d550c4fa01a97cf70
7
+ data.tar.gz: 9420997993d3a8a833ffb88b5aaf0626408764abf9b0b8cd50fef96ef7a5c6cea4fc288f3c9e1e52930b4e719fcfaa64fa1466ba97e17f908ed54011c4ca2c7d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tweetomator (1.0.2)
4
+ tweetomator (1.0.3)
5
5
  flickraw
6
6
  rufus-scheduler
7
7
  twitter
@@ -9,7 +9,7 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.3.7)
12
+ addressable (2.3.8)
13
13
  buftok (0.2.0)
14
14
  equalizer (0.0.9)
15
15
  faraday (0.9.0)
@@ -18,7 +18,7 @@ GEM
18
18
  http (0.6.3)
19
19
  http_parser.rb (~> 0.6.0)
20
20
  http_parser.rb (0.6.0)
21
- json (1.8.2)
21
+ json (1.8.3)
22
22
  memoizable (0.4.2)
23
23
  thread_safe (~> 0.3, >= 0.3.1)
24
24
  minitest (5.5.1)
data/README.md CHANGED
@@ -18,17 +18,17 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- **Third-party API Keys required:
21
+ **Third-party API Keys required:**
22
22
 
23
23
  - Twitter: https://dev.twitter.com
24
- * Create a new app and set the permissions to *read and write
24
+ * Create a new app and set the permissions to *read and write*
25
25
  - Flickr: https://www.flickr.com/services/apps/create/apply
26
26
 
27
27
  Create a new instance of each config class in config/config.rb
28
28
 
29
29
  (name/type)
30
30
 
31
- **TwitterConfig
31
+ **TwitterConfig**
32
32
 
33
33
  - consumer_key / String
34
34
  - consumer_secret / String
@@ -37,34 +37,30 @@ Create a new instance of each config class in config/config.rb
37
37
  - username / String
38
38
  - tweet_max_length / int
39
39
 
40
- **FlickrConfig
40
+ **FlickrConfig**
41
41
 
42
42
  - api_key / String
43
43
  - shared_secret / String
44
44
 
45
- **TweetomatorConfig
45
+ **TweetomatorConfig**
46
46
 
47
47
  - twitter_config / TwitterConfig
48
48
  - flickr_config / FlickrConfig
49
- - topics / Array (String)
50
- - blacklist / Array (String)
51
- - stop_words / Array (String)
52
- - delay_in_seconds int
49
+ - topics / Array<String>
50
+ - blacklist / Array<String>
51
+ - stop_words / Array<String>
52
+ - delay_in_seconds / int
53
53
 
54
54
 
55
55
  Create a new Tweetomator
56
56
 
57
57
  e.g.
58
58
 
59
- twitter_config = TwitterConfig.new([...])
60
-
61
- flickr_config = FlickrConfig.new([...])
62
-
63
- tweetomator_config = TweetomatorConfig.new(twitter, flickr, [...])
64
-
65
- tweetomator = Tweetomator.new(tweetomator_config)
66
-
67
- tweetomator.run
59
+ twitter_config = TwitterConfig.new([...])
60
+ flickr_config = FlickrConfig.new([...])
61
+ tweetomator_config = TweetomatorConfig.new(twitter, flickr, [...])
62
+ tweetomator = Tweetomator.new(tweetomator_config)
63
+ tweetomator.run
68
64
 
69
65
  ## Contributing
70
66
 
@@ -16,6 +16,6 @@ class FlickrClient
16
16
  end
17
17
 
18
18
  def search(query)
19
- flickr.photos.search(tags: query, min_upload_date: Fixed::MIN_UPLOAD_DATE)
19
+ flickr.photos.search(tags: query, min_upload_date: Fixed::MIN_UPLOAD_DATE, safe_search: 1)
20
20
  end
21
21
  end
@@ -1,7 +1,7 @@
1
1
  require 'cgi'
2
- require_relative 'tweet'
2
+ require_relative '../tweet'
3
3
 
4
- class Composer
4
+ class RandomComposer
5
5
  def initialize(tweet_finder, emoji_finder, blacklist, twitter_client, max_length)
6
6
  @tweet_finder = tweet_finder
7
7
  @emoji_finder = emoji_finder
@@ -1,5 +1,3 @@
1
- require 'open-uri'
2
-
3
1
  class EmojiFinder
4
2
  def find
5
3
  [(127744..127775),
data/lib/tweetomator.rb CHANGED
@@ -3,7 +3,7 @@ require 'twitter'
3
3
  require 'rufus-scheduler'
4
4
  require_relative 'tweet'
5
5
  require_relative 'tweetomator'
6
- require_relative 'composer'
6
+ require_relative 'composers/random_composer'
7
7
  require_relative 'config/config'
8
8
  require_relative 'finders/tweet_finder'
9
9
  require_relative 'finders/flickr_findr'
@@ -39,7 +39,7 @@ class Tweetomator
39
39
  flickr_client = FlickrClient.new(config.flickr_config)
40
40
  @flickr_finder = FlickrFindr.new(flickr_client)
41
41
  emoji_finder = EmojiFinder.new
42
- @composer = Composer.new(@tweet_finder, emoji_finder, config.blacklist, @twitter_client, config.twitter_config.tweet_max_length)
42
+ @random_composer = RandomComposer.new(@tweet_finder, emoji_finder, config.blacklist, @twitter_client, config.twitter_config.tweet_max_length)
43
43
  @downloader = Downloader.new
44
44
  @scheduler = Rufus::Scheduler.new
45
45
  end
@@ -56,12 +56,12 @@ class Tweetomator
56
56
  end
57
57
 
58
58
  def tweet!
59
- tweet = @composer.compose
59
+ tweet = @random_composer.compose
60
60
  tweet.post!
61
61
  end
62
62
 
63
63
  def tweet_with_image!
64
- tweet = @composer.compose
64
+ tweet = @random_composer.compose
65
65
  flickr_query = @tweet_finder.find_random_word(tweet.hashtag)
66
66
  image_uri = @flickr_finder.find(flickr_query)
67
67
  image_local = @downloader.download(image_uri, 'image')
@@ -1,3 +1,3 @@
1
1
  class Tweetomator
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -1,8 +1,8 @@
1
1
  require 'minitest/autorun'
2
- require_relative '../../lib/composer'
3
- require_relative '../../lib/tweetomator'
2
+ require_relative '../../../lib/composers/random_composer'
3
+ require_relative '../../../lib/tweetomator'
4
4
 
5
- class TestComposer < Minitest::Unit::TestCase
5
+ class TestRandomComposer < Minitest::Unit::TestCase
6
6
  def setup
7
7
  tweet_1 = 'I just backedeyeyeyey Potato Salad on @Kickstarter kck.st/1pLytCe'
8
8
  tweet_2 = 'I HAVE NYANED FOR 48.9 SECONDS! http://nyan.cat via @nyannyancat'
@@ -15,26 +15,21 @@ class TestComposer < Minitest::Unit::TestCase
15
15
  mock_tweet_client = Minitest::Mock.new
16
16
  @blacklist = %w(sri lanka)
17
17
  @max_length = 100
18
- @composer = Composer.new(mock_tweet_finder, mock_emoji_finder, @blacklist, mock_tweet_client, @max_length)
18
+ @random_composer = RandomComposer.new(mock_tweet_finder, mock_emoji_finder, @blacklist, mock_tweet_client, @max_length)
19
19
  end
20
20
 
21
21
  def test_that_tweet_is_short_enough
22
- tweet = @composer.compose
22
+ tweet = @random_composer.compose
23
23
  assert tweet.with_hashtag.length <= @max_length, true
24
24
  end
25
25
 
26
26
  def test_that_stop_words_are_removed
27
- tweet = @composer.compose
27
+ tweet = @random_composer.compose
28
28
  refute tweet.with_hashtag.split.any? { |word| @blacklist.include?(word) }, true
29
29
  end
30
30
 
31
31
  def test_that_links_are_removed
32
- tweet = @composer.compose
32
+ tweet = @random_composer.compose
33
33
  refute tweet.with_hashtag.split.any? { |word| %w(kck.st/1pLytCe http://nyan.cat).include?(word) }, true
34
34
  end
35
-
36
- def test_that_emoji_is_trololo
37
- tweet = @composer.compose
38
- assert tweet.with_hashtag.split.any? { |word| word == ':trollface:' }, true
39
- end
40
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tweetomator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nat Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-01 00:00:00.000000000 Z
11
+ date: 2015-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -110,7 +110,7 @@ files:
110
110
  - Rakefile
111
111
  - lib/clients/flickr_client.rb
112
112
  - lib/clients/twitter_client.rb
113
- - lib/composer.rb
113
+ - lib/composers/random_composer.rb
114
114
  - lib/config/config.rb
115
115
  - lib/finders/emoji_finder.rb
116
116
  - lib/finders/flickr_findr.rb
@@ -119,7 +119,7 @@ files:
119
119
  - lib/tweet.rb
120
120
  - lib/tweetomator.rb
121
121
  - lib/tweetomator/version.rb
122
- - test/lib/composer_test.rb
122
+ - test/lib/composers/random_composer_test.rb
123
123
  - test/lib/finders/flickr_findr_test.rb
124
124
  - test/lib/finders/tweet_finder_test.rb
125
125
  - tweetomator.gemspec
@@ -148,6 +148,6 @@ signing_key:
148
148
  specification_version: 4
149
149
  summary: Twitter automation for the time poor.
150
150
  test_files:
151
- - test/lib/composer_test.rb
151
+ - test/lib/composers/random_composer_test.rb
152
152
  - test/lib/finders/flickr_findr_test.rb
153
153
  - test/lib/finders/tweet_finder_test.rb