gnip_api 1.0.6 → 1.1.0
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/gnip_api/gnip/message.rb +8 -0
- data/lib/gnip_api/gnip/twitter_compliance_message.rb +27 -0
- data/lib/gnip_api/version.rb +1 -1
- data/lib/gnip_api.rb +1 -0
- data/spec/fixtures/twitter_messages/user_protect.json +1 -1
- data/spec/gnip_api/gnip/message_spec.rb +62 -0
- data/spec/gnip_api/gnip/twitter_compliance_message_spec.rb +56 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1a03c01f8a95a5621c8f373ad4c5f2067e17ee3
|
4
|
+
data.tar.gz: d9e4ad8ec4efdf87050a69df72ade7463da1064c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b4ea27632b292fb770554048fda192e39105c6b2eb4126132317792304ae9ee69637216325167a04b953cb6c10f29a1370bb0f513bcb374778239dafc3cfa14
|
7
|
+
data.tar.gz: 96e048454f85a96147052f24ba442343b4113630725154d84db567b02453cb6b68112820bc1ce974383ed1b9eddde31b142f460ed9f20599b5486a7522b4bb61
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Gnip
|
2
2
|
class Message
|
3
3
|
SYSTEM_MESSAGE_TYPES = ['error', 'warn', 'info']
|
4
|
+
TWITTER_COMPLIANCE_MESSAGES = ['delete', 'user_delete', 'user_undelete', 'scrub_geo',
|
5
|
+
'user_protect', 'user_unprotect', 'user_suspend', 'user_unsuspend',
|
6
|
+
'user_withheld', 'status_withheld']
|
4
7
|
|
5
8
|
def self.build params
|
6
9
|
return build_system_message(params) if (SYSTEM_MESSAGE_TYPES & params.keys).any?
|
10
|
+
return build_twitter_compliance_message(params) if TWITTER_COMPLIANCE_MESSAGES.include? params['verb']
|
7
11
|
return build_activity(params) if params['objectType'] && params['objectType'] == 'activity'
|
8
12
|
raise Gnip::UndefinedMessage
|
9
13
|
end
|
@@ -37,6 +41,10 @@ module Gnip
|
|
37
41
|
Gnip::SystemMessage.new params
|
38
42
|
end
|
39
43
|
|
44
|
+
def self.build_twitter_compliance_message params
|
45
|
+
Gnip::TwitterComplianceMessage.new params
|
46
|
+
end
|
47
|
+
|
40
48
|
def self.build_activity params
|
41
49
|
Gnip::Activity.new params
|
42
50
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Gnip
|
2
|
+
class TwitterComplianceMessage < Gnip::Message
|
3
|
+
attr_reader :raw, :object_type, :verb, :object, :actor, :timestamp_ms, :target, :withheld_in_countries
|
4
|
+
|
5
|
+
def initialize params = {}
|
6
|
+
@raw = params
|
7
|
+
@object_type = params['objectType']
|
8
|
+
@actor = params['actor']
|
9
|
+
@verb = params['verb']
|
10
|
+
@timestamp_ms = params['timestampMs']
|
11
|
+
@object = params['object']
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_h
|
15
|
+
@raw
|
16
|
+
end
|
17
|
+
|
18
|
+
def timestamp_ms
|
19
|
+
DateTime.parse(@timestamp_ms)
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_json
|
23
|
+
@raw.to_json
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/lib/gnip_api/version.rb
CHANGED
data/lib/gnip_api.rb
CHANGED
@@ -16,6 +16,7 @@ require "gnip_api/apis/power_track/rule"
|
|
16
16
|
require "gnip_api/apis/search"
|
17
17
|
require "gnip_api/gnip/message"
|
18
18
|
require "gnip_api/gnip/system_message"
|
19
|
+
require "gnip_api/gnip/twitter_compliance_message"
|
19
20
|
require "gnip_api/gnip/actor"
|
20
21
|
require "gnip_api/gnip/activity"
|
21
22
|
require "gnip_api/gnip/gnip_data"
|
@@ -22,6 +22,68 @@ describe Gnip::Message do
|
|
22
22
|
expect(Gnip::Message.build(@activity).class).to eq(Gnip::Activity)
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
context 'twitter compliance message' do
|
27
|
+
it 'parses status delete as twitter compliance message' do
|
28
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_delete.json'))
|
29
|
+
message = Gnip::Message.build(data)
|
30
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'parses user delete as twitter compliance message' do
|
34
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_delete.json'))
|
35
|
+
message = Gnip::Message.build(data)
|
36
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'parses user undelete as twitter compliance message' do
|
40
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_undelete.json'))
|
41
|
+
message = Gnip::Message.build(data)
|
42
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'parses scrub geo as twitter compliance message' do
|
46
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'scrub_geo.json'))
|
47
|
+
message = Gnip::Message.build(data)
|
48
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'parses user protect as twitter compliance message' do
|
52
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_protect.json'))
|
53
|
+
message = Gnip::Message.build(data)
|
54
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'parses user unprotect as twitter compliance message' do
|
58
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unprotect.json'))
|
59
|
+
message = Gnip::Message.build(data)
|
60
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'parses user suspend as twitter compliance message' do
|
64
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_suspend.json'))
|
65
|
+
message = Gnip::Message.build(data)
|
66
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'parses user unsuspend as twitter compliance message' do
|
70
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unsuspend.json'))
|
71
|
+
message = Gnip::Message.build(data)
|
72
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'parses user withheld as twitter compliance message' do
|
76
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_withheld.json'))
|
77
|
+
message = Gnip::Message.build(data)
|
78
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'parses status withheld as twitter compliance message' do
|
82
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_withheld.json'))
|
83
|
+
message = Gnip::Message.build(data)
|
84
|
+
expect(message.class).to eq(Gnip::TwitterComplianceMessage)
|
85
|
+
end
|
86
|
+
end
|
25
87
|
|
26
88
|
context 'system_message' do
|
27
89
|
before do
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Gnip::TwitterComplianceMessage do
|
4
|
+
describe '.new' do
|
5
|
+
it 'parses status delete message' do
|
6
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_delete.json'))
|
7
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'parses user delete message' do
|
11
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_delete.json'))
|
12
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'parses user undelete message' do
|
16
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_undelete.json'))
|
17
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'parses scrub geo message' do
|
21
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'scrub_geo.json'))
|
22
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'parses user protect message' do
|
26
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_protect.json'))
|
27
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'parses user unprotect message' do
|
31
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unprotect.json'))
|
32
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'parses user suspend message' do
|
36
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_suspend.json'))
|
37
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'parses user unsuspend message' do
|
41
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_unsuspend.json'))
|
42
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'parses user withheld message' do
|
46
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'user_withheld.json'))
|
47
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'parses status withheld message' do
|
51
|
+
data = JSON.parse File.read(fixture_path.join('twitter_messages', 'status_withheld.json'))
|
52
|
+
expect(Proc.new{Gnip::TwitterComplianceMessage.new(data)}).not_to raise_error
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gnip_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rayko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -185,6 +185,7 @@ files:
|
|
185
185
|
- lib/gnip_api/gnip/gnip_data.rb
|
186
186
|
- lib/gnip_api/gnip/message.rb
|
187
187
|
- lib/gnip_api/gnip/system_message.rb
|
188
|
+
- lib/gnip_api/gnip/twitter_compliance_message.rb
|
188
189
|
- lib/gnip_api/gnip/url.rb
|
189
190
|
- lib/gnip_api/json_parser.rb
|
190
191
|
- lib/gnip_api/request.rb
|
@@ -228,6 +229,7 @@ files:
|
|
228
229
|
- spec/gnip_api/gnip/activity_spec.rb
|
229
230
|
- spec/gnip_api/gnip/gnip_data_spec.rb
|
230
231
|
- spec/gnip_api/gnip/message_spec.rb
|
232
|
+
- spec/gnip_api/gnip/twitter_compliance_message_spec.rb
|
231
233
|
- spec/gnip_api/gnip/url_spec.rb
|
232
234
|
- spec/gnip_api/json_parser_spec.rb
|
233
235
|
- spec/gnip_api/request_spec.rb
|
@@ -298,6 +300,7 @@ test_files:
|
|
298
300
|
- spec/gnip_api/gnip/activity_spec.rb
|
299
301
|
- spec/gnip_api/gnip/gnip_data_spec.rb
|
300
302
|
- spec/gnip_api/gnip/message_spec.rb
|
303
|
+
- spec/gnip_api/gnip/twitter_compliance_message_spec.rb
|
301
304
|
- spec/gnip_api/gnip/url_spec.rb
|
302
305
|
- spec/gnip_api/json_parser_spec.rb
|
303
306
|
- spec/gnip_api/request_spec.rb
|