lolcommits 0.9.1 → 0.9.2.pre1
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/.travis.yml +1 -0
- data/CHANGELOG.md +5 -1
- data/lib/lolcommits/plugins/lol_twitter.rb +41 -20
- data/lib/lolcommits/version.rb +1 -1
- data/lolcommits.gemspec +11 -11
- metadata +48 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdf5058a699862aaf28c86de13336c0fb9ce2fe8
|
4
|
+
data.tar.gz: 71a0deced06447c2fe8469a5caec00739edf233e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c2a1fdcff28ce329a77c38da2e47cfa3c6c92bdab14a05b27003385e46895ff3e4e1c51a78185390e7183d6771507863f45b27e667f75a21c4336b87ad90392
|
7
|
+
data.tar.gz: f4a5d25dab8080e4ecc132b148f39b6df1fb78c2afdf5cc1708540fade8b61b07d4df21ddaf3cb6a38a8676515a6fec2cafbed3467e21eb77a037bd3963d0417
|
data/.travis.yml
CHANGED
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.
|
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 '
|
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
|
9
|
-
TWITTER_CONSUMER_KEY
|
10
|
-
TWITTER_CONSUMER_SECRET
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
25
|
-
|
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
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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 -
|
165
|
+
139 - TWITTER_RESERVED_MEDIA_CHARS
|
145
166
|
end
|
146
167
|
|
147
168
|
def self.name
|
data/lib/lolcommits/version.rb
CHANGED
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.
|
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'
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
s.add_development_dependency('
|
56
|
-
s.add_development_dependency('
|
57
|
-
s.add_development_dependency('
|
58
|
-
s.add_development_dependency('
|
59
|
-
s.add_development_dependency('
|
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.
|
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:
|
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.
|
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.
|
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:
|
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:
|
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
|
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
|
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:
|
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:
|
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:
|
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:
|
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
|
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
|
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:
|
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:
|
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:
|
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:
|
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:
|
400
|
+
version: 1.3.1
|
401
401
|
requirements:
|
402
402
|
- imagemagick
|
403
403
|
- a webcam
|