Class: Lolcommits::LolTumblr
- Inherits:
-
Plugin
- Object
- Plugin
- Lolcommits::LolTumblr
show all
- Defined in:
- lib/lolcommits/plugins/lol_tumblr.rb
Constant Summary
collapse
- TUMBLR_API_ENDPOINT =
'https://www.tumblr.com'.freeze
- TUMBLR_CONSUMER_KEY =
'2FtMEDpEPkxjoUdkpHh42h9wqTu9IVS7Ra0QyNZGixdCvhllN2'.freeze
- TUMBLR_CONSUMER_SECRET =
'qWuvxgFUR2YyWKtbWOkDTMAiBEbj7ZGaNLaNQPba0PI1N4JpBs'.freeze
Instance Attribute Summary
Attributes inherited from Plugin
#options, #runner
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Plugin
#configuration, #debug, #enabled?, #execute_postcapture, #execute_precapture, #initialize, #log_error, #parse_user_input, #puts, #run_precapture, #valid_configuration?
Class Method Details
.name ⇒ Object
110
111
112
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 110
def self.name
'tumblr'
end
|
.runner_order ⇒ Object
114
115
116
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 114
def self.runner_order
:postcapture
end
|
Instance Method Details
#client ⇒ Object
83
84
85
86
87
88
89
90
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 83
def client
@client ||= Tumblr.new(
:consumer_key => TUMBLR_CONSUMER_KEY,
:consumer_secret => TUMBLR_CONSUMER_SECRET,
:oauth_token => configuration['access_token'],
:oauth_token_secret => configuration['secret']
)
end
|
#config_with_default(key, default = nil) ⇒ Object
102
103
104
105
106
107
108
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 102
def config_with_default(key, default = nil)
if configuration[key]
configuration[key].strip.empty? ? default : configuration[key]
else
default
end
end
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 38
def configure_auth!
puts '---------------------------'
puts 'Need to grab tumblr tokens'
puts '---------------------------'
request_token = oauth_consumer.get_request_token(:exclude_callback => true)
print "\n1) Please open this url in your browser to authorize lolcommits:\n\n"
puts request_token.authorize_url
print "\n2) Launching a local server to complete the OAuth authentication process:\n\n"
begin
server = WEBrick::HTTPServer.new :Port => 3000
server.mount_proc '/', server_callback(server)
server.start
debug "Requesting Tumblr OAuth Token with verifier: #{@verifier}"
access_token = request_token.get_access_token(:oauth_verifier => @verifier)
rescue Errno::EADDRINUSE
puts "\nERROR You have something running on port 3000. Please turn it off to complete the authorization process"
return
rescue OAuth::Unauthorized
puts "\nERROR: Tumblr OAuth verification faile!"
return
end
return unless access_token.token && access_token.secret
puts ''
puts '------------------------------'
puts 'Thanks! Tumblr Auth Succeeded'
puts '------------------------------'
{
'access_token' => access_token.token,
'secret' => access_token.secret
}
end
|
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 27
def configure_options!
options = super
if options['enabled']
auth_config = configure_auth!
return unless auth_config
options = options.merge(auth_config).merge(configure_tumblr_name)
end
options
end
|
72
73
74
75
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 72
def configure_tumblr_name
print "\n3) What's your tumblr name? (i.e. 'http://[THIS PART HERE].tumblr.com'): "
{ 'tumblr_name' => STDIN.gets.strip }
end
|
77
78
79
80
81
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 77
def configured?
!configuration['enabled'].nil? &&
configuration['access_token'] &&
configuration['secret']
end
|
#oauth_consumer ⇒ Object
92
93
94
95
96
97
98
99
100
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 92
def oauth_consumer
@oauth_consumer ||= OAuth::Consumer.new(
TUMBLR_CONSUMER_KEY,
TUMBLR_CONSUMER_SECRET,
:site => TUMBLR_API_ENDPOINT,
:request_endpoint => TUMBLR_API_ENDPOINT,
:http_method => :get
)
end
|
#run_postcapture ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/lolcommits/plugins/lol_tumblr.rb', line 14
def run_postcapture
return unless valid_configuration?
puts 'Posting to Tumblr'
r = client.photo(configuration['tumblr_name'], :data => runner.main_image)
if r.key?('id')
puts "\t--> Post successful!"
else
puts "Tumblr post FAILED! #{r}"
end
rescue Faraday::Error => e
puts "Tumblr post FAILED! #{e.message}"
end
|