curate_tumblr 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -4,10 +4,6 @@ Reblog and follow in your Tumblr from a file of links.
4
4
 
5
5
  Grow you Tumblr audience by automating the boring tasks !
6
6
 
7
- ### v1.0.5 ###
8
- * Stop if Tumblr error "Not Authorized" (bad oauth)
9
- * Better error messages if problem with directories or config file
10
-
11
7
 
12
8
  ### Installation
13
9
 
@@ -206,13 +202,19 @@ If strange things happen :
206
202
 
207
203
  To reblog a post you need its reblog key.
208
204
 
209
- You have to send a request to tumblr with the post tumblr and id.
205
+ To have it you have to send a request to tumblr with the post tumblr and id.
206
+ In infos hash post from Tumblr you'll have the reblog key
210
207
 
211
208
  You can use :
212
209
 
210
+ *get_hash_post* in CurateTumblr::Publish::Client
211
+ to have the reblog key
212
+
213
+ or
213
214
  *CurateTumblr::Tumblr::ExtractLinks.get_reblog_key_from_reblog_url*
215
+ if the url contains the reblog key (www.tumblr.com/reblog/...)
214
216
 
215
- and *reblog_post_key* in CurateTumblr::Publish.Reblog
217
+ and *reblog_post_key* to reblog it in CurateTumblr::Publish::Reblog
216
218
 
217
219
 
218
220
  ## Todo
@@ -221,6 +223,18 @@ and *reblog_post_key* in CurateTumblr::Publish.Reblog
221
223
  * hidden oauth (are you enough paranoid ?)
222
224
 
223
225
 
226
+ ## Versions ##
227
+
228
+ ### v1.0.6 ###
229
+ * Better error messages if no oauth in config file
230
+
231
+ ### v1.0.5 ###
232
+ * Stop if Tumblr error "Not Authorized" (bad oauth)
233
+
234
+ ### v1.0.4 ###
235
+ * Better error messages if problem with directories or config file
236
+
237
+
224
238
  ## Copyright
225
239
 
226
240
  The Curate Tumblr gem is Copyright (c) 2013 David Tysman and is licensed under the MIT License.
@@ -2,9 +2,9 @@ Gem::Specification.new do |gem|
2
2
  gem.add_dependency 'tumblr_client'
3
3
  gem.add_dependency 'logger'
4
4
  gem.name = 'curate_tumblr'
5
- gem.version = '1.0.5'
5
+ gem.version = '1.0.6'
6
6
  gem.authors = ['David Tysman']
7
- gem.description = 'CurateTumblr - reblog and follow Tumblr links'
7
+ gem.description = 'CurateTumblr - reblog and follow Tumblr links, extract infos from the posts, add tags and links'
8
8
  gem.summary = 'Reblog and follow Tumblr'
9
9
  gem.email = 'web@davidtysman.com'
10
10
  gem.files = `git ls-files`.split("\n")
@@ -89,38 +89,56 @@ module CurateTumblr
89
89
 
90
90
  def check_config_files
91
91
  if !Dir.exists?( @directory )
92
- puts "\nOups! The directory #{@directory} doesn't exist. \nYou need it for your tumblrs subdirectories. \nPlease create it or change the path."
93
- @is_stop = true
94
- return false
92
+ return error_config( "The directory #{@directory} doesn't exist", "You need it for your tumblrs subdirectories. \nPlease create it or change the path." )
95
93
  end
96
94
  if !Dir.exists?( get_path_tumblr )
97
- puts "\nOups! The directory #{get_path_tumblr} doesn't exist. \nYou need it for your tumblr links and config. \nPlease create it or change the path."
98
- @is_stop = true
99
- return false
95
+ return error_config( "The directory #{get_path_tumblr} doesn't exist", "You need it for your tumblr links and config. \nPlease create it or change the path." )
100
96
  end
101
97
  if !Dir.exists?( get_path_links )
102
- puts "\nOups! The directory #{get_path_links} doesn't exist. \nYou need it for set the links to follow and reblog. \nPlease create it or change the path."
103
- @is_stop = true
104
- return false
98
+ return error_config( "The directory #{get_path_links} doesn't exist", "You need it for set the links to follow and reblog. \nPlease create it or change the path." )
105
99
  end
106
100
  if !Dir.exists?( get_path_logs )
107
- puts "\nOups! The directory #{get_path_logs} doesn't exist. \nThe application needs it for write logs. \nPlease create it or change the path."
108
- @is_stop = true
109
- return false
101
+ return error_config( "The directory #{get_path_logs} doesn't exist", "The application needs it for write logs. \nPlease create it or change the path." )
110
102
  end
111
103
  if !File.exists?( get_filename_config )
112
- puts "\nOups! The config file #{get_filename_config} doesn't exist. \nYou need it for set oauth tokens. \nPlease create it or change the path."
113
- @is_stop = true
114
- return false
104
+ return error_config( "The config file #{get_filename_config} doesn't exist", "You need it for set oauth tokens. \nPlease create it or change the path." )
115
105
  end
116
106
  if !File.exists?( get_filename_links )
117
- puts "\nOups! The file #{get_filename_links} doesn't exist. \nYou need it for set the links to reblog. \nPlease create it or change the path."
118
- @is_stop = true
119
- return false
120
- end
107
+ return error_config( "The file #{get_filename_links} doesn't exist", "You need it for set the links to reblog. \nPlease create it or change the path." )
108
+ end
109
+ return false if !check_config_key( Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH, "you need to write it in config file to write inside the oauth tokens to send requests to Tumblr", false )
110
+ return false if !check_config_key( Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH_CONSUMER_KEY, "you need to write it inside '#{Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH}' in config file to send requests to Tumblr" )
111
+ return false if !check_config_key( Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH_CONSUMER_SECRET, "you need to write it inside '#{Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH}' in config file to send requests to Tumblr" )
112
+ return false if !check_config_key( Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH_TOKEN, "you need to write it inside '#{Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH}' in config file to send requests to Tumblr" )
113
+ return false if !check_config_key( Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH_TOKEN_SECRET, "you need to write it inside '#{Tumblr::Client::HASH_CONFIG_CLIENT_OAUTH}' in config file to send requests to Tumblr" )
114
+ true
115
+ end
116
+
117
+ def check_config_key( key, about, is_check_empty=true )
118
+ ar_key = []
119
+ File.open( get_filename_config, "r" ) do |file_config|
120
+ ar_key = file_config.grep( /#{key}:/ )
121
+ if ar_key.count <= 0
122
+ return error_config( "There is no '#{key}' in #{get_filename_config}", about )
123
+ end
124
+ end
125
+ if is_check_empty
126
+ if ar_key[0].split(":").count <= 1
127
+ return error_config( "'#{key}' is empty in #{get_filename_config}", about )
128
+ end
129
+ if ar_key[0].split(":")[1].gsub( /\s+/, "" ).gsub( /"/, "" ).empty?
130
+ return error_config( "'#{key}' is empty in #{get_filename_config}", about )
131
+ end
132
+ end
121
133
  true
122
134
  end
123
135
 
136
+ def error_config( error, about )
137
+ puts "\nOups! #{error} \n#{about}"
138
+ @is_stop = true
139
+ false
140
+ end
141
+
124
142
  def get_config_from_yaml
125
143
  if @is_stop
126
144
  @log_tumblr.error( "don't get config because must stop" )
@@ -237,7 +255,7 @@ module CurateTumblr
237
255
  private
238
256
 
239
257
  def stop_and_alert(message, is_display=true, is_log=true )
240
- @log_tumblr.error( message ) if is_log
258
+ @log_tumblr.error( message ) if is_log && @log_tumblr
241
259
  puts "\n*** Stop it ! #{message} ***" if is_display
242
260
  stop_it!
243
261
  end
@@ -1,7 +1,7 @@
1
1
  class Hash
2
- def check_key( key )
3
- raise "no key '#{key}' in Hash #{to_s}" if !self.has_key?( key )
4
- raise "no key '#{key}' in Hash #{to_s}" if self[key].nil?
5
- raise "key '#{key}' is empty in Hash #{to_s}" if self[key].empty?
2
+ def check_key( key, where='' )
3
+ raise "no key '#{key}' in Hash #{to_s} #{where}" if !self.has_key?( key )
4
+ raise "no key '#{key}' in Hash #{to_s} #{where}" if self[key].nil?
5
+ raise "key '#{key}' is empty in Hash #{to_s} #{where}" if self[key].empty?
6
6
  end
7
7
  end
data/spec/factories.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'factory_girl'
2
2
 
3
3
  def get_tumblr_name
4
- "testitnowyeah13"
4
+ "testitnowyeah14"
5
5
  end
6
6
 
7
7
  def get_tumblr_directory
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: curate_tumblr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,7 +43,8 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
- description: CurateTumblr - reblog and follow Tumblr links
46
+ description: CurateTumblr - reblog and follow Tumblr links, extract infos from the
47
+ posts, add tags and links
47
48
  email: web@davidtysman.com
48
49
  executables: []
49
50
  extensions: []