lolcommits 0.9.7 → 0.9.8.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
- SHA1:
3
- metadata.gz: ba98466d6cf7019e6f5d6f20c64b939266302725
4
- data.tar.gz: fa59cf67cddbf9d15e3638c00bc69d344dd50f1d
2
+ SHA256:
3
+ metadata.gz: d31898a2726f26689886084c4b0e8f49a33b2d84d11335691249060aba41c678
4
+ data.tar.gz: 4aa011c7b5f18e4101dd593f813a8effda883ec4edec90e71c0bd0ea0f645fdb
5
5
  SHA512:
6
- metadata.gz: 7ed2325e2dd755699bd205956594690992108d497abd4b2ece3d4b735324c2b685bf900db5fda04f54ff0b2bba47885b10d669fc210d9f88da5c3bc58639f551
7
- data.tar.gz: 0148bf16c7cfaf4327c4961f5979011704fd5059bd1cbfced1679b6405c6c0b7f0aeae4722df72e0e356a072445f8beb4329db96c1da7f9287adf531eb9d9ee6
6
+ metadata.gz: fae5f92f2b3b8be24f26b8167cba433588ce130dcc26ebc3a564b11d6f89750a1380a5ed97cff22e5fd7dca12ebb76c0fd6b6a6bef536bec9b2c07f68f89e901
7
+ data.tar.gz: 4ff58c8a955f74feb364800f1ddb44050c32efbc805e4416145f32a30e90d6a2b78d1cb99501f69930894ac72b6957b0b065dbe6843b5b9f71189dfc1e406c62
@@ -75,6 +75,9 @@ Layout/IndentHeredoc:
75
75
  Style/PercentLiteralDelimiters:
76
76
  Enabled: false
77
77
 
78
+ Gemspec/OrderedDependencies:
79
+ Enabled: false
80
+
78
81
  # Offense count: 1
79
82
  # Cop supports --auto-correct.
80
83
  # Configuration parameters: SupportedStyles.
@@ -3,11 +3,10 @@ language: ruby
3
3
  cache: bundler
4
4
  rvm:
5
5
  - 2.0.0
6
- - 2.1.7
7
- - 2.2.4
8
- - 2.3.0
9
- - 2.3.3
10
- - 2.4.1
6
+ - 2.1.10
7
+ - 2.2.8
8
+ - 2.3.5
9
+ - 2.4.2
11
10
  - ruby-head
12
11
 
13
12
  before_install:
@@ -5,9 +5,17 @@ project adheres to [Semantic Versioning][Semver].
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
- * WIP - extract more plugins to gems ...
9
8
  * Your contribution here!
10
9
 
10
+ ## [0.9.8][] (3 December 2017)
11
+ * Extract protonet to gem (@matthutchinson [#361][])
12
+ * Extract flowdock to gem (@matthutchinson [#360][])
13
+ * Extract yammer to gem (@matthutchinson [#359][])
14
+ * Extract hipchat to gem (@matthutchinson [#358][])
15
+ * Extract tumblr to gem (@matthutchinson [#357][])
16
+ * Extract term_output to gem (@matthutchinson [#356][])
17
+ * Add Ruby 2.4.2 to Travis config (@matthutchinson)
18
+
11
19
  ## [0.9.7][] (17 September 2017)
12
20
  * Extract dotcom to gem (@matthutchinson [#355][])
13
21
  * Extract uploldz to gem (@matthutchinson [#354][])
@@ -294,7 +302,8 @@ project adheres to [Semantic Versioning][Semver].
294
302
  instead of compositing multiply image Caption objects (this seems to be more
295
303
  reliable to not glitch.)
296
304
 
297
- [Unreleased]: https://github.com/mroth/lolcommits/compare/v0.9.7...HEAD
305
+ [Unreleased]: https://github.com/mroth/lolcommits/compare/v0.9.8...HEAD
306
+ [0.9.8]: https://github.com/mroth/lolcommits/compare/v0.9.7...v0.9.8
298
307
  [0.9.7]: https://github.com/mroth/lolcommits/compare/v0.9.6...v0.9.7
299
308
  [0.9.6]: https://github.com/mroth/lolcommits/compare/v0.9.5...v0.9.6
300
309
  [0.9.5]: https://github.com/mroth/lolcommits/compare/v0.9.4...v0.9.5
@@ -469,3 +478,9 @@ project adheres to [Semantic Versioning][Semver].
469
478
  [#353]: https://github.com/mroth/lolcommits/pull/353
470
479
  [#354]: https://github.com/mroth/lolcommits/pull/354
471
480
  [#355]: https://github.com/mroth/lolcommits/pull/355
481
+ [#356]: https://github.com/mroth/lolcommits/pull/356
482
+ [#357]: https://github.com/mroth/lolcommits/pull/357
483
+ [#358]: https://github.com/mroth/lolcommits/pull/358
484
+ [#359]: https://github.com/mroth/lolcommits/pull/359
485
+ [#360]: https://github.com/mroth/lolcommits/pull/360
486
+ [#361]: https://github.com/mroth/lolcommits/pull/361
@@ -18,6 +18,7 @@ require 'lolcommits/installation'
18
18
  require 'lolcommits/platform'
19
19
  require 'lolcommits/gem_plugin'
20
20
  require 'lolcommits/plugin_manager'
21
+ require 'lolcommits/plugin/base'
21
22
 
22
23
  # after lolcommits/platform, so that we can do platform-conditional override
23
24
  require 'core_ext/mercurial-ruby/command'
@@ -28,13 +29,5 @@ require 'lolcommits/backends/installation_mercurial'
28
29
  require 'lolcommits/backends/git_info'
29
30
  require 'lolcommits/backends/mercurial_info'
30
31
 
31
- require 'lolcommits/plugin/base'
32
- require 'lolcommits/plugin/term_output'
33
- require 'lolcommits/plugin/lol_yammer'
34
- require 'lolcommits/plugin/lol_protonet'
35
- require 'lolcommits/plugin/lol_tumblr'
36
- require 'lolcommits/plugin/lol_flowdock'
37
- require 'lolcommits/plugin/lol_hipchat'
38
-
39
32
  # require runner after all the plugins have been required
40
33
  require 'lolcommits/runner'
@@ -51,7 +51,7 @@ module Lolcommits
51
51
  private
52
52
 
53
53
  def gem_path
54
- gem_name.gsub(/-|_/, '/')
54
+ gem_name.tr('-', '/')
55
55
  end
56
56
 
57
57
  def plugin_klass_name
@@ -1,84 +0,0 @@
1
- require 'yammer'
2
- require 'rest_client'
3
-
4
- # https://developer.yammer.com/oauth2-quickstart/
5
- YAMMER_CLIENT_ID = 'bgORyeKtnjZJSMwp8oln9g'.freeze
6
- YAMMER_CLIENT_SECRET = 'oer2WdGzh74a5QBbW3INUxblHK3yg9KvCZmiBa2r0'.freeze
7
- YAMMER_ACCESS_TOKEN_URL = 'https://www.yammer.com/oauth2/access_token.json'.freeze
8
- YAMMER_RETRY_COUNT = 2
9
-
10
- module Lolcommits
11
- module Plugin
12
- class LolYammer < Base
13
- def self.name
14
- 'yammer'
15
- end
16
-
17
- def self.runner_order
18
- :capture_ready
19
- end
20
-
21
- def configured?
22
- !configuration['access_token'].nil?
23
- end
24
-
25
- def configure_access_token
26
- print "Open the URL below and copy the `code` param from query after redirected, enter it as `access_token`:\n"
27
- print "https://www.yammer.com/dialog/oauth?client_id=#{YAMMER_CLIENT_ID}&response_type=code\n"
28
- print 'Enter code param from the redirected URL, then press enter: '
29
- code = gets.to_s.strip
30
-
31
- url = YAMMER_ACCESS_TOKEN_URL
32
- debug "access_token url: #{url}"
33
- params = {
34
- 'client_id' => YAMMER_CLIENT_ID,
35
- 'client_secret' => YAMMER_CLIENT_SECRET,
36
- 'code' => code
37
- }
38
- debug "params : #{params.inspect}"
39
- result = JSON.parse(RestClient.post(url, params))
40
- debug "response : #{result.inspect}"
41
- # no need for 'return', last line is always the return value
42
- { 'access_token' => result['access_token']['token'] }
43
- end
44
-
45
- def configure_options!
46
- options = super
47
- # ask user to configure tokens if enabling
48
- if options['enabled']
49
- auth_config = configure_access_token
50
- return unless auth_config
51
- options.merge!(auth_config)
52
- end
53
- options
54
- end
55
-
56
- def run_capture_ready
57
- commit_msg = runner.message
58
- post = "#{commit_msg} #lolcommits"
59
- puts "Yammer post: #{post}" unless runner.capture_stealth
60
-
61
- Yammer.configure do |c|
62
- c.client_id = YAMMER_CLIENT_ID
63
- c.client_secret = YAMMER_CLIENT_SECRET
64
- end
65
-
66
- client = Yammer::Client.new(access_token: configuration['access_token'])
67
-
68
- retries = YAMMER_RETRY_COUNT
69
- begin
70
- lolimage = File.new(runner.main_image)
71
- response = client.create_message(post, attachment1: lolimage)
72
- debug response.body.inspect
73
- puts "\t--> Status posted!" if response
74
- rescue StandardError => e
75
- retries -= 1
76
- retry if retries > 0
77
- puts "Status not posted - #{e.message}"
78
- puts 'Try running config again:'
79
- puts "\tlolcommits --config --plugin yammer"
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,4 +1,4 @@
1
1
  module Lolcommits
2
- VERSION = '0.9.7'.freeze
2
+ VERSION = '0.9.8.pre1'.freeze
3
3
  GEM_NAME = 'lolcommits'.freeze
4
4
  end
@@ -21,17 +21,17 @@ DESC
21
21
  s.post_install_message = <<-POSTINSTALL
22
22
  -------------------------------------------------------------------------------
23
23
 
24
- Lolcommits: quick message from the dev team! v0.9.5 extracts the Twitter plugin
25
- into a gem. If you want to continue tweeting your lol's install and configure
26
- the lolcommits-twitter gem - like this;
24
+ Lolcommits: A quick message from the dev team! All plugins have now been
25
+ extracted to external gems. To continue using a (previously built-in) plugin,
26
+ first install the gem then configure to enable it e.g.
27
27
 
28
28
  gem install lolcommits-twitter
29
- lolcommits --config -p twitter
30
- # confirm PIN, options and there's one new setting to auto-open the tweet URL
29
+ lolcommits --config
31
30
 
32
- That's it! You can revoke the old Lolcommits app token from here:
31
+ See https://github.com/mroth/lolcommits/wiki/Configuring-Plugins for details.
33
32
 
34
- https://twitter.com/settings/applications
33
+ Future plugin developers should check out this repo to get started:
34
+ https://github.com/lolcommits/lolcommits-plugin-sample
35
35
 
36
36
  Happy Lol'ing!
37
37
 
@@ -51,6 +51,7 @@ POSTINSTALL
51
51
  # hold back upgrading (and why)
52
52
  s.add_development_dependency('aruba', '=0.6.2') # upgrading requires a lot of test code changes
53
53
  s.add_development_dependency('rake', '=10.5.0') # ~> 11+ introduces lots of warnings from other deps
54
+ s.add_development_dependency('cucumber', '~> 2.4.0') # > 2.4 breaks aruba, since aruba_timeout_seconds not set
54
55
  s.add_runtime_dependency('net-http-persistent', '=2.9.4') # ~> 3+ requires Ruby 2.1
55
56
  s.add_runtime_dependency('public_suffix', '~>2.0.0') # ~> 3+ requires Ruby 2.1
56
57
 
@@ -62,22 +63,15 @@ POSTINSTALL
62
63
  s.add_runtime_dependency('open4', '~> 1.3.4')
63
64
  s.add_runtime_dependency('git', '~> 1.3.0')
64
65
 
65
- # built-in lolcommits plugin
66
+ # included plugins
66
67
  s.add_runtime_dependency('lolcommits-loltext', '~> 0.0.4')
67
68
 
68
- # plugin gems
69
- s.add_runtime_dependency('yam', '~> 2.5.0') # yammer
70
- s.add_runtime_dependency('tumblr_client', '~> 0.8.5') # tumblr
71
-
72
- # development gems
69
+ # development & test gems
73
70
  s.add_development_dependency('rdoc')
74
71
  s.add_development_dependency('pry')
75
-
76
- # testing gems (latest versions)
77
72
  s.add_development_dependency('rubocop')
78
73
  s.add_development_dependency('travis')
79
74
  s.add_development_dependency('minitest')
80
75
  s.add_development_dependency('coveralls')
81
76
  s.add_development_dependency('ffaker')
82
- s.add_development_dependency('cucumber')
83
77
  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.7
4
+ version: 0.9.8.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: 2017-09-17 00:00:00.000000000 Z
12
+ date: 2017-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aruba
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
41
  version: 10.5.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: cucumber
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 2.4.0
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 2.4.0
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: net-http-persistent
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -165,34 +179,6 @@ dependencies:
165
179
  - - "~>"
166
180
  - !ruby/object:Gem::Version
167
181
  version: 0.0.4
168
- - !ruby/object:Gem::Dependency
169
- name: yam
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - "~>"
173
- - !ruby/object:Gem::Version
174
- version: 2.5.0
175
- type: :runtime
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - "~>"
180
- - !ruby/object:Gem::Version
181
- version: 2.5.0
182
- - !ruby/object:Gem::Dependency
183
- name: tumblr_client
184
- requirement: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - "~>"
187
- - !ruby/object:Gem::Version
188
- version: 0.8.5
189
- type: :runtime
190
- prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - "~>"
194
- - !ruby/object:Gem::Version
195
- version: 0.8.5
196
182
  - !ruby/object:Gem::Dependency
197
183
  name: rdoc
198
184
  requirement: !ruby/object:Gem::Requirement
@@ -291,20 +277,6 @@ dependencies:
291
277
  - - ">="
292
278
  - !ruby/object:Gem::Version
293
279
  version: '0'
294
- - !ruby/object:Gem::Dependency
295
- name: cucumber
296
- requirement: !ruby/object:Gem::Requirement
297
- requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- version: '0'
301
- type: :development
302
- prerelease: false
303
- version_requirements: !ruby/object:Gem::Requirement
304
- requirements:
305
- - - ">="
306
- - !ruby/object:Gem::Version
307
- version: '0'
308
280
  description: |2
309
281
  lolcommits takes a snapshot with your webcam every time you git commit code,
310
282
  and archives a lolcat style image with it. It's selfies for software
@@ -368,12 +340,7 @@ files:
368
340
  - lib/lolcommits/installation.rb
369
341
  - lib/lolcommits/platform.rb
370
342
  - lib/lolcommits/plugin/base.rb
371
- - lib/lolcommits/plugin/lol_flowdock.rb
372
- - lib/lolcommits/plugin/lol_hipchat.rb
373
- - lib/lolcommits/plugin/lol_protonet.rb
374
- - lib/lolcommits/plugin/lol_tumblr.rb
375
343
  - lib/lolcommits/plugin/lol_yammer.rb
376
- - lib/lolcommits/plugin/term_output.rb
377
344
  - lib/lolcommits/plugin_manager.rb
378
345
  - lib/lolcommits/runner.rb
379
346
  - lib/lolcommits/test_helpers/fake_io.rb
@@ -396,17 +363,17 @@ metadata: {}
396
363
  post_install_message: |2
397
364
  -------------------------------------------------------------------------------
398
365
 
399
- Lolcommits: quick message from the dev team! v0.9.5 extracts the Twitter plugin
400
- into a gem. If you want to continue tweeting your lol's install and configure
401
- the lolcommits-twitter gem - like this;
366
+ Lolcommits: A quick message from the dev team! All plugins have now been
367
+ extracted to external gems. To continue using a (previously built-in) plugin,
368
+ first install the gem then configure to enable it e.g.
402
369
 
403
370
  gem install lolcommits-twitter
404
- lolcommits --config -p twitter
405
- # confirm PIN, options and there's one new setting to auto-open the tweet URL
371
+ lolcommits --config
406
372
 
407
- That's it! You can revoke the old Lolcommits app token from here:
373
+ See https://github.com/mroth/lolcommits/wiki/Configuring-Plugins for details.
408
374
 
409
- https://twitter.com/settings/applications
375
+ Future plugin developers should check out this repo to get started:
376
+ https://github.com/lolcommits/lolcommits-plugin-sample
410
377
 
411
378
  Happy Lol'ing!
412
379
 
@@ -421,14 +388,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
421
388
  version: '2.0'
422
389
  required_rubygems_version: !ruby/object:Gem::Requirement
423
390
  requirements:
424
- - - ">="
391
+ - - ">"
425
392
  - !ruby/object:Gem::Version
426
- version: '0'
393
+ version: 1.3.1
427
394
  requirements:
428
395
  - imagemagick
429
396
  - a webcam
430
397
  rubyforge_project:
431
- rubygems_version: 2.6.13
398
+ rubygems_version: 2.7.3
432
399
  signing_key:
433
400
  specification_version: 4
434
401
  summary: Capture webcam image on git commit for lulz.
@@ -1,69 +0,0 @@
1
- require 'rest_client'
2
-
3
- module Lolcommits
4
- module Plugin
5
- class LolFlowdock < Base
6
- ENDPOINT_URL = 'api.flowdock.com/flows/'.freeze
7
- RETRY_COUNT = 2
8
-
9
- def self.name
10
- 'flowdock'
11
- end
12
-
13
- def self.runner_order
14
- :capture_ready
15
- end
16
-
17
- def configured?
18
- !configuration['access_token'].nil?
19
- end
20
-
21
- def configure
22
- print "Open the URL below and issue a token for your user (Personal API token):\n"
23
- print "https://flowdock.com/account/tokens\n"
24
- print "Enter the generated token below, then press enter: \n"
25
- code = gets.to_s.strip
26
- print "Enter the machine name of the flow you want to post to from this repo.\n"
27
- print "Go to https://www.flowdock.com/account and click Flows, then click the flow, then get the machine name from the URL:\n"
28
- flow = gets.to_s.strip.downcase
29
- print "Enter the name of the organization for this Flowdock account.\n"
30
- organization = gets.to_s.strip.downcase
31
-
32
- {
33
- 'access_token' => code,
34
- 'flow' => flow,
35
- 'organization' => organization
36
- }
37
- end
38
-
39
- def configure_options!
40
- options = super
41
- if options['enabled']
42
- config = configure
43
- options.merge!(config)
44
- end
45
- options
46
- end
47
-
48
- def run_capture_ready
49
- retries = RETRY_COUNT
50
- begin
51
-
52
- endpoint = 'https://' + configuration['access_token'] + '@' + ENDPOINT_URL + configuration['organization'] + '/' + configuration['flow'] + '/messages'
53
- response = RestClient.post(
54
- endpoint,
55
- event: 'file',
56
- content: File.new(runner.main_image)
57
- )
58
- debug response
59
- rescue StandardError => e
60
- retries -= 1
61
- retry if retries > 0
62
- puts "Posting to flowdock failed - #{e.message}"
63
- puts 'Try running config again:'
64
- puts "\tlolcommits --config --plugin flowdock"
65
- end
66
- end
67
- end
68
- end
69
- end
@@ -1,124 +0,0 @@
1
- module Lolcommits
2
- module Plugin
3
- class LolHipchat < Base
4
- def configure_options!
5
- options = super
6
- options.merge! configure_auth_options if options['enabled']
7
- options
8
- end
9
-
10
- def configure_auth_options
11
- puts '-' * 50
12
- puts ' Lolcommits HipChat Plugin Configuration'
13
- puts '-' * 50
14
-
15
- puts '1.) I need your Team Name '
16
- puts 'teamname as in teamname.hipchat.com, without .hipchat.com'
17
- print 'Your Teamname: '
18
- teamname = gets.to_s.strip
19
- puts "2.) We need a Authentication Token, get yours at https://#{teamname}.hipchat.com/account/api"
20
- puts 'make sure to select scope "Send Message"'
21
- print 'Your auth_token: '
22
- token = gets.to_s.strip
23
- puts '3.) Which Room should be we post to?'
24
- puts 'can be a id or name'
25
- print 'Your Room: '
26
- room = gets.to_s.strip
27
-
28
- {
29
- 'api_token' => token,
30
- 'api_team' => teamname,
31
- 'api_room' => room
32
- }
33
- end
34
-
35
- def run_capture_ready
36
- http = Net::HTTP.new(api_url.host, api_url.port)
37
- # http.set_debug_output $stderr # nice for debugging, never ever release with it
38
- http.start do |connection|
39
- header = { 'Content-Type' => 'multipart/related; boundary=0123456789ABLEWASIEREISAWELBA9876543210' }
40
- data = [message_part, picture_part].map do |part|
41
- "--0123456789ABLEWASIEREISAWELBA9876543210\r\n#{part}"
42
- end.join('') << '--0123456789ABLEWASIEREISAWELBA9876543210--'
43
- connection.post("#{api_url.path}?#{api_url.query}", data, header)
44
- end
45
- end
46
-
47
- def message_part
48
- [
49
- 'Content-Type: application/json; charset=UTF-8',
50
- 'Content-Disposition: attachment; name="metadata"',
51
- '',
52
- message_json,
53
- ''
54
- ].join "\r\n"
55
- end
56
-
57
- def message_json
58
- { message: message }.to_json.force_encoding('utf-8')
59
- end
60
-
61
- def picture_part
62
- mime_type = MIME::Types.type_for(picture.path)[0] || MIME::Types['application/octet-stream'][0]
63
- [
64
- format('Content-Type: %s', mime_type.simplified),
65
- format('Content-Disposition: attachment; name="file"; filename="%s"', picture.path),
66
- '',
67
- "#{picture.read} ",
68
- ''
69
- ].join "\r\n"
70
- end
71
-
72
- def picture
73
- @picture ||= File.new(runner.main_image)
74
- end
75
-
76
- def api_url
77
- URI(format('http://%<api_team>s.hipchat.com/v2/room/%<api_room>s/share/file?auth_token=%<api_token>s', symbolized_configuration))
78
- end
79
-
80
- def symbolized_configuration
81
- @symbolized_configuration ||= configuration.each_with_object({}) { |(k, v), obj| obj[k.to_sym] = v }
82
- end
83
-
84
- def message
85
- "commited some #{random_adjective} #{random_object} to #{runner.vcs_info.repo}@#{runner.sha} (#{runner.vcs_info.branch}) "
86
- end
87
-
88
- def random_object
89
- objects = %w(screws bolts exceptions errors cookies)
90
-
91
- objects.sample
92
- end
93
-
94
- def random_adjective
95
- adjectives = %w(adaptable adventurous affable affectionate agreeable ambitious amiable amicable amusing brave \
96
- bright broad-minded calm careful charming communicative compassionate conscientious considerate \
97
- convivial courageous courteous creative decisive determined diligent diplomatic discreet dynamic \
98
- easygoing emotional energetic enthusiastic exuberant fair-minded faithful fearless forceful \
99
- frank friendly funny generous gentle good gregarious hard-working helpful honest humorous \
100
- imaginative impartial independent intellectual intelligent intuitive inventive kind loving loyal \
101
- modest neat nice optimistic passionate patient persistent pioneering philosophical placid plucky \
102
- polite powerful practical pro-active quick-witted quiet rational reliable reserved resourceful \
103
- romantic self-confident self-disciplined sensible sensitive shy sincere sociable straightforward \
104
- sympathetic thoughtful tidy tough unassuming understanding versatile warmhearted willing witty)
105
- adjectives.sample
106
- end
107
-
108
- def configured?
109
- super &&
110
- configuration['api_token'] &&
111
- configuration['api_team'] &&
112
- configuration['api_room']
113
- end
114
-
115
- def self.name
116
- 'hipchat'
117
- end
118
-
119
- def self.runner_order
120
- :capture_ready
121
- end
122
- end
123
- end
124
- end
@@ -1,68 +0,0 @@
1
- require 'rest_client'
2
-
3
- module Lolcommits
4
- module Plugin
5
- class LolProtonet < Base
6
- def initialize(runner: nil, config: nil)
7
- super
8
- options.concat(%w(api_token api_endpoint))
9
- end
10
-
11
- def run_capture_ready
12
- debug "Posting capture to #{configuration['endpoint']}"
13
- RestClient.post(
14
- api_url,
15
- {
16
- files: [File.new(runner.main_image)],
17
- message: message
18
- },
19
- 'X-Protonet-Token' => configuration['api_token']
20
- )
21
- end
22
-
23
- def api_url
24
- configuration['api_endpoint']
25
- end
26
-
27
- def message
28
- "commited some #{random_adjective} #{random_object} to #{runner.vcs_info.repo}@#{runner.sha} (#{runner.vcs_info.branch}) "
29
- end
30
-
31
- def random_object
32
- objects = %w(screws bolts exceptions errors cookies)
33
-
34
- objects.sample
35
- end
36
-
37
- def random_adjective
38
- adjectives = [
39
- 'awesome', 'great', 'interesting', 'cool', 'EPIC', 'gut', 'good', 'pansy',
40
- 'powerful', 'boring', 'quirky', 'untested', 'german', 'iranian', 'neutral', 'crazy', 'well tested',
41
- 'jimmy style', 'nasty', 'bibliographical (we received complaints about the original wording)',
42
- 'bombdiggidy', 'narly', 'spiffy', 'smashing', 'xing style',
43
- 'leo apotheker style', 'black', 'white', 'yellow', 'shaggy', 'tasty', 'mind bending', 'JAY-Z',
44
- 'Kanye (the best ever)', '* Toby Keith was here *', 'splendid', 'stupendulous',
45
- '(freedom fries!)', '[vote RON PAUL]', '- these are not my glasses -', 'typical pansy',
46
- '- ze goggles zey do nothing! -', 'almost working', 'legen- wait for it -', '-dairy!',
47
- ' - Tavonius would be proud of this - ', 'Meg FAILMAN!', '- very brofessional of you -',
48
- 'heartbleeding', 'juciy', 'supercalifragilisticexpialidocious', 'failing', 'loving'
49
- ]
50
- adjectives.sample
51
- end
52
-
53
- def configured?
54
- !configuration['enabled'].nil? &&
55
- configuration['api_token'] &&
56
- configuration['api_endpoint']
57
- end
58
-
59
- def self.name
60
- 'lolprotonet'
61
- end
62
-
63
- def self.runner_order
64
- :capture_ready
65
- end
66
- end
67
- end
68
- end
@@ -1,129 +0,0 @@
1
- require 'yaml'
2
- require 'oauth'
3
- require 'webrick'
4
- require 'cgi'
5
- require 'tumblr_client'
6
-
7
- module Lolcommits
8
- module Plugin
9
- class LolTumblr < Base
10
- TUMBLR_API_ENDPOINT = 'https://www.tumblr.com'.freeze
11
- TUMBLR_CONSUMER_KEY = '2FtMEDpEPkxjoUdkpHh42h9wqTu9IVS7Ra0QyNZGixdCvhllN2'.freeze
12
- TUMBLR_CONSUMER_SECRET = 'qWuvxgFUR2YyWKtbWOkDTMAiBEbj7ZGaNLaNQPba0PI1N4JpBs'.freeze
13
-
14
- def run_capture_ready
15
- puts 'Posting to Tumblr'
16
- r = client.photo(configuration['tumblr_name'], data: runner.main_image)
17
- if r.key?('id')
18
- puts "\t--> Post successful!"
19
- else
20
- puts "Tumblr post FAILED! #{r}"
21
- end
22
- rescue Faraday::Error => e
23
- puts "Tumblr post FAILED! #{e.message}"
24
- end
25
-
26
- def configure_options!
27
- options = super
28
- # ask user to configure tokens if enabling
29
- if options['enabled']
30
- auth_config = configure_auth!
31
- return unless auth_config
32
- options = options.merge(auth_config).merge(configure_tumblr_name)
33
- end
34
- options
35
- end
36
-
37
- def configure_auth!
38
- puts '---------------------------'
39
- puts 'Need to grab tumblr tokens'
40
- puts '---------------------------'
41
-
42
- request_token = oauth_consumer.get_request_token(exclude_callback: true)
43
- print "\n1) Please open this url in your browser to authorize lolcommits:\n\n"
44
- puts request_token.authorize_url
45
- print "\n2) Launching a local server to complete the OAuth authentication process:\n\n"
46
- begin
47
- server = WEBrick::HTTPServer.new Port: 3000
48
- server.mount_proc '/', server_callback(server)
49
- server.start
50
- debug "Requesting Tumblr OAuth Token with verifier: #{@verifier}"
51
- access_token = request_token.get_access_token(oauth_verifier: @verifier)
52
- rescue Errno::EADDRINUSE
53
- puts "\nERROR You have something running on port 3000. Please turn it off to complete the authorization process"
54
- return
55
- rescue OAuth::Unauthorized
56
- puts "\nERROR: Tumblr OAuth verification faile!"
57
- return
58
- end
59
- return unless access_token.token && access_token.secret
60
- puts ''
61
- puts '------------------------------'
62
- puts 'Thanks! Tumblr Auth Succeeded'
63
- puts '------------------------------'
64
-
65
- {
66
- 'access_token' => access_token.token,
67
- 'secret' => access_token.secret
68
- }
69
- end
70
-
71
- def configure_tumblr_name
72
- print "\n3) What's your tumblr name? (i.e. 'http://[THIS PART HERE].tumblr.com'): "
73
- { 'tumblr_name' => gets.strip }
74
- end
75
-
76
- def configured?
77
- !configuration['enabled'].nil? &&
78
- configuration['access_token'] &&
79
- configuration['secret']
80
- end
81
-
82
- def client
83
- @client ||= Tumblr.new(
84
- consumer_key: TUMBLR_CONSUMER_KEY,
85
- consumer_secret: TUMBLR_CONSUMER_SECRET,
86
- oauth_token: configuration['access_token'],
87
- oauth_token_secret: configuration['secret']
88
- )
89
- end
90
-
91
- def oauth_consumer
92
- @oauth_consumer ||= OAuth::Consumer.new(
93
- TUMBLR_CONSUMER_KEY,
94
- TUMBLR_CONSUMER_SECRET,
95
- site: TUMBLR_API_ENDPOINT,
96
- request_endpoint: TUMBLR_API_ENDPOINT,
97
- http_method: :get
98
- )
99
- end
100
-
101
- def config_with_default(key, default = nil)
102
- if configuration[key]
103
- configuration[key].strip.empty? ? default : configuration[key]
104
- else
105
- default
106
- end
107
- end
108
-
109
- def self.name
110
- 'tumblr'
111
- end
112
-
113
- def self.runner_order
114
- :capture_ready
115
- end
116
-
117
- protected
118
-
119
- def server_callback(server)
120
- proc do |req, res|
121
- q = CGI.parse req.request_uri.query
122
- @verifier = q['oauth_verifier'][0]
123
- server.stop
124
- res.body = 'Lolcommits authorization complete!'
125
- end
126
- end
127
- end
128
- end
129
- end
@@ -1,55 +0,0 @@
1
- require 'base64'
2
-
3
- module Lolcommits
4
- module Plugin
5
- class TermOutput < Base
6
- def run_capture_ready
7
- if terminal_supported?
8
- if !runner.vcs_info || runner.vcs_info.repo.empty?
9
- debug 'repo is empty, skipping term output'
10
- else
11
- base64 = Base64.encode64(open(runner.main_image, &:read))
12
- puts "#{begin_escape}1337;File=inline=1:#{base64};alt=#{runner.message};#{end_escape}\n"
13
- end
14
- else
15
- debug 'Disabled, your terminal is not supported (requires iTerm2)'
16
- end
17
- end
18
-
19
- def self.name
20
- 'term_output'
21
- end
22
-
23
- def self.runner_order
24
- :capture_ready
25
- end
26
-
27
- def configure_options!
28
- if terminal_supported?
29
- super
30
- else
31
- puts "Sorry, your terminal does not support the #{self.class.name} plugin (requires iTerm2)"
32
- end
33
- end
34
-
35
- private
36
-
37
- # escape sequences for tmux sessions differ
38
- def begin_escape
39
- tmux? ? "\033Ptmux;\033\033]" : "\033]"
40
- end
41
-
42
- def end_escape
43
- tmux? ? "\a\033\\" : "\a"
44
- end
45
-
46
- def tmux?
47
- !ENV['TMUX'].nil?
48
- end
49
-
50
- def terminal_supported?
51
- ENV['TERM_PROGRAM'] =~ /iTerm/
52
- end
53
- end
54
- end
55
- end