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 +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
|