lolcommits 0.9.1 → 0.9.2.pre1

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: 51f5961dc47dd447b3a49d5ef75402c79aa96462
4
- data.tar.gz: 41b5a1f144ad1bc502fc2259ac502944499aedc5
3
+ metadata.gz: bdf5058a699862aaf28c86de13336c0fb9ce2fe8
4
+ data.tar.gz: 71a0deced06447c2fe8469a5caec00739edf233e
5
5
  SHA512:
6
- metadata.gz: a7f4f5e80cbd2acb50ef556cc0a07d03cf3d715f04433f0bf30046857075e877fb073015898af5cd79b0813ca6faff4af5041bf9b38f75e0878eb50cab2eed06
7
- data.tar.gz: c55dd1654d64411c0c6b02d83a5d5986900fb45067fe7a527a363e446b6bdcb6405443234deee0f9672f79ae842dbf94c35eb6e1e2ee9a892870a7f1855f39ac
6
+ metadata.gz: 7c2a1fdcff28ce329a77c38da2e47cfa3c6c92bdab14a05b27003385e46895ff3e4e1c51a78185390e7183d6771507863f45b27e667f75a21c4336b87ad90392
7
+ data.tar.gz: f4a5d25dab8080e4ecc132b148f39b6df1fb78c2afdf5cc1708540fade8b61b07d4df21ddaf3cb6a38a8676515a6fec2cafbed3467e21eb77a037bd3963d0417
data/.travis.yml CHANGED
@@ -7,6 +7,7 @@ rvm:
7
7
  - 2.2.4
8
8
  - 2.3.0
9
9
  - 2.3.3
10
+ - 2.4.0
10
11
  - ruby-head
11
12
 
12
13
  before_install:
data/CHANGELOG.md CHANGED
@@ -8,6 +8,9 @@ project adheres to [Semantic Versioning][Semver].
8
8
  * WIP - extract plugins to separate gems ...
9
9
  * Your contribution here!
10
10
 
11
+ ## [0.9.2][] (3 January 2017)
12
+ * Remove twitter gem, fixes Ruby 2.4 issues (@matthutchinson #328)
13
+
11
14
  ## [0.9.1][] (20 December 2016)
12
15
  * Remove Choice gem, use Methadone (@matthutchinson #326)
13
16
 
@@ -262,7 +265,8 @@ project adheres to [Semantic Versioning][Semver].
262
265
  instead of compositing multiply image Caption objects (this seems to be more
263
266
  reliable to not glitch.)
264
267
 
265
- [Unreleased]: https://github.com/mroth/lolcommits/compare/v0.9.1...HEAD
268
+ [Unreleased]: https://github.com/mroth/lolcommits/compare/v0.9.2...HEAD
269
+ [0.9.1]: https://github.com/mroth/lolcommits/compare/v0.9.1...v0.9.2
266
270
  [0.9.1]: https://github.com/mroth/lolcommits/compare/v0.9.0...v0.9.1
267
271
  [0.9.0]: https://github.com/mroth/lolcommits/compare/v0.8.1...v0.9.0
268
272
  [0.8.1]: https://github.com/mroth/lolcommits/compare/v0.8.0...v0.8.1
@@ -1,16 +1,19 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'yaml'
3
3
  require 'oauth'
4
- require 'twitter'
4
+ require 'simple_oauth'
5
+ require 'rest_client'
6
+ require 'addressable/uri'
5
7
 
6
8
  module Lolcommits
7
9
  class LolTwitter < Plugin
8
- TWITTER_API_ENDPOINT = 'https://api.twitter.com'.freeze
9
- TWITTER_CONSUMER_KEY = 'qc096dJJCxIiqDNUqEsqQ'.freeze
10
- TWITTER_CONSUMER_SECRET = 'rvjNdtwSr1H0TvBvjpk6c4bvrNydHmmbvv7gXZQI'.freeze
11
- TWITTER_RETRIES = 2
12
- TWITTER_PIN_REGEX = /^\d{4,}$/ # 4 or more digits
13
- DEFAULT_SUFFIX = '#lolcommits'.freeze
10
+ TWITTER_API_ENDPOINT = 'https://api.twitter.com'.freeze
11
+ TWITTER_CONSUMER_KEY = 'qc096dJJCxIiqDNUqEsqQ'.freeze
12
+ TWITTER_CONSUMER_SECRET = 'rvjNdtwSr1H0TvBvjpk6c4bvrNydHmmbvv7gXZQI'.freeze
13
+ TWITTER_RESERVED_MEDIA_CHARS = 24
14
+ TWITTER_RETRIES = 2
15
+ TWITTER_PIN_REGEX = /^\d{4,}$/ # 4 or more digits
16
+ DEFAULT_SUFFIX = '#lolcommits'.freeze
14
17
 
15
18
  def run_postcapture
16
19
  return unless valid_configuration?
@@ -21,17 +24,30 @@ module Lolcommits
21
24
  attempts += 1
22
25
  puts "Tweeting: #{tweet}"
23
26
  debug "--> Tweeting! (attempt: #{attempts}, tweet length: #{tweet.length} chars)"
24
- if client.update_with_media(tweet, File.open(runner.main_image, 'r'))
25
- puts "\t--> Tweet Sent!"
26
- end
27
- rescue Twitter::Error::ServerError,
28
- Twitter::Error::ClientError => e
27
+ post_tweet(tweet, File.open(runner.main_image, 'r'))
28
+ rescue StandardError => e
29
29
  debug "Tweet FAILED! #{e.class} - #{e.message}"
30
30
  retry if attempts < TWITTER_RETRIES
31
31
  puts "ERROR: Tweet FAILED! (after #{attempts} attempts) - #{e.message}"
32
32
  end
33
33
  end
34
34
 
35
+ def post_url
36
+ # TODO: this endpoint is deprecated, use the new approach instead
37
+ # https://dev.twitter.com/rest/reference/post/statuses/update_with_mediath_media
38
+ @post_url ||= TWITTER_API_ENDPOINT + '/1.1/statuses/update_with_media.json'
39
+ end
40
+
41
+ def post_tweet(status, media)
42
+ RestClient.post(
43
+ post_url,
44
+ {
45
+ 'media[]' => media,
46
+ 'status' => status
47
+ }, Authorization: oauth_header
48
+ )
49
+ end
50
+
35
51
  def build_tweet(commit_message)
36
52
  prefix = config_with_default('prefix', '')
37
53
  suffix = " #{config_with_default('suffix', DEFAULT_SUFFIX)}"
@@ -113,13 +129,18 @@ module Lolcommits
113
129
  configuration['secret']
114
130
  end
115
131
 
116
- def client
117
- @client ||= Twitter::REST::Client.new do |config|
118
- config.consumer_key = TWITTER_CONSUMER_KEY
119
- config.consumer_secret = TWITTER_CONSUMER_SECRET
120
- config.access_token = configuration['access_token']
121
- config.access_token_secret = configuration['secret']
122
- end
132
+ def oauth_header
133
+ uri = Addressable::URI.parse(post_url)
134
+ SimpleOAuth::Header.new(:post, uri, {}, oauth_credentials)
135
+ end
136
+
137
+ def oauth_credentials
138
+ {
139
+ consumer_key: TWITTER_CONSUMER_KEY,
140
+ consumer_secret: TWITTER_CONSUMER_SECRET,
141
+ token: configuration['access_token'],
142
+ token_secret: configuration['secret']
143
+ }
123
144
  end
124
145
 
125
146
  def oauth_consumer
@@ -141,7 +162,7 @@ module Lolcommits
141
162
  end
142
163
 
143
164
  def max_tweet_size
144
- 139 - client.configuration.characters_reserved_per_media
165
+ 139 - TWITTER_RESERVED_MEDIA_CHARS
145
166
  end
146
167
 
147
168
  def self.name
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module Lolcommits
3
- VERSION = '0.9.1'.freeze
3
+ VERSION = '0.9.2.pre1'.freeze
4
4
  end
data/lolcommits.gemspec CHANGED
@@ -31,11 +31,10 @@ Gem::Specification.new do |s|
31
31
  # hold back upgrading (and why)
32
32
  s.add_development_dependency('aruba', '=0.6.2') # upgrading requires a lot of test code changes
33
33
  s.add_development_dependency('rake', '=10.5.0') # ~> 11+ introduces lots of warnings from other deps
34
- s.add_runtime_dependency('twitter', '~> 5.17.0') # twitter 6+ requires higher faraday
35
34
  s.add_runtime_dependency('net-http-persistent', '=2.9.4') # ~> 3+ requires Ruby 2.1
36
35
 
37
36
  # core
38
- s.add_runtime_dependency('methadone', '~> 1.9.3')
37
+ s.add_runtime_dependency('methadone', '~> 1.9.5')
39
38
  s.add_runtime_dependency('mercurial-ruby', '~> 0.7.12')
40
39
  s.add_runtime_dependency('mini_magick', '~> 4.6.0')
41
40
  s.add_runtime_dependency('launchy', '~> 2.4.3')
@@ -48,13 +47,14 @@ Gem::Specification.new do |s|
48
47
  s.add_runtime_dependency('tumblr_client', '~> 0.8.5') # tumblr
49
48
 
50
49
  # development gems
51
- s.add_development_dependency('rdoc', '~> 5.0.0')
52
-
53
- # testing gems
54
- s.add_development_dependency('rubocop', '~> 0.46.0')
55
- s.add_development_dependency('travis', '~> 1.8.5')
56
- s.add_development_dependency('minitest', '~> 5.10.1')
57
- s.add_development_dependency('coveralls', '~> 0.8.17')
58
- s.add_development_dependency('ffaker', '~> 2.3.0')
59
- s.add_development_dependency('cucumber', '~> 2.4.0')
50
+ s.add_development_dependency('rdoc')
51
+ s.add_development_dependency('pry')
52
+
53
+ # testing gems (latest versions)
54
+ s.add_development_dependency('rubocop')
55
+ s.add_development_dependency('travis')
56
+ s.add_development_dependency('minitest')
57
+ s.add_development_dependency('coveralls')
58
+ s.add_development_dependency('ffaker')
59
+ s.add_development_dependency('cucumber')
60
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolcommits
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Rothenberg
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-12-20 00:00:00.000000000 Z
12
+ date: 2017-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aruba
@@ -39,20 +39,6 @@ dependencies:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
41
  version: 10.5.0
42
- - !ruby/object:Gem::Dependency
43
- name: twitter
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: 5.17.0
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 5.17.0
56
42
  - !ruby/object:Gem::Dependency
57
43
  name: net-http-persistent
58
44
  requirement: !ruby/object:Gem::Requirement
@@ -73,14 +59,14 @@ dependencies:
73
59
  requirements:
74
60
  - - "~>"
75
61
  - !ruby/object:Gem::Version
76
- version: 1.9.3
62
+ version: 1.9.5
77
63
  type: :runtime
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
66
  requirements:
81
67
  - - "~>"
82
68
  - !ruby/object:Gem::Version
83
- version: 1.9.3
69
+ version: 1.9.5
84
70
  - !ruby/object:Gem::Dependency
85
71
  name: mercurial-ruby
86
72
  requirement: !ruby/object:Gem::Requirement
@@ -197,100 +183,114 @@ dependencies:
197
183
  name: rdoc
198
184
  requirement: !ruby/object:Gem::Requirement
199
185
  requirements:
200
- - - "~>"
186
+ - - ">="
201
187
  - !ruby/object:Gem::Version
202
- version: 5.0.0
188
+ version: '0'
203
189
  type: :development
204
190
  prerelease: false
205
191
  version_requirements: !ruby/object:Gem::Requirement
206
192
  requirements:
207
- - - "~>"
193
+ - - ">="
208
194
  - !ruby/object:Gem::Version
209
- version: 5.0.0
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: pry
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
210
  - !ruby/object:Gem::Dependency
211
211
  name: rubocop
212
212
  requirement: !ruby/object:Gem::Requirement
213
213
  requirements:
214
- - - "~>"
214
+ - - ">="
215
215
  - !ruby/object:Gem::Version
216
- version: 0.46.0
216
+ version: '0'
217
217
  type: :development
218
218
  prerelease: false
219
219
  version_requirements: !ruby/object:Gem::Requirement
220
220
  requirements:
221
- - - "~>"
221
+ - - ">="
222
222
  - !ruby/object:Gem::Version
223
- version: 0.46.0
223
+ version: '0'
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: travis
226
226
  requirement: !ruby/object:Gem::Requirement
227
227
  requirements:
228
- - - "~>"
228
+ - - ">="
229
229
  - !ruby/object:Gem::Version
230
- version: 1.8.5
230
+ version: '0'
231
231
  type: :development
232
232
  prerelease: false
233
233
  version_requirements: !ruby/object:Gem::Requirement
234
234
  requirements:
235
- - - "~>"
235
+ - - ">="
236
236
  - !ruby/object:Gem::Version
237
- version: 1.8.5
237
+ version: '0'
238
238
  - !ruby/object:Gem::Dependency
239
239
  name: minitest
240
240
  requirement: !ruby/object:Gem::Requirement
241
241
  requirements:
242
- - - "~>"
242
+ - - ">="
243
243
  - !ruby/object:Gem::Version
244
- version: 5.10.1
244
+ version: '0'
245
245
  type: :development
246
246
  prerelease: false
247
247
  version_requirements: !ruby/object:Gem::Requirement
248
248
  requirements:
249
- - - "~>"
249
+ - - ">="
250
250
  - !ruby/object:Gem::Version
251
- version: 5.10.1
251
+ version: '0'
252
252
  - !ruby/object:Gem::Dependency
253
253
  name: coveralls
254
254
  requirement: !ruby/object:Gem::Requirement
255
255
  requirements:
256
- - - "~>"
256
+ - - ">="
257
257
  - !ruby/object:Gem::Version
258
- version: 0.8.17
258
+ version: '0'
259
259
  type: :development
260
260
  prerelease: false
261
261
  version_requirements: !ruby/object:Gem::Requirement
262
262
  requirements:
263
- - - "~>"
263
+ - - ">="
264
264
  - !ruby/object:Gem::Version
265
- version: 0.8.17
265
+ version: '0'
266
266
  - !ruby/object:Gem::Dependency
267
267
  name: ffaker
268
268
  requirement: !ruby/object:Gem::Requirement
269
269
  requirements:
270
- - - "~>"
270
+ - - ">="
271
271
  - !ruby/object:Gem::Version
272
- version: 2.3.0
272
+ version: '0'
273
273
  type: :development
274
274
  prerelease: false
275
275
  version_requirements: !ruby/object:Gem::Requirement
276
276
  requirements:
277
- - - "~>"
277
+ - - ">="
278
278
  - !ruby/object:Gem::Version
279
- version: 2.3.0
279
+ version: '0'
280
280
  - !ruby/object:Gem::Dependency
281
281
  name: cucumber
282
282
  requirement: !ruby/object:Gem::Requirement
283
283
  requirements:
284
- - - "~>"
284
+ - - ">="
285
285
  - !ruby/object:Gem::Version
286
- version: 2.4.0
286
+ version: '0'
287
287
  type: :development
288
288
  prerelease: false
289
289
  version_requirements: !ruby/object:Gem::Requirement
290
290
  requirements:
291
- - - "~>"
291
+ - - ">="
292
292
  - !ruby/object:Gem::Version
293
- version: 2.4.0
293
+ version: '0'
294
294
  description: |2
295
295
  lolcommits takes a snapshot with your webcam every time you git commit code,
296
296
  and archives a lolcat style image with it. It's selfies for software
@@ -395,9 +395,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
395
395
  version: '2.0'
396
396
  required_rubygems_version: !ruby/object:Gem::Requirement
397
397
  requirements:
398
- - - ">="
398
+ - - ">"
399
399
  - !ruby/object:Gem::Version
400
- version: '0'
400
+ version: 1.3.1
401
401
  requirements:
402
402
  - imagemagick
403
403
  - a webcam