ayadn 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e18bb04ce138e330fd86117c3421493d601f071
4
- data.tar.gz: 791e8592572655c87fe2dc325485258941a685c1
3
+ metadata.gz: 06f225381b151b3aff0052e1a18a51ca69c7d56c
4
+ data.tar.gz: 95679ba480b2a43a510ea02d1e0c4782aaa899b9
5
5
  SHA512:
6
- metadata.gz: 4b26d049c720a75eda60b63476043158f881d80228d761a6795865ee21d8da93e15fcd20498da728712b624a54a42fb3ca3cedd0fc5ca0c1d9e3a3fe5409f4d1
7
- data.tar.gz: 48838c2c978e31f86db3124e4f533a8255cafd731945a932f845b542a0c184b9157c4b10b4172d113ec6ab9dfdf758e7bc50efaaf2594156d12bd10b0077a19d
6
+ metadata.gz: 6bbf0b6b7a279928cd39de44514475919335a1467428bbbc96035de702e54c3b2f3285a5c823936c69c370498168d2858cc27bd298a49271fad6ab677270dddf
7
+ data.tar.gz: 751f7ea8bb9e6c0b3f02f1768b3a3908b5c3cb44b51f5c92fdceec2621cfc3a52bb81347f23879820344294b6198c6327d733543428b40a26bfe4758db605f2f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 1.0.8
2
+
3
+ - Better error messages/logs (specifically when HTTP errors)
4
+ - Token is anonymized if in error logs
5
+ - No more database error when canceling a 'nowplaying' post
6
+ - Better mentions colorization
7
+
1
8
  # 1.0.7
2
9
 
3
10
  - Machine-only messages in channels are now viewable
data/lib/ayadn/action.rb CHANGED
@@ -791,7 +791,7 @@ module Ayadn
791
791
 
792
792
  def nowplaying
793
793
  begin
794
- #abort(Status.error_only_osx) unless Settings.config[:platform] =~ /darwin/
794
+ abort(Status.error_only_osx) unless Settings.config[:platform] =~ /darwin/
795
795
  itunes = get_track_infos
796
796
  itunes.each do |el|
797
797
  abort(Status.empty_fields) if el.length == 0
@@ -805,6 +805,8 @@ module Ayadn
805
805
  rescue => e
806
806
  puts Status.wtf
807
807
  Errors.global_error("action/nowplaying", itunes, e)
808
+ ensure
809
+ Databases.close_all
808
810
  end
809
811
  end
810
812
 
data/lib/ayadn/cnx.rb CHANGED
@@ -19,34 +19,35 @@ module Ayadn
19
19
  end
20
20
 
21
21
  def self.check(response)
22
+ message = JSON.parse(response)['meta']['error_message']
22
23
  case response.code
23
24
  when 200
24
25
  response
25
26
  when 204
26
- puts "\n'No content'".color(:red)
27
- Errors.global_error("cnx.rb", response.headers, "NO CONTENT")
27
+ puts "\n#{message}".color(:red)
28
+ Errors.global_error("cnx.rb", [message, response.headers], "NO CONTENT")
28
29
  when 400
29
- puts "\n'Bad request'".color(:red)
30
- Errors.global_error("cnx.rb", response.headers, "BAD REQUEST")
30
+ puts "\n#{message}".color(:red)
31
+ Errors.global_error("cnx.rb", [message, response.headers], "BAD REQUEST")
31
32
  when 401
32
- puts "\n'Unauthorized'".color(:red)
33
- Errors.global_error("cnx.rb", response.headers, "UNAUTHORIZED")
33
+ puts "\n#{message}".color(:red)
34
+ Errors.global_error("cnx.rb", [message, response.headers], "UNAUTHORIZED")
34
35
  when 403
35
- puts "\n'Forbidden'".color(:red)
36
- Errors.global_error("cnx.rb", response.headers, "FORBIDDEN")
36
+ puts "\n#{message}".color(:red)
37
+ Errors.global_error("cnx.rb", [message, response.headers], "FORBIDDEN")
37
38
  when 405
38
- puts "\n'Method not allowed'".color(:red)
39
- Errors.global_error("cnx.rb", response.headers, "METHOD NOT ALLOWED")
39
+ puts "\n#{message}".color(:red)
40
+ Errors.global_error("cnx.rb", [message, response.headers], "METHOD NOT ALLOWED")
40
41
  when 429
41
- puts "\n'Too many requests'".color(:red)
42
+ puts "\n#{message}".color(:red)
42
43
  puts "\n\nAyadn made too many requests to the App.net API. You should wait at least ".color(:cyan) + "#{response.headers[:retry_after]} ".color(:red) + "seconds before trying again. Maybe you launched a lot of Ayadn instances at the same time? That's no problem, but in this case you should increase the value of the scroll timer (with `ayadn set scroll timer 5` for example). App.net allows 5000 requests per hour per account maximum.".color(:cyan)
43
- Errors.global_error("cnx.rb", response.headers, "TOO MANY REQUESTS")
44
+ Errors.global_error("cnx.rb", [message, response.headers], "TOO MANY REQUESTS")
44
45
  when 500
45
- puts "\n'App.net server error'".color(:red)
46
- Errors.global_error("cnx.rb", response.headers, "APP.NET SERVER ERROR")
46
+ puts "\n#{message}".color(:red)
47
+ Errors.global_error("cnx.rb", [message, response.headers], "APP.NET SERVER ERROR")
47
48
  when 507
48
- puts "\n'Insufficient storage'".color(:red)
49
- Errors.global_error("cnx.rb", response.headers, "INSUFFICIENT STORAGE")
49
+ puts "\n#{message}".color(:red)
50
+ Errors.global_error("cnx.rb", [message, response.headers], "INSUFFICIENT STORAGE")
50
51
  else
51
52
  response
52
53
  end
data/lib/ayadn/errors.rb CHANGED
@@ -2,13 +2,12 @@
2
2
  module Ayadn
3
3
  class Errors
4
4
  def self.global_error(where, args, error)
5
- [where, args, error].each do |el|
6
- self.detokenize(el)
7
- end
5
+ elems = []
6
+ args.each {|arg| elems << self.detokenize(arg)}
8
7
  Logs.rec.error "--BEGIN--"
9
8
  Logs.rec.error "#{error}"
10
9
  Logs.rec.debug "LOCATION: #{where}"
11
- Logs.rec.debug "DATA: #{args}" unless args.nil?
10
+ Logs.rec.debug "DATA: #{elems}" unless elems.nil?
12
11
  Logs.rec.debug "STACK: #{caller}"
13
12
  Logs.rec.error "--END--"
14
13
  puts "\n(error logged in #{Settings.config[:paths][:log]}/ayadn.log)\n".color(:blue)
data/lib/ayadn/post.rb CHANGED
@@ -15,7 +15,7 @@ module Ayadn
15
15
  # post = classic
16
16
  # else
17
17
  require "readline"
18
- post = readline
18
+ readline
19
19
  # end
20
20
  # post
21
21
  end
data/lib/ayadn/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Ayadn
3
- VERSION = "1.0.7"
3
+ VERSION = "1.0.8"
4
4
  end
data/lib/ayadn/workers.rb CHANGED
@@ -277,18 +277,22 @@ module Ayadn
277
277
  end
278
278
 
279
279
  def colorize_text(text, mentions)
280
+ reg_split = '[:\-;,?!\'&`^=+<>*%()\/"“”’°£$€.]'
281
+ reg_tag = '#([A-Za-z0-9_]{1,255})(?![\w+])'
282
+ reg_mention = '@([A-Za-z0-9_]{1,20})(?![\w+])'
283
+ reg_sentence = '^.+[\r\n]*'
280
284
  handles = Array.new
281
285
  mentions.each {|username| handles << "@#{username}"}
282
286
  words = Array.new
283
287
  sentences = Array.new
284
288
  hashtag_color = Settings.options[:colors][:hashtags]
285
289
  mention_color = Settings.options[:colors][:mentions]
286
- text.scan(/^.+[\r\n]*/) do |sentence|
290
+ text.scan(/#{reg_sentence}/) do |sentence|
287
291
  sentence.split(' ').each do |word|
288
292
  if word =~ /#\w+/
289
- words << word.gsub(/#([A-Za-z0-9_]{1,255})(?![\w+])/, '#\1'.color(hashtag_color))
293
+ words << word.gsub(/#{reg_tag}/, '#\1'.color(hashtag_color))
290
294
  elsif word =~ /@\w+/
291
- splitted = word.split(/[:\-;,?!'&`^=+<>*%()]/) if word =~ /[:\-;,?!'&`^=+<>*%()]/
295
+ splitted = word.split(/#{reg_split}/) if word =~ /#{reg_split}/
292
296
  if splitted
293
297
  splitted.each {|d| @str = d if d =~ /@\w+/}
294
298
  @str = word if @str.nil?
@@ -296,7 +300,7 @@ module Ayadn
296
300
  @str = word
297
301
  end
298
302
  if handles.include?(@str.downcase)
299
- words << word.gsub(/@([A-Za-z0-9_]{1,20})(?![\w+])/, '@\1'.color(mention_color))
303
+ words << word.gsub(/#{reg_mention}/, '@\1'.color(mention_color))
300
304
  else
301
305
  words << word
302
306
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ayadn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Dejonckheere
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-13 00:00:00.000000000 Z
11
+ date: 2014-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor