datasift 3.0.0.beta4 → 3.0.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/.gitignore +2 -0
- data/CHANGELOG.md +12 -0
- data/LICENSE +1 -1
- data/MIGRATING_TO_V.3.0.0.md +1 -1
- data/README.md +23 -2
- data/Rakefile +10 -0
- data/VERSION +1 -1
- data/datasift.gemspec +4 -4
- data/examples/auth.rb +14 -10
- data/examples/cli.sh +2 -2
- data/examples/core_api_eg.rb +6 -1
- data/examples/dynamic_list_eg.rb +74 -0
- data/examples/dynamic_list_replace_eg.rb +45 -0
- data/examples/historics_eg.rb +20 -13
- data/examples/historics_preview_eg.rb +5 -4
- data/examples/live_stream_eg.rb +2 -1
- data/examples/managed_source_eg.rb +11 -10
- data/examples/pull.rb +8 -8
- data/examples/push_eg.rb +32 -15
- data/lib/cli.rb +2 -2
- data/lib/datasift.rb +7 -3
- data/lib/dynamic_list.rb +66 -0
- data/lib/dynamic_list_replace.rb +45 -0
- data/lib/historics.rb +17 -0
- data/lib/historics_preview.rb +2 -1
- data/lib/push.rb +10 -17
- data/test/datasift/core_api_test.rb +153 -0
- data/test/datasift/historics_preview_api_test.rb +83 -0
- data/test/datasift/push_api_test.rb +223 -0
- data/test/fixtures/balance.json +1 -0
- data/test/fixtures/compile_csdl_invalid.json +1 -0
- data/test/fixtures/compile_csdl_valid.json +1 -0
- data/test/fixtures/dpu_valid.json +1 -0
- data/test/fixtures/preview_create_valid.json +1 -0
- data/test/fixtures/preview_get_running.json +1 -0
- data/test/fixtures/preview_get_succeeded.json +1 -0
- data/test/fixtures/push_create_valid.json +1 -0
- data/test/fixtures/push_get_list_by_hash_valid.json +1 -0
- data/test/fixtures/push_get_list_by_historics_id_valid.json +1 -0
- data/test/fixtures/push_get_list_valid.json +1 -0
- data/test/fixtures/push_get_valid.json +1 -0
- data/test/fixtures/push_log_valid.json +1 -0
- data/test/fixtures/push_pause_valid.json +1 -0
- data/test/fixtures/push_stop_valid.json +1 -0
- data/test/fixtures/push_validate_valid.json +1 -0
- data/test/fixtures/usage_current.json +1 -0
- data/test/fixtures/validate_csdl_invalid.json +1 -0
- data/test/fixtures/validate_csdl_valid.json +1 -0
- data/test/test_helper.rb +17 -0
- metadata +36 -9
- data/tests/core_api_test.rb +0 -95
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92d16d17339dcc890c88002c7f23576e2a6adf3d
|
4
|
+
data.tar.gz: 3759590fac485d84ec8e7cddc4a6fec799972afa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4afb552f393f501c954f0f148a5bb95ff070a52656838d1bf49a3b5188f679a0b38c8a51dde3d413c6d2ab3fc8c54a251c20fd7ec9855446ffb294326965577
|
7
|
+
data.tar.gz: ed4fb2feef7cabfc0534a35e2b5fb475c74be79b319bb7f6d6a6e1c443c8405654ccc06e1c6c596e0a73250518da7c45023a2657ebe65d8e449cd748d2c1c23a
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
CHANGELOG
|
2
2
|
================================
|
3
3
|
|
4
|
+
v.3.0.0 (2014-07-04)
|
5
|
+
--------------------
|
6
|
+
|
7
|
+
Final fixes for v.3.0.0!
|
8
|
+
This release does break backwards compatibility with version 2.x and earlier. A [migration guide](https://github.com/datasift/datasift-ruby/blob/3.0.0/MIGRATING_TO_V.3.0.0.md) is available.
|
9
|
+
* Adds support for the [Pull Push Destination](http://dev.datasift.com/docs/push/connectors/pull)
|
10
|
+
* Adds support for DataSift [Historics Preview](http://dev.datasift.com/docs/historics/preview)
|
11
|
+
* Adds support for the new Dynamic Lists feature
|
12
|
+
* Adds support for multi-streaming via WebSockets
|
13
|
+
* Added a CLI to the library
|
14
|
+
* Updated test suite
|
15
|
+
|
4
16
|
v.3.0.0.beta (2013-11-07)
|
5
17
|
-------------------------
|
6
18
|
|
data/LICENSE
CHANGED
data/MIGRATING_TO_V.3.0.0.md
CHANGED
@@ -109,7 +109,7 @@ on_message is called when we receive [user status messages](http://dev.datasift.
|
|
109
109
|
* @datasift.push.update @params.merge({:id => subscription_id, :name => 'Updated name'})
|
110
110
|
* @datasift.push.stop subscription_id
|
111
111
|
* @datasift.push.delete subscription_id
|
112
|
-
* @datasift.push.
|
112
|
+
* @datasift.push.log
|
113
113
|
* @datasift.push.get_by_subscription subscription_id
|
114
114
|
* @datasift.push.get
|
115
115
|
* @datasift.pull
|
data/README.md
CHANGED
@@ -20,6 +20,14 @@ The library will use SSL connections by default. While we recommend using SSL
|
|
20
20
|
you may disable it if required by passing ':enable_ssl => false' as the third
|
21
21
|
parameter when creating your @config object.
|
22
22
|
|
23
|
+
Getting Started
|
24
|
+
---------------
|
25
|
+
Before you can begin using this library, you will need to have an active [DataSift](http://datasift.com) account - you can sign up for a new account at [datasift.com/get-started](http://datasift.com/get-started/).
|
26
|
+
|
27
|
+
Many of the examples and API endpoints used in this library require you have enabled certain data sources before you can receive any data (you should do this at [datasift.com/source](https://datasift.com/source)). Certain API features, such as [Historics](http://datasift.com/platform/historics/) and [Managed Sources](http://datasift.com/platform/datasources/) will require you have signed up to a monthly subscription before you can access them.
|
28
|
+
|
29
|
+
If you are interested in using these features, or would like more information about DataSift, please [get in touch](http://datasift.com/contact-us/)!
|
30
|
+
|
23
31
|
Simple example
|
24
32
|
--------------
|
25
33
|
|
@@ -65,10 +73,23 @@ conn.stream.read_thread.join
|
|
65
73
|
See the [Understanding the Output Data](http://dev.datasift.com/docs/getting-started/data) page on the DataSift Developer site for
|
66
74
|
full details of the data contained within each interaction.
|
67
75
|
|
76
|
+
Supported Operating Environment
|
77
|
+
-------------------------------
|
78
|
+
This version of the client library has been tested, and is known to work against the following language versions and Operating Systems:
|
79
|
+
|
80
|
+
### Language Versions
|
81
|
+
* Ruby 2.0.0
|
82
|
+
* Ruby 2.1.0
|
83
|
+
|
84
|
+
### Operating Systems
|
85
|
+
* Linux
|
86
|
+
* OS X
|
87
|
+
* Windows 7/8
|
88
|
+
|
68
89
|
License
|
69
90
|
-------
|
70
91
|
|
71
|
-
All code contained in this repository is Copyright 2011-
|
92
|
+
All code contained in this repository is Copyright 2011-2014 MediaSift Ltd.
|
72
93
|
|
73
|
-
This code is released under the BSD license. Please see the LICENSE file for
|
94
|
+
This code is released under the BSD license. Please see the [LICENSE](https://github.com/datasift/datasift-ruby/blob/master/LICENSE) file for
|
74
95
|
more details.
|
data/Rakefile
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0.0
|
1
|
+
3.0.0
|
data/datasift.gemspec
CHANGED
@@ -8,19 +8,19 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.homepage = 'https://github.com/datasift/datasift-ruby'
|
9
9
|
s.license = 'BSD'
|
10
10
|
|
11
|
-
s.platform
|
12
|
-
s.rubygems_version = %q{1.3.6}
|
11
|
+
s.platform = Gem::Platform::RUBY
|
13
12
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.3.6") if s.respond_to? :required_rubygems_version=
|
14
13
|
|
15
14
|
s.add_runtime_dependency('rest-client', '~> 1.6.7')
|
16
15
|
s.add_runtime_dependency('multi_json', '~> 1.8.0')
|
17
16
|
s.add_runtime_dependency('websocket-td', '~> 0.0.4')
|
17
|
+
|
18
18
|
s.add_development_dependency('rdoc', '> 0')
|
19
19
|
s.add_development_dependency('webmock', '~> 1.17.1')
|
20
20
|
s.add_development_dependency('shoulda', '~> 2.11.3')
|
21
|
-
s.add_development_dependency('
|
21
|
+
s.add_development_dependency('minitest', '~> 5.0')
|
22
22
|
|
23
23
|
s.files = `git ls-files`.split("\n")
|
24
|
-
s.test_files = `git ls-files -- {test
|
24
|
+
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
25
25
|
s.require_paths = ["lib"]
|
26
26
|
end
|
data/examples/auth.rb
CHANGED
@@ -1,25 +1,29 @@
|
|
1
1
|
class DataSiftExample
|
2
|
-
require '
|
2
|
+
require 'datasift'
|
3
3
|
|
4
4
|
def initialize
|
5
5
|
#only SSLv3 and TLSv1 currently supported, TLSv1 preferred
|
6
6
|
# this is fixed in REST client and is scheduled for the 1.7.0 release
|
7
7
|
# see https://github.com/rest-client/rest-client/pull/123
|
8
8
|
OpenSSL::SSL::SSLContext::DEFAULT_PARAMS[:ssl_version] = 'TLSv1'
|
9
|
-
@username = '
|
10
|
-
@api_key ='
|
11
|
-
@config ={:username => @username, :api_key => @api_key, :enable_ssl => true}
|
9
|
+
@username = 'DATASIFT_USERNAME'
|
10
|
+
@api_key = 'DATASIFT_API_KEY'
|
11
|
+
@config = {:username => @username, :api_key => @api_key, :enable_ssl => true}
|
12
12
|
@params = {
|
13
13
|
:output_type => 's3',
|
14
|
-
'output_params.bucket' => '
|
14
|
+
'output_params.bucket' => 'YOUR_BUCKET_NAME',
|
15
15
|
'output_params.directory' => 'ruby',
|
16
16
|
'output_params.acl' => 'private',
|
17
|
-
'output_params.auth.access_key' => '
|
18
|
-
'output_params.auth.secret_key' => '
|
17
|
+
'output_params.auth.access_key' => 'ADD_YOUR_ACCESS_KEY',
|
18
|
+
'output_params.auth.secret_key' => 'ADD_YOUR_SECRET_KEY',
|
19
19
|
'output_params.delivery_frequency' => 0,
|
20
|
-
'output_params.max_size' =>
|
20
|
+
'output_params.max_size' => 104857600,
|
21
21
|
'output_params.file_prefix' => 'DataSift',
|
22
22
|
}
|
23
|
+
@pull_params = {
|
24
|
+
:output_type => 'pull',
|
25
|
+
'output_params.max_size' => 52428800
|
26
|
+
}
|
23
27
|
@datasift = DataSift::Client.new(@config)
|
24
28
|
end
|
25
29
|
|
@@ -27,12 +31,12 @@ class DataSiftExample
|
|
27
31
|
|
28
32
|
def create_push(hash, is_historics_id = false)
|
29
33
|
create_params = @params.merge ({
|
30
|
-
#hash or
|
34
|
+
#hash or historics_id can be used but not both
|
31
35
|
:name => 'My awesome push subscription',
|
32
36
|
:initial_status => 'active', # or 'paused' or 'waiting_for_start'
|
33
37
|
})
|
34
38
|
if is_historics_id
|
35
|
-
create_params.merge!({:
|
39
|
+
create_params.merge!({:historics_id => hash})
|
36
40
|
else
|
37
41
|
create_params.merge!({:hash => hash,
|
38
42
|
#start and end are not valid for historics
|
data/examples/cli.sh
CHANGED
@@ -48,7 +48,7 @@ historic_id=$(echo ${historic} | jq -r .body.id)
|
|
48
48
|
echo "Historic created with ID $historic_id"
|
49
49
|
|
50
50
|
echo 'Validating Push subscription'
|
51
|
-
push_v=$(ds -e push -c validate -p
|
51
|
+
push_v=$(ds -e push -c validate -p historics_id ${historic_id} -p name "Playback CLI @ $start" -p output_type http \
|
52
52
|
-p output_params.method post -p output_params.url 'http://ec2-50-19-63-138.compute-1.amazonaws.com:80' \
|
53
53
|
-p output_params.delivery_frequency 0 -p output_params.max_size 102400 -p output_params.auth.type none \
|
54
54
|
-p output_params.verify_ssl false -p output_params.use_gzip true)
|
@@ -61,7 +61,7 @@ if [ ${push_status} != 200 ]; then
|
|
61
61
|
fi
|
62
62
|
|
63
63
|
echo 'Creating Push from Historic'
|
64
|
-
push=$(ds -e push -c create -p
|
64
|
+
push=$(ds -e push -c create -p historics_id ${historic_id} -p name "Playback CLI @ $start" -p output_type http \
|
65
65
|
-p output_params.method post -p output_params.url 'http://ec2-50-19-63-138.compute-1.amazonaws.com:80' \
|
66
66
|
-p output_params.delivery_frequency 0 -p output_params.max_size 102400 -p output_params.auth.type none \
|
67
67
|
-p output_params.verify_ssl false -p output_params.use_gzip true)
|
data/examples/core_api_eg.rb
CHANGED
@@ -10,21 +10,26 @@ class CoreApiEg < DataSiftExample
|
|
10
10
|
begin
|
11
11
|
csdl = 'interaction.content contains "test"'
|
12
12
|
# see docs at http://dev.datasift.com/docs/rest-api/validate
|
13
|
+
puts "Is the following CSDL valid? #{csdl}"
|
13
14
|
puts @datasift.valid? csdl
|
14
15
|
|
15
16
|
# http://dev.datasift.com/docs/rest-api/compile
|
17
|
+
puts "\nCompile the CSDL and get a stream hash"
|
16
18
|
stream = @datasift.compile csdl
|
17
19
|
puts stream[:data][:hash]
|
18
20
|
|
19
21
|
# http://dev.datasift.com/docs/rest-api/dpu
|
22
|
+
puts "\nGet the DPU cost of the compiled CSDL"
|
20
23
|
dpu = @datasift.dpu stream[:data][:hash]
|
21
24
|
puts dpu[:data][:dpu]
|
22
25
|
|
23
26
|
# http://dev.datasift.com/docs/rest-api/balance
|
27
|
+
puts "\nGet the remaining balance for my account"
|
24
28
|
balance = @datasift.balance
|
25
29
|
puts balance[:data]
|
26
30
|
|
27
31
|
#http://dev.datasift.com/docs/rest-api/usage
|
32
|
+
puts "\nGet my recent account usage"
|
28
33
|
usage = @datasift.usage
|
29
34
|
puts usage[:data]
|
30
35
|
|
@@ -43,4 +48,4 @@ class CoreApiEg < DataSiftExample
|
|
43
48
|
end
|
44
49
|
end
|
45
50
|
end
|
46
|
-
CoreApiEg.new
|
51
|
+
CoreApiEg.new
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require './auth'
|
2
|
+
|
3
|
+
class DynamicListApi < DataSiftExample
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
run
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
begin
|
11
|
+
|
12
|
+
##
|
13
|
+
# Text Dynamic Lists
|
14
|
+
puts "\nCreating a Dynamic List containing text items"
|
15
|
+
puts 'Creating a dynamic list: /list/create'
|
16
|
+
list = @datasift.dynamic_list.create('text', 'My dynamic list')
|
17
|
+
puts list
|
18
|
+
|
19
|
+
id = list[:data][:id]
|
20
|
+
items = ['keyword1', 'keyword2']
|
21
|
+
|
22
|
+
puts "\nGet a list of your Dynamic Lists: /list/get"
|
23
|
+
puts @datasift.dynamic_list.get
|
24
|
+
|
25
|
+
puts "\nAdding items to the dynamic list: #{items}: /list/add"
|
26
|
+
puts @datasift.dynamic_list.add(id, items)
|
27
|
+
|
28
|
+
csdl = "interaction.content list_any \"#{id}\""
|
29
|
+
puts "\nCompile the following CSDL using a Dynamic List:"
|
30
|
+
puts csdl
|
31
|
+
puts @datasift.compile csdl
|
32
|
+
|
33
|
+
remove_items = ['keyword1']
|
34
|
+
puts "\nRemoving item #{remove_items} from the dynamic list: /list/remove"
|
35
|
+
puts @datasift.dynamic_list.remove(id, remove_items)
|
36
|
+
|
37
|
+
puts "\nCheck #{remove_items} has been removed from the list: /list/exists"
|
38
|
+
puts @datasift.dynamic_list.exists(id, remove_items)
|
39
|
+
|
40
|
+
remaining_item = ['keyword2']
|
41
|
+
puts "\nCheck #{remaining_item} still exists in the list: /list/exists"
|
42
|
+
puts @datasift.dynamic_list.exists(id, remaining_item)
|
43
|
+
|
44
|
+
puts "\nDeleting the list: /list/delete"
|
45
|
+
puts @datasift.dynamic_list.delete id
|
46
|
+
|
47
|
+
##
|
48
|
+
# Integer Dynamic Lists
|
49
|
+
puts "\n --- \nCreating a Dynamic List containing integers"
|
50
|
+
puts 'Creating a dynamic list: /list/create'
|
51
|
+
list = @datasift.dynamic_list.create('integer', 'My dynamic integer list')
|
52
|
+
puts list
|
53
|
+
|
54
|
+
id = list[:data][:id]
|
55
|
+
items = [11111, 22222, 33333, 44444]
|
56
|
+
|
57
|
+
puts "\nAdding integers to the dynamic list: #{items}: /list/add"
|
58
|
+
puts @datasift.dynamic_list.add(id, items)
|
59
|
+
|
60
|
+
csdl = "interaction.author.id list_in \"#{id}\""
|
61
|
+
puts "\nCompile the following CSDL using a Dynamic List:"
|
62
|
+
puts csdl
|
63
|
+
puts @datasift.compile csdl
|
64
|
+
|
65
|
+
puts "\nDeleting the list: /list/delete"
|
66
|
+
puts @datasift.dynamic_list.delete id
|
67
|
+
|
68
|
+
rescue DataSiftError => dse
|
69
|
+
puts dse.message
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
DynamicListApi.new
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require './auth'
|
2
|
+
|
3
|
+
class DynamicListReplaceApi < DataSiftExample
|
4
|
+
def initialize
|
5
|
+
super
|
6
|
+
run
|
7
|
+
end
|
8
|
+
|
9
|
+
def run
|
10
|
+
begin
|
11
|
+
|
12
|
+
puts "\nCreating a dynamic list: /list/create"
|
13
|
+
list = @datasift.dynamic_list.create('text', 'My dynamic list')
|
14
|
+
puts list
|
15
|
+
|
16
|
+
id = list[:data][:id]
|
17
|
+
|
18
|
+
puts "\nStart a new replace list: /list/replace/start"
|
19
|
+
replace = @datasift.dynamic_list_replace.start id
|
20
|
+
puts replace
|
21
|
+
|
22
|
+
puts "\nAbort the list replace: /list/replace/abort"
|
23
|
+
puts @datasift.dynamic_list_replace.abort replace[:data][:id]
|
24
|
+
|
25
|
+
puts "\nStart a new replace list (again): /list/replace/start"
|
26
|
+
replace = @datasift.dynamic_list_replace.start id
|
27
|
+
puts replace
|
28
|
+
|
29
|
+
items = ['keyword1', 'keyword2']
|
30
|
+
puts "\nAdd items #{items} to replacement list: /list/replace/add"
|
31
|
+
puts @datasift.dynamic_list_replace.add(replace[:data][:id], items)
|
32
|
+
|
33
|
+
puts "\nCommit the replacement list: /list/replace/commit"
|
34
|
+
puts @datasift.dynamic_list_replace.commit replace[:data][:id]
|
35
|
+
|
36
|
+
puts "\nCleanup: Delete the list: /list/delete"
|
37
|
+
puts @datasift.dynamic_list.delete id
|
38
|
+
|
39
|
+
rescue DataSiftError => dse
|
40
|
+
puts dse.message
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
DynamicListReplaceApi.new
|
data/examples/historics_eg.rb
CHANGED
@@ -9,42 +9,49 @@ class HistoricsApi < DataSiftExample
|
|
9
9
|
begin
|
10
10
|
stream = @datasift.compile 'interaction.content contains "datasift"'
|
11
11
|
hash = stream[:data][:hash]
|
12
|
-
start = Time.now.to_i -
|
12
|
+
start = Time.now.to_i - 10800
|
13
13
|
end_time = start + 3600
|
14
14
|
|
15
|
-
puts 'Check the data coverage for
|
15
|
+
puts 'Check the data coverage for this Historic period'
|
16
16
|
puts @datasift.historics.status(start, end_time)
|
17
17
|
|
18
|
-
puts
|
19
|
-
#prepare a historics to start from
|
20
|
-
historics = @datasift.historics.prepare(hash, start, end_time, 'My ruby historics')
|
18
|
+
puts "\nPreparing"
|
19
|
+
#prepare a historics to start from three hours ago and run for 1 hour using twitter as a data source and using only a 10% sample
|
20
|
+
historics = @datasift.historics.prepare(hash, start, end_time, 'My ruby historics', 'twitter', 10)
|
21
21
|
puts historics
|
22
22
|
|
23
23
|
id = historics[:data][:id]
|
24
24
|
|
25
|
-
puts
|
25
|
+
puts "\nCreating push subscription for historics"
|
26
26
|
puts create_push(id, true)
|
27
27
|
|
28
|
-
puts "
|
28
|
+
puts "\nStarting historics #{id}"
|
29
29
|
puts @datasift.historics.start id
|
30
30
|
|
31
|
-
puts
|
31
|
+
puts "\nPausing historics #{id}"
|
32
|
+
puts @datasift.historics.pause id
|
33
|
+
|
34
|
+
puts "\nResuming historics #{id}"
|
35
|
+
puts @datasift.historics.resume id
|
36
|
+
|
37
|
+
puts "\nUpdating historics"
|
32
38
|
puts @datasift.historics.update(id, 'The new name of my historics')
|
33
39
|
|
34
|
-
puts
|
40
|
+
puts "\nGet info for the historics"
|
35
41
|
puts @datasift.historics.get_by_id id
|
36
42
|
|
37
|
-
puts
|
43
|
+
puts "\nGetting info for all my historics"
|
38
44
|
puts @datasift.historics.get
|
39
45
|
|
40
|
-
puts
|
46
|
+
puts "\nStopping historics"
|
41
47
|
puts @datasift.historics.stop id
|
42
48
|
|
43
|
-
puts
|
49
|
+
puts "\nDeleting historics"
|
44
50
|
puts @datasift.historics.delete id
|
45
51
|
rescue DataSiftError => dse
|
46
52
|
puts dse.message
|
47
53
|
end
|
48
54
|
end
|
49
55
|
end
|
50
|
-
|
56
|
+
|
57
|
+
HistoricsApi.new
|
@@ -11,14 +11,15 @@ class HistoricsPreviewApi < DataSiftExample
|
|
11
11
|
stream = @datasift.compile 'interaction.content contains "datasift"'
|
12
12
|
hash = stream[:data][:hash]
|
13
13
|
|
14
|
-
puts
|
14
|
+
puts "\nCreating a preview"
|
15
15
|
# see http://dev.datasift.com/docs/rest-api/previewcreate for docs
|
16
|
+
sources = 'facebook,twitter'
|
16
17
|
parameters = 'interaction.author.link,targetVol,hour;interaction.type,freqDist,10'
|
17
18
|
start = Time.now.to_i - (3600 * 48) # 48hrs ago
|
18
|
-
source = @datasift.historics_preview.create(hash, parameters, start)
|
19
|
+
source = @datasift.historics_preview.create(hash, sources, parameters, start)
|
19
20
|
puts source
|
20
21
|
|
21
|
-
puts
|
22
|
+
puts "\nGetting preview data"
|
22
23
|
puts @datasift.historics_preview.get source[:data][:id]
|
23
24
|
|
24
25
|
rescue DataSiftError => dse
|
@@ -27,4 +28,4 @@ class HistoricsPreviewApi < DataSiftExample
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
30
|
-
HistoricsPreviewApi.new
|
31
|
+
HistoricsPreviewApi.new
|