Class: Roebe::UploadToImgur
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/upload_to_imgur.rb
Overview
Constant Summary
collapse
- ENDPOINTS =
{
image: '/3/image/',
gallery: '/3/gallery/'
}
- API_PUBLIC_KEY =
#
API_PUBLIC_KEY
This is the public imgur API key.
#
'Client-ID 70ff50b8dfc3a53'
- API_URI =
URI.parse('https://apidocs.imgur.com/')
- REGEX_FOR_THE_LINK_ENTRY =
#
REGEX_FOR_THE_LINK_ENTRY
See this URL:
https://rubular.com/r/4scnVyZWGOETJr
#
/"link":"(.+)"}/
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
#initialize(commandline_arguments = ARGV, run_already = true) ⇒ UploadToImgur
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 61
def initialize(
commandline_arguments = ARGV,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
run if run_already
end
|
Instance Method Details
#considering_opening_the_remote_URL_via_a_browser_tab(i = remote_URL?
) ⇒ Object
#
considering_opening_the_remote_URL_via_a_browser_tab
#
100
101
102
103
104
105
106
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 100
def considering_opening_the_remote_URL_via_a_browser_tab(
i = remote_URL?
)
if open_via_the_browser?
open_in_browser(i)
end
end
|
#open_via_the_browser? ⇒ Boolean
#
open_via_the_browser?
#
93
94
95
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 93
def open_via_the_browser?
@open_via_the_browser
end
|
#remote_URL? ⇒ Boolean
Also known as:
remote_url?
187
188
189
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 187
def remote_URL?
@remote_URL
end
|
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 75
def reset
super()
infer_the_namespace
@open_via_the_browser = true
@remote_URL = nil
end
|
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
# File 'lib/roebe/classes/upload_to_imgur.rb', line 111
def run
image_path = first_commandline_argument?
if image_path.nil?
opne 'Please provide a local or remote path to this class.'
return
end
if image_path.start_with?('http')
cd :log_directory
orev "Trying to download #{steelblue(image_path)} next:"
require 'wget'
result = Wget.new(image_path) { :no_check_certificate }
image_path = File.absolute_path(File.basename(result.url?))
end
unless image_path.include? '/'
image_path = File.absolute_path(image_path)
end
if File.exist? image_path
params = {
image: File.read(image_path)
}
request_URL = API_URI.request_uri + ENDPOINTS[:image]
pp request_URL
pp request_URL
pp request_URL
request = Net::HTTP::Post.new(request_URL)
request.set_form_data(params)
request.add_field('Authorization', API_PUBLIC_KEY) opne 'Building up the web_client with SSL support next ...'
web_client = Net::HTTP.new(API_URI.host, API_URI.port)
web_client.use_ssl = true
web_client.verify_mode = OpenSSL::SSL::VERIFY_NONE
response = web_client.request(request)
response_body = response.body
orev "The whole #{steelblue('response.body')} #{rev}was:"
e
e tomato(response_body)
e
new_target = File.absolute_path(image_path)
if File.exist? new_target
orev 'The local image is at:'
e
e " #{tomato(new_target)}"
e
else
orev 'No local image was found at '+sfile(new_target)+rev+'.'
end
opne 'The remote image can be found at:'
e
response_body =~ REGEX_FOR_THE_LINK_ENTRY
@remote_URL = $1.to_s.dup.gsub(/\\/,'') e " #{steelblue(@remote_URL)}"
e
considering_opening_the_remote_URL_via_a_browser_tab
else
opne 'Please supply a (valid) path to a local image.'
opne "The provided argument #{orange(image_path)} is "\
"not a valid path."
end
end
|