topsy 0.5.1 → 0.6.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.
- data/lib/topsy.rb +12 -0
- data/lib/topsy/client.rb +12 -0
- data/lib/topsy/search_histogram.rb +18 -0
- data/lib/topsy/version.rb +1 -1
- data/test/test_topsy.rb +34 -0
- metadata +46 -14
data/lib/topsy.rb
CHANGED
@@ -110,6 +110,17 @@ module Topsy
|
|
110
110
|
def self.search_count(q)
|
111
111
|
Topsy::Client.new.search_count(q)
|
112
112
|
end
|
113
|
+
|
114
|
+
# Returns data on the volume of tweets
|
115
|
+
#
|
116
|
+
# @param [String] the query
|
117
|
+
# @params [String] what is being counted - "target" (default) - the number of unique links , or "citation" - cthe number of unique tweets about links
|
118
|
+
# @params [Integer] The number of seconds for each slice ( default: 86400 = 1 day )
|
119
|
+
# @params [Integer] The number of slices (default 30 = 1 month)
|
120
|
+
# @return [Topsy::SearchHistogram]
|
121
|
+
def self.search_histogram( query , count_method = "target" , slice = 86400 , period = 30 )
|
122
|
+
Topsy::Client.new.search_histogram( query , count_method , slice , period )
|
123
|
+
end
|
113
124
|
|
114
125
|
# Returns counts of tweets for a URL
|
115
126
|
#
|
@@ -191,6 +202,7 @@ require File.join(directory, 'topsy', 'link_search_result')
|
|
191
202
|
require File.join(directory, 'topsy', 'linkpost_count')
|
192
203
|
require File.join(directory, 'topsy', 'page')
|
193
204
|
require File.join(directory, 'topsy', 'search_counts')
|
205
|
+
require File.join(directory, 'topsy', 'search_histogram')
|
194
206
|
require File.join(directory, 'topsy', 'stats')
|
195
207
|
require File.join(directory, 'topsy', 'target')
|
196
208
|
require File.join(directory, 'topsy', 'tag')
|
data/lib/topsy/client.rb
CHANGED
@@ -99,6 +99,18 @@ module Topsy
|
|
99
99
|
counts = handle_response(self.class.get("/searchcount.json", :query => {:q => q}))
|
100
100
|
Topsy::SearchCounts.new(counts)
|
101
101
|
end
|
102
|
+
|
103
|
+
# Returns mention count data for the given query
|
104
|
+
#
|
105
|
+
# @param [String] q - The query. Use site:domain.com to get domain counts and @username to get mention counts.
|
106
|
+
# @param [String] count_method - what is being counted - "target" (default) - the number of unique links , or "citation" - cthe number of unique tweets about links
|
107
|
+
# @param [Integer] slice -
|
108
|
+
# @param [Integer] period -
|
109
|
+
#
|
110
|
+
def search_histogram( q , count_method , slice , period )
|
111
|
+
response = handle_response(self.class.get("/searchhistogram.json" , :query => { :q => q , :slice => slice , :period => period , :count_method => count_method } ))
|
112
|
+
Topsy::SearchHistogram.new(response)
|
113
|
+
end
|
102
114
|
|
103
115
|
# Returns counts of tweets for a URL
|
104
116
|
#
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This is the search_histogram class for the topsy library.
|
2
|
+
# A SearchHistogram has the following attributes:
|
3
|
+
# "histogram":[21024,10386,7270,12722,15993,17522,10517,8899,10363,11491,11729,16262,12940,8800,7589,8275,8692,14924,25927,30728,24562,22369,19203,33483,15497,11527,11814,11893,13998,7268],
|
4
|
+
# "period":30,
|
5
|
+
# "count_method":"citation",
|
6
|
+
# "slice":86400
|
7
|
+
# According to the official Topsy doc: http://code.google.com/p/otterapi/wiki/Resources#/searchhistogram
|
8
|
+
#
|
9
|
+
module Topsy
|
10
|
+
|
11
|
+
class SearchHistogram < Hashie::Mash
|
12
|
+
|
13
|
+
def to_s
|
14
|
+
"Topsy SearchHistogram: #{histogram}, Period: #{period}, Count Method: #{count_method} , Slice: #{slice}"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
data/lib/topsy/version.rb
CHANGED
data/test/test_topsy.rb
CHANGED
@@ -215,6 +215,40 @@ class TestTopsy < Test::Unit::TestCase
|
|
215
215
|
results.description.should == "Social networking"
|
216
216
|
results.description_attribution.should == "From DMOZ"
|
217
217
|
end
|
218
|
+
|
219
|
+
context "#searchhistogram" do
|
220
|
+
context "citations" do
|
221
|
+
context "for domain" do
|
222
|
+
stub_get("/searchhistogram.json?q=site%3Abuzzfeed.com&slice=86400&period=30&count_method=citation", "searchhistogram-citation.json")
|
223
|
+
results = Topsy.search_histogram( 'site:buzzfeed.com' , "citation" , 86400 , 30 )
|
224
|
+
results.class.should == Topsy::SearchHistogram
|
225
|
+
results.period.should == 30
|
226
|
+
results.slice.should == 86400
|
227
|
+
results.count_method.should == "citation"
|
228
|
+
results.histogram.should == [21024,10386,7270,12722,15993,17522,10517,8899,10363,11491,11729,16262,12940,8800,7589,8275,8692,14924,25927,30728,24562,22369,19203,33483,15497,11527,11814,11893,13998,7268]
|
229
|
+
end
|
230
|
+
|
231
|
+
context "for user account" do
|
232
|
+
stub_get("/searchhistogram.json?q=%40garyvee&slice=86400&period=30&count_method=citation", "searchhistogram-mention-citation.json")
|
233
|
+
results = Topsy.search_histogram( '@garyvee' , "citation" , 86400 , 30 )
|
234
|
+
results.class.should == Topsy::SearchHistogram
|
235
|
+
results.period.should == 30
|
236
|
+
results.slice.should == 86400
|
237
|
+
results.count_method.should == "citation"
|
238
|
+
results.histogram.should == [69,77,279,117,143,186,123,49,75,75,173,167,58,42,46,40,64,186,94,166,96,146,106,51,42,101,89,69,209,78]
|
239
|
+
end
|
240
|
+
|
241
|
+
context "for keyword" do
|
242
|
+
stub_get("/searchhistogram.json?q=apple&slice=86400&period=30&count_method=citation", "searchhistogram-keyword-citation.json")
|
243
|
+
results = Topsy.search_histogram( 'apple' , "citation" , 86400 , 30 )
|
244
|
+
results.class.should == Topsy::SearchHistogram
|
245
|
+
results.period.should == 30
|
246
|
+
results.slice.should == 86400
|
247
|
+
results.count_method.should == "citation"
|
248
|
+
results.histogram.should == [249615,206548,161825,199043,267041,356657,303621,175584,166839,167086,197773,281216,234291,194937,162997,177703,167064,250086,300637,318948,361341,382810,254625,169622,203973,418762,550058,347752,370830,315412]
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
218
252
|
end
|
219
253
|
|
220
254
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: topsy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2011-01-07 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: hashie
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,15 @@ dependencies:
|
|
22
22
|
version: 1.2.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.2.0
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: httparty
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ! '>='
|
@@ -33,10 +38,15 @@ dependencies:
|
|
33
38
|
version: 0.8.1
|
34
39
|
type: :runtime
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.8.1
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: shoulda
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ~>
|
@@ -44,10 +54,15 @@ dependencies:
|
|
44
54
|
version: 2.11.3
|
45
55
|
type: :development
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 2.11.3
|
48
63
|
- !ruby/object:Gem::Dependency
|
49
64
|
name: mocha
|
50
|
-
requirement:
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
51
66
|
none: false
|
52
67
|
requirements:
|
53
68
|
- - ~>
|
@@ -55,10 +70,15 @@ dependencies:
|
|
55
70
|
version: 0.9.10
|
56
71
|
type: :development
|
57
72
|
prerelease: false
|
58
|
-
version_requirements:
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 0.9.10
|
59
79
|
- !ruby/object:Gem::Dependency
|
60
80
|
name: fakeweb
|
61
|
-
requirement:
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
62
82
|
none: false
|
63
83
|
requirements:
|
64
84
|
- - ~>
|
@@ -66,10 +86,15 @@ dependencies:
|
|
66
86
|
version: 1.3.0
|
67
87
|
type: :development
|
68
88
|
prerelease: false
|
69
|
-
version_requirements:
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ~>
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 1.3.0
|
70
95
|
- !ruby/object:Gem::Dependency
|
71
96
|
name: jnunemaker-matchy
|
72
|
-
requirement:
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
73
98
|
none: false
|
74
99
|
requirements:
|
75
100
|
- - ~>
|
@@ -77,7 +102,12 @@ dependencies:
|
|
77
102
|
version: 0.4.0
|
78
103
|
type: :development
|
79
104
|
prerelease: false
|
80
|
-
version_requirements:
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.4.0
|
81
111
|
description: Wrapper for the Topsy API
|
82
112
|
email: wynn.netherland@gmail.com
|
83
113
|
executables: []
|
@@ -92,6 +122,7 @@ files:
|
|
92
122
|
- lib/topsy/page.rb
|
93
123
|
- lib/topsy/rate_limit_info.rb
|
94
124
|
- lib/topsy/search_counts.rb
|
125
|
+
- lib/topsy/search_histogram.rb
|
95
126
|
- lib/topsy/stats.rb
|
96
127
|
- lib/topsy/tag.rb
|
97
128
|
- lib/topsy/target.rb
|
@@ -122,10 +153,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
153
|
version: 1.3.6
|
123
154
|
requirements: []
|
124
155
|
rubyforge_project:
|
125
|
-
rubygems_version: 1.8.
|
156
|
+
rubygems_version: 1.8.23
|
126
157
|
signing_key:
|
127
158
|
specification_version: 3
|
128
159
|
summary: Ruby wrapper for the Topsy API
|
129
160
|
test_files:
|
130
161
|
- test/helper.rb
|
131
162
|
- test/test_topsy.rb
|
163
|
+
has_rdoc:
|