Commit 8976ba89db8e8d7e801ec0fc9b60048e48cb653a

Authored by Evandro Junior
1 parent 11fe390b

Fixed tweeter stream for broken token

plugins/community_hub/tweeter_stream/lib/twurl/request_controller.rb
... ... @@ -14,26 +14,39 @@ module Twurl
14 14  
15 15 def perform_request
16 16 client.perform_request_from_options(options) { |response|
  17 + chunk_begining = ""
  18 + puts "Connecting to tweeter stream : " + response.inspect
17 19 response.read_body { |chunk|
18   - #print "chunk: #{chunk}\n"
  20 + chunk = chunk_begining + chunk
  21 + chunk_complete = false
19 22 unless chunk.blank?
20   - begin
  23 + begin
21 24 parsed = JSON.parse(chunk)
22   - ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
23   - #Attention please, don't remove + ' ')[0..-2] it is used for UTF8 validation
24   - comment_text = ic.iconv(parsed["text"] + ' ')[0..-2]
25   - print "#{comment_text}\n"
26   - comment = Comment.new
27   - comment.title = 'hub-message-twitter'
28   - comment.source = options.page
29   - comment.body = comment_text
30   - comment.author_id = options.author_id
31   - #Attention please, don't remove + ' ')[0..-2] it is used for UTF8 validation
32   - comment.name = ic.iconv(parsed["user"]["name"] + ' ')[0..-2]
33   - comment.email = 'admin@localhost.local'
34   - comment.save!
  25 + chunk_complete = true
  26 + chunk_begining = ""
  27 + rescue JSON::ParserError => e
  28 + chunk_begining = chunk
  29 + chunk_complete = false
  30 +# puts "@@@@@@@@ Erro fazendo parse do chunk #{e.inspect} @@@@@@@@\n\n"
  31 + end
  32 + begin
  33 + if chunk_complete
  34 + ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
  35 + #Attention please, don't remove + ' ')[0..-2] it is used for UTF8 validation
  36 + comment_text = ic.iconv(parsed["text"] + ' ')[0..-2]
  37 + comment = Comment.new
  38 + comment.title = 'hub-message-twitter'
  39 + comment.source = options.page
  40 + comment.body = comment_text
  41 + comment.author_id = options.author_id
  42 + #Attention please, don't remove + ' ')[0..-2] it is used for UTF8 validation
  43 + comment.name = ic.iconv(parsed["user"]["name"] + ' ')[0..-2]
  44 + comment.email = 'admin@localhost.local'
  45 + comment.save!
  46 + puts "@#{comment.name} " +_('said') + ": #{comment_text}"
  47 + end
35 48 rescue => e
36   - print "Erro gravando comentário twitter #{e}\n"
  49 + puts "Erro gravando comentário twitter #{e.inspect}"
37 50 end
38 51 end
39 52 }
... ...