gnip-client 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/gnip/gnip-rules/rules.rb +40 -18
- data/lib/gnip/gnip-stream/replay.rb +10 -3
- data/lib/gnip/gnip-stream/stream.rb +11 -3
- data/lib/gnip/power_track_client.rb +15 -13
- data/lib/gnip/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e5af33e34017bd7f0dc599a4c4e9e4d1af97322
|
4
|
+
data.tar.gz: b9b6a7c5f9875acca7a789cff3a713229aac83e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b480d84ed09647a2fc7f79f7d8a3edbf36ac69b940aaff4740f77ccc9340be37980229098fb2b9eb10f3014bf5104447423d477ff73af0dccbfccaacf328300f
|
7
|
+
data.tar.gz: 40dc53a68f67f0fcdb3530e51f57716b679b549f342974910f761e4551a85bb459ba48e8a2a9bd86e4ad1afd9ec66b6f721ad826c07d1238c3a3e695d5b9b8c6
|
data/.gitignore
CHANGED
@@ -4,10 +4,22 @@ module Gnip
|
|
4
4
|
|
5
5
|
include HTTParty
|
6
6
|
|
7
|
-
attr_reader :rules_url
|
7
|
+
attr_reader :rules_url, :version
|
8
8
|
|
9
9
|
def initialize(client, replay=false)
|
10
|
-
@
|
10
|
+
@version = client.power_track_version
|
11
|
+
case self.version
|
12
|
+
when '1.0'
|
13
|
+
@rules_url = "https://api.gnip.com:443/accounts/#{client.account}/publishers/#{client.publisher}/#{replay ? "replay" : "streams"}/track/#{client.label}/rules.json"
|
14
|
+
when '2.0'
|
15
|
+
if replay
|
16
|
+
@rules_url = "https://gnip-api.twitter.com/rules/powertrack-replay/accounts/#{client.account}/publishers/#{client.publisher}/#{client.replay_label}.json"
|
17
|
+
else
|
18
|
+
@rules_url = "https://gnip-api.twitter.com/rules/powertrack/accounts/#{client.account}/publishers/#{client.publisher}/#{client.label}.json"
|
19
|
+
end
|
20
|
+
else
|
21
|
+
raise Exception.new("version #{self.version} is not supported from this gem.")
|
22
|
+
end
|
11
23
|
@auth = { username: client.username, password: client.password }
|
12
24
|
end
|
13
25
|
|
@@ -15,11 +27,12 @@ module Gnip
|
|
15
27
|
#rules should be an hash in the format {"rules": [{"value": "rule1", "tag": "tag1"}, {"value":"rule2"}]}"
|
16
28
|
def add(rules)
|
17
29
|
begin
|
18
|
-
response = self.class.post(self.rules_url, basic_auth: @auth, body: rules.to_json)
|
19
|
-
|
20
|
-
|
30
|
+
response = self.class.post( self.rules_url, basic_auth: @auth, body: rules.to_json, headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }, type: :json )
|
31
|
+
parsed_response = safe_parsed_response(response.parsed_response)
|
32
|
+
if parsed_response.present? && parsed_response["error"].present?
|
33
|
+
{ status: :error, code: response.response.code, error: parsed_response["error"]["message"] }
|
21
34
|
else
|
22
|
-
{ status: :success, code: 200 }
|
35
|
+
{ status: :success, code: 200, response: parsed_response }
|
23
36
|
end
|
24
37
|
rescue Exception => e
|
25
38
|
{ status: :error, code: 500, error: e.message }
|
@@ -31,11 +44,12 @@ module Gnip
|
|
31
44
|
#rules should be an hash in the format {"rules": [{"value": "rule1", "tag": "tag1"}, {"value":"rule2"}]}"
|
32
45
|
def remove(rules)
|
33
46
|
begin
|
34
|
-
response = self.class.
|
35
|
-
|
36
|
-
|
47
|
+
response = self.class.post(self.rules_url, query: { _method: 'delete'}, basic_auth: @auth, body: rules.to_json)
|
48
|
+
parsed_response = safe_parsed_response(response.parsed_response)
|
49
|
+
if parsed_response.present? && parsed_response["error"].present?
|
50
|
+
{ status: :error, code: response.response.code, error: parsed_response["error"]["message"] }
|
37
51
|
else
|
38
|
-
{ status: :success, code: 200 }
|
52
|
+
{ status: :success, code: 200, response: parsed_response }
|
39
53
|
end
|
40
54
|
rescue Exception => e
|
41
55
|
{ status: :error, code: 500, error: e.message }
|
@@ -46,11 +60,12 @@ module Gnip
|
|
46
60
|
#Get the full list of rules
|
47
61
|
def list
|
48
62
|
begin
|
49
|
-
response = self.class.get(self.rules_url, basic_auth: @auth)
|
50
|
-
|
51
|
-
|
63
|
+
response = self.class.get(self.rules_url, basic_auth: @auth, headers: { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }, type: :json )
|
64
|
+
parsed_response = safe_parsed_response(response.parsed_response)
|
65
|
+
if parsed_response.present? && parsed_response["error"].present?
|
66
|
+
{ status: :error, code: response.response.code, error: parsed_response["error"]["message"] }
|
52
67
|
else
|
53
|
-
{ status: :success, code: 200, rules:
|
68
|
+
{ status: :success, code: 200, rules: parsed_response["rules"] }
|
54
69
|
end
|
55
70
|
rescue Exception => e
|
56
71
|
{ status: :error, code: 500, error: e.message }
|
@@ -60,11 +75,12 @@ module Gnip
|
|
60
75
|
#Get the full list of rules by tag
|
61
76
|
def list_by_tag(tag)
|
62
77
|
begin
|
63
|
-
response = self.class.get(self.rules_url, basic_auth: @auth)
|
64
|
-
|
65
|
-
|
78
|
+
response = self.class.get(self.rules_url, basic_auth: @auth)
|
79
|
+
parsed_response = safe_parsed_response(response.parsed_response)
|
80
|
+
if parsed_response.present? && parsed_response["error"].present?
|
81
|
+
{ status: :error, code: response.response.code, error: parsed_response["error"]["message"] }
|
66
82
|
else
|
67
|
-
rules =
|
83
|
+
rules = parsed_response["rules"]
|
68
84
|
{ status: :success, code: 200, rules: rules.select{ |rule| rule["tag"] == tag } }
|
69
85
|
end
|
70
86
|
rescue Exception => e
|
@@ -101,6 +117,12 @@ module Gnip
|
|
101
117
|
|
102
118
|
end
|
103
119
|
|
120
|
+
private
|
121
|
+
def safe_parsed_response(parsed_response)
|
122
|
+
ret = parsed_response.present? ? (parsed_response.is_a?(String) ? JSON.parse(parsed_response).with_indifferent_access : parsed_response) : nil
|
123
|
+
ret
|
124
|
+
end
|
125
|
+
|
104
126
|
end
|
105
127
|
end
|
106
128
|
end
|
@@ -3,13 +3,20 @@ module Gnip
|
|
3
3
|
class Replay < Stream
|
4
4
|
|
5
5
|
def initialize(client)
|
6
|
-
super
|
7
|
-
|
6
|
+
super #version is setted in the super
|
7
|
+
case self.version
|
8
|
+
when '1.0'
|
9
|
+
@url = "https://stream.gnip.com:443/accounts/#{client.account}/publishers/#{client.publisher}/replay/track/#{client.replay_label}.json"
|
10
|
+
when '2.0'
|
11
|
+
@url = "https://gnip-stream.gnip.com/replay/powertrack/accounts/#{client.account}/publishers/#{client.publisher}/#{client.replay_label}.json"
|
12
|
+
else
|
13
|
+
raise Exception.new("version #{self.version} is not supported from this gem.")
|
14
|
+
end
|
8
15
|
end
|
9
16
|
|
10
17
|
def configure_handlers
|
11
18
|
self.on_error { |error| @error_handler.attempt_to_reconnect("Gnip Connection Error. Reason was: #{error.inspect}") }
|
12
|
-
self.on_connection_close { puts '
|
19
|
+
self.on_connection_close { puts 'Gnip::GnipStream::Replay -> Connection closed' }
|
13
20
|
end
|
14
21
|
|
15
22
|
def consume(options={}, &block)
|
@@ -7,10 +7,18 @@ module Gnip
|
|
7
7
|
|
8
8
|
EventMachine.threadpool_size = 5
|
9
9
|
|
10
|
-
attr_accessor :url, :backfill_client
|
10
|
+
attr_accessor :url, :backfill_client, :version
|
11
11
|
|
12
|
-
def initialize(client)
|
13
|
-
|
12
|
+
def initialize(client)
|
13
|
+
self.version = client.power_track_version
|
14
|
+
case self.version
|
15
|
+
when '1.0'
|
16
|
+
@url = "https://stream.gnip.com:443/accounts/#{client.account}/publishers/#{client.publisher}/streams/track/#{client.label}.json"
|
17
|
+
when '2.0'
|
18
|
+
@url = "https://gnip-stream.twitter.com/stream/powertrack/accounts/#{client.account}/publishers/#{client.publisher}/#{client.label}.json"
|
19
|
+
else
|
20
|
+
raise Exception.new("version #{self.version} is not supported from this gem.")
|
21
|
+
end
|
14
22
|
@backfill_client = client.backfill_client
|
15
23
|
@processor = JsonDataBuffer.new("\r\n", Regexp.new(/^\{.*\}\r\n/))
|
16
24
|
@headers = {'authorization' => [client.username, client.password], 'accept-encoding' => 'gzip, compressed'}
|
@@ -3,22 +3,24 @@ module Gnip
|
|
3
3
|
|
4
4
|
attr_accessor :publisher, :label, :account,
|
5
5
|
:username, :password,
|
6
|
-
:backfill_client
|
6
|
+
:backfill_client, :replay_label
|
7
7
|
|
8
|
-
attr_reader :rules, :replay_rules, :full_archive, :stream, :replay
|
8
|
+
attr_reader :rules, :replay_rules, :full_archive, :stream, :replay, :power_track_version
|
9
9
|
|
10
10
|
def initialize(options = {})
|
11
|
-
@account
|
12
|
-
@publisher
|
13
|
-
@label
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
18
|
-
@
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
11
|
+
@account = options[:account]
|
12
|
+
@publisher = options[:publisher]||"twitter"
|
13
|
+
@label = options[:label]||"dev"
|
14
|
+
@replay_label = options[:replay_label]||@label
|
15
|
+
@username = options[:username]
|
16
|
+
@password = options[:password]
|
17
|
+
@backfill_client = options[:backfill_client]||nil
|
18
|
+
@power_track_version = options[:power_track_version]||'2.0'
|
19
|
+
@rules = Gnip::GnipRules::Rules.new(self)
|
20
|
+
@replay_rules = Gnip::GnipRules::Rules.new(self, true)
|
21
|
+
@full_archive = Gnip::GnipFullArchive::FullArchive.new(self)
|
22
|
+
@stream = Gnip::GnipStream::Stream.new(self)
|
23
|
+
@replay = Gnip::GnipStream::Replay.new(self)
|
22
24
|
end
|
23
25
|
|
24
26
|
end
|
data/lib/gnip/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnip-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duccio Giovannelli
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|