topsy 0.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.
- data/.gitignore +21 -0
- data/.yardoc/checksums +2 -0
- data/.yardoc/objects/Topsy.dat +0 -0
- data/.yardoc/objects/Topsy/Client.dat +0 -0
- data/.yardoc/objects/Topsy/Client/author_info_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/author_search_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/handle_response_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/link_post_count_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/link_posts_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/mashup_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/profile_search_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/raise_errors_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/related_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/search_count_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/search_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/stats_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/tags_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/trackbacks_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/trending_i.dat +0 -0
- data/.yardoc/objects/Topsy/Client/url_info_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/all_time_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/last_hour_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/last_month_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/last_week_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/overall_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/this_hour_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/this_month_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/this_week_i.dat +0 -0
- data/.yardoc/objects/Topsy/SearchCounts/today_i.dat +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/LICENSE +20 -0
- data/README.markdown +34 -0
- data/Rakefile +50 -0
- data/VERSION +1 -0
- data/changelog.markdown +5 -0
- data/lib/topsy.rb +174 -0
- data/lib/topsy/client.rb +180 -0
- data/lib/topsy/search_counts.rb +46 -0
- data/test/fixtures/authorinfo.json +19 -0
- data/test/fixtures/authorsearch.json +165 -0
- data/test/fixtures/linkpostcount.json +14 -0
- data/test/fixtures/linkposts.json +135 -0
- data/test/fixtures/profilesearch.json +23 -0
- data/test/fixtures/related.json +75 -0
- data/test/fixtures/search.json +126 -0
- data/test/fixtures/searchcount.json +17 -0
- data/test/fixtures/stats.json +16 -0
- data/test/fixtures/tags.json +51 -0
- data/test/fixtures/trackbacks.json +56 -0
- data/test/fixtures/trending.json +53 -0
- data/test/fixtures/urlinfo.json +19 -0
- data/test/helper.rb +45 -0
- data/test/test_topsy.rb +99 -0
- metadata +170 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "search",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"q": "NYE"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/search.json?q=NYE"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"page": 1,
|
|
12
|
+
"window": "a",
|
|
13
|
+
"total": 117731,
|
|
14
|
+
"perpage": 10,
|
|
15
|
+
"list": [{
|
|
16
|
+
"trackback_permalink": "http://twitter.com/spin/status/5164154014",
|
|
17
|
+
"content": "Science, autotuned, with Sagan, Bill Nye, Tyson, Feynman http://bit.ly/2tDk4y win!",
|
|
18
|
+
"score": 4.70643044,
|
|
19
|
+
"trackback_total": 2268,
|
|
20
|
+
"hits": 397,
|
|
21
|
+
"topsy_trackback_url": "http://topsy.com/trackback?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DXGK84Poeynk",
|
|
22
|
+
"url": "http://www.youtube.com/watch?v=XGK84Poeynk",
|
|
23
|
+
"title": "YouTube - Symphony of Science - 'We Are All Connected' (ft. Sagan, Feynman, deGrasse Tyson & Bill Nye)",
|
|
24
|
+
"highlight": "Science, autotuned, with Sagan, Bill <span class=\"highlight-term\">Nye</span>, Tyson, Feynman http://bit.ly/2tDk4y win! "
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"trackback_permalink": "http://twitter.com/jimmyeatworld/status/6703729600",
|
|
28
|
+
"content": "Tweet To Win tickets to see us in Atlantic City on New Years Eve http://tweettow.in/jew_nye",
|
|
29
|
+
"score": 3.2793746,
|
|
30
|
+
"trackback_total": 267,
|
|
31
|
+
"hits": 257,
|
|
32
|
+
"topsy_trackback_url": "http://topsy.com/tb/tweettow.in/jew_nye",
|
|
33
|
+
"url": "http://tweettow.in/jew_nye",
|
|
34
|
+
"title": "Jimmy Eat World New Years Eve Tweet To Win! Twitter Contest",
|
|
35
|
+
"highlight": "Tweet To Win tickets to see us in Atlantic City on New Years Eve http://tweettow.in/jew_nye "
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"trackback_permalink": "http://twitter.com/riamarie/status/6704540214",
|
|
39
|
+
"content": "@JimmyEatWorld is performing in Atlantic City on New Years Eve http://bit.ly/jew_nye Tweet To Win tickets here http://tweettow.in/jew_nye",
|
|
40
|
+
"score": 2.46673536,
|
|
41
|
+
"trackback_total": 222,
|
|
42
|
+
"hits": 216,
|
|
43
|
+
"topsy_trackback_url": "http://topsy.com/tb/www.ticketmaster.com/event/0200434E8DC84292",
|
|
44
|
+
"url": "http://www.ticketmaster.com/event/0200434E8DC84292",
|
|
45
|
+
"title": "Jimmy Eat World tickets Harrah's Resort Atlantic City Atlantic City, NJ, Directions, seating chart. Official",
|
|
46
|
+
"highlight": "@JimmyEatWorld is performing in Atlantic City on New Years Eve http://bit.ly/jew_nye Tweet To Win tickets here http://tweettow.in/jew_nye "
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"trackback_permalink": "http://twitter.com/cinevegas/status/5580832629",
|
|
50
|
+
"content": "RT @Vegas: Have you entered the @Vegas Tweepstakes? What’s Your Excuse to come to Vegas this NYE? #lvsweeps Details: http://bit.ly/lvsweeps",
|
|
51
|
+
"score": 2.08547235,
|
|
52
|
+
"trackback_total": 504,
|
|
53
|
+
"hits": 161,
|
|
54
|
+
"topsy_trackback_url": "http://topsy.com/tb/www.visitlasvegas.com/Tweepstakes",
|
|
55
|
+
"url": "http://www.visitlasvegas.com/Tweepstakes",
|
|
56
|
+
"title": "Enter Tweepstakes today to win a New Year’s trip to Vegas & stay at the new Vdara! RT this! #lvsweeps",
|
|
57
|
+
"highlight": "RT @Vegas: Have you entered the @Vegas Tweepstakes? What’s Your Excuse to come to Vegas this <span class=\"highlight-term\">NYE</span>? #lvsweeps Details: http://bit.ly/lvsweeps…"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"trackback_permalink": "http://twitter.com/bigepaz/status/7238723956",
|
|
61
|
+
"content": "NIce! A rare Blue Moon tonight for NYE :) http://bit.ly/7SfQt8",
|
|
62
|
+
"score": 1.76893127,
|
|
63
|
+
"trackback_total": 918,
|
|
64
|
+
"hits": 69,
|
|
65
|
+
"topsy_trackback_url": "http://topsy.com/tb/news.yahoo.com/s/ap/20091230/ap_on_sc/us_sci_blue_moon",
|
|
66
|
+
"url": "http://news.yahoo.com/s/ap/20091230/ap_on_sc/us_sci_blue_moon",
|
|
67
|
+
"title": "Rare New Year's Eve 'blue moon' to ring in 2010 - Yahoo! News",
|
|
68
|
+
"highlight": "NIce! A rare Blue Moon tonight for <span class=\"highlight-term\">NYE</span> :) http://bit.ly/7SfQt8 "
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"trackback_permalink": "http://twitter.com/rainnwilson/status/4699688554",
|
|
72
|
+
"content": "Bill Nye the Science Guy VS Religion: http://www.soulpancake.com/",
|
|
73
|
+
"score": 1.73702061,
|
|
74
|
+
"trackback_total": 1373,
|
|
75
|
+
"hits": 55,
|
|
76
|
+
"topsy_trackback_url": "http://topsy.com/tb/www.soulpancake.com/",
|
|
77
|
+
"url": "http://www.soulpancake.com/",
|
|
78
|
+
"title": "SoulPancake | Chew On Life's Big Questions",
|
|
79
|
+
"highlight": "Bill <span class=\"highlight-term\">Nye</span> the Science Guy VS Religion: http://www.soulpancake.com/ "
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"trackback_permalink": "http://twitter.com/problogger/status/7211472899",
|
|
83
|
+
"content": "Preparing for NYE? Check out our Fireworks Photography Tips - http://bit.ly/4qv3IM",
|
|
84
|
+
"score": 1.72081316,
|
|
85
|
+
"trackback_total": 450,
|
|
86
|
+
"hits": 30,
|
|
87
|
+
"topsy_trackback_url": "http://topsy.com/tb/digital-photography-school.com/how-to-photograph-fireworks",
|
|
88
|
+
"url": "http://digital-photography-school.com/how-to-photograph-fireworks",
|
|
89
|
+
"title": "How to Photograph Fireworks Displays",
|
|
90
|
+
"highlight": "Preparing for <span class=\"highlight-term\">NYE</span>? Check out our Fireworks Photography Tips - http://bit.ly/4qv3IM "
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"trackback_permalink": "http://twitter.com/iamdiddy/status/7222027205",
|
|
94
|
+
"content": "RT @sandrinecharles: @iamdiddy promotes safe travels in NYC + Vegas on NYE http://bit.ly/6v5CCZ Get your free ride! (via @perezhilton)",
|
|
95
|
+
"score": 1.59172273,
|
|
96
|
+
"trackback_total": 55,
|
|
97
|
+
"hits": 53,
|
|
98
|
+
"topsy_trackback_url": "http://topsy.com/tb/perezhilton.com/2009-12-30-diddy-cares-about-u-on-nye",
|
|
99
|
+
"url": "http://perezhilton.com/2009-12-30-diddy-cares-about-u-on-nye",
|
|
100
|
+
"title": "Perez Hilton: Diddy Cares About U On NYE!",
|
|
101
|
+
"highlight": "RT @sandrinecharles: @iamdiddy promotes safe travels in NYC + Vegas on <span class=\"highlight-term\">NYE</span> http://bit.ly/6v5CCZ Get your free ride! (via @perezhilton) "
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"trackback_permalink": "http://twitter.com/allisonpeltz/status/7200230271",
|
|
105
|
+
"content": "blue moon shining tomorrow night for NYE - http://bit.ly/4HVlwO",
|
|
106
|
+
"score": 1.40584981,
|
|
107
|
+
"trackback_total": 935,
|
|
108
|
+
"hits": 60,
|
|
109
|
+
"topsy_trackback_url": "http://topsy.com/tb/www.cnn.com/2009/TECH/space/12/30/blue.moon/",
|
|
110
|
+
"url": "http://www.cnn.com/2009/TECH/space/12/30/blue.moon/",
|
|
111
|
+
"title": "Blue moon to shine on New Year's Eve - CNN.com",
|
|
112
|
+
"highlight": "blue moon shining tomorrow night for <span class=\"highlight-term\">NYE</span> - http://bit.ly/4HVlwO "
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"trackback_permalink": "http://twitter.com/web2today/status/2351952044",
|
|
116
|
+
"content": "Best of the Rest: Bill Nye on the iPhone, Retro Twitter (Circa 1935) - Switched: Best of the Rest: Bill Nye on t.. http://tinyurl.com/p9htnf",
|
|
117
|
+
"score": 1.31912446,
|
|
118
|
+
"trackback_total": 49,
|
|
119
|
+
"hits": 44,
|
|
120
|
+
"topsy_trackback_url": "http://topsy.com/tb/www.switched.com/2009/06/26/best-of-the-rest-bill-nye-on-the-iphone-the-original-twitter/",
|
|
121
|
+
"url": "http://www.switched.com/2009/06/26/best-of-the-rest-bill-nye-on-the-iphone-the-original-twitter/",
|
|
122
|
+
"title": "Best of the Rest: Bill Nye on the iPhone, Retro Twitter (Circa 1935)",
|
|
123
|
+
"highlight": "Best of the Rest: Bill <span class=\"highlight-term\">Nye</span> on the iPhone, Retro Twitter (Circa 1935) - Switched: Best of the Rest: Bill <span class=\"highlight-term\">Nye</span> on t.. http://tinyurl.com/p9htnf…"
|
|
124
|
+
}]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "searchcount",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"q": "Balloon Boy"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/searchcount.json?q=Balloon+Boy"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"w": 425,
|
|
12
|
+
"a": 42289,
|
|
13
|
+
"m": 3659,
|
|
14
|
+
"d": 41,
|
|
15
|
+
"h": 0
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "stats",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"url": "http://github.com/pengwynn/linkedin"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/stats.json?url=http%3A%2F%2Fgithub.com%2Fpengwynn%2Flinkedin"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"influential": 3,
|
|
12
|
+
"all": 11,
|
|
13
|
+
"contains": 0,
|
|
14
|
+
"topsy_trackback_url": "http://topsy.com/tb/github.com/pengwynn/linkedin"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "tags",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"url": "http://gemcutter.org"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/tags.json?url=http%3A%2F%2Fgemcutter.org"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"page": 1,
|
|
12
|
+
"total": 9,
|
|
13
|
+
"perpage": 10,
|
|
14
|
+
"list": [{
|
|
15
|
+
"name": "itunesu",
|
|
16
|
+
"url": "http://topsy.com/s?q=itunesu"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "projectsprouts",
|
|
20
|
+
"url": "http://topsy.com/s?q=projectsprouts"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "gemcutter",
|
|
24
|
+
"url": "http://topsy.com/s?q=gemcutter"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "rails",
|
|
28
|
+
"url": "http://topsy.com/s?q=rails"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "ruby",
|
|
32
|
+
"url": "http://topsy.com/s?q=ruby"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "gems",
|
|
36
|
+
"url": "http://topsy.com/s?q=gems"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "gem",
|
|
40
|
+
"url": "http://topsy.com/s?q=gem"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "fail",
|
|
44
|
+
"url": "http://topsy.com/s?q=fail"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "jruby",
|
|
48
|
+
"url": "http://topsy.com/s?q=jruby"
|
|
49
|
+
}]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "trackbacks",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"url": "http://orrka.com"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/trackbacks.json?url=http%3A%2F%2Forrka.com"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"page": 1,
|
|
12
|
+
"total": 3,
|
|
13
|
+
"perpage": 10,
|
|
14
|
+
"topsy_trackback_url": "http://topsy.com/tb/orrka.com/",
|
|
15
|
+
"list": [{
|
|
16
|
+
"permalink_url": "http://twitter.com/orrka/status/6435248067",
|
|
17
|
+
"date": 1260204073,
|
|
18
|
+
"content": "Just added some portfolio entries to http://orrka.com/",
|
|
19
|
+
"author": {
|
|
20
|
+
"url": "http://twitter.com/orrka",
|
|
21
|
+
"name": "Orrka",
|
|
22
|
+
"photo_url": "http://a1.twimg.com/profile_images/476284898/avatar_normal.png",
|
|
23
|
+
"topsy_author_url": "http://topsy.com/twitter/orrka"
|
|
24
|
+
},
|
|
25
|
+
"date_alpha": "25 days ago",
|
|
26
|
+
"type": "tweet"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"permalink_url": "http://twitter.com/chuckmallott/status/5059873467",
|
|
30
|
+
"date": 1256179965,
|
|
31
|
+
"content": "I really like this logo: http://orrka.com",
|
|
32
|
+
"author": {
|
|
33
|
+
"url": "http://twitter.com/chuckmallott",
|
|
34
|
+
"name": "Chuck Mallott",
|
|
35
|
+
"photo_url": "http://a1.twimg.com/profile_images/598852858/me-blueshirt_normal.png",
|
|
36
|
+
"topsy_author_url": "http://topsy.com/twitter/chuckmallott",
|
|
37
|
+
"influence_level": 2
|
|
38
|
+
},
|
|
39
|
+
"date_alpha": "Oct 21, 2009",
|
|
40
|
+
"type": "tweet"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"permalink_url": "http://twitter.com/orrka/status/4930595271",
|
|
44
|
+
"date": 1255739577,
|
|
45
|
+
"content": "This is going to be killer http://orrka.com",
|
|
46
|
+
"author": {
|
|
47
|
+
"url": "http://twitter.com/orrka",
|
|
48
|
+
"name": "Orrka",
|
|
49
|
+
"photo_url": "http://a1.twimg.com/profile_images/476284898/avatar_normal.png",
|
|
50
|
+
"topsy_author_url": "http://topsy.com/twitter/orrka"
|
|
51
|
+
},
|
|
52
|
+
"date_alpha": "Oct 16, 2009",
|
|
53
|
+
"type": "tweet"
|
|
54
|
+
}]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "trending",
|
|
5
|
+
"parameters": {},
|
|
6
|
+
"url": "http://button.topsy.com/trending.json"
|
|
7
|
+
},
|
|
8
|
+
"response": {
|
|
9
|
+
"page": 1,
|
|
10
|
+
"total": 1379,
|
|
11
|
+
"perpage": 10,
|
|
12
|
+
"list": [{
|
|
13
|
+
"term": "photoshop photoshop",
|
|
14
|
+
"url": "http://topsy.com/s?q=photoshop+photoshop"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"term": "swizz beatz",
|
|
18
|
+
"url": "http://topsy.com/s?q=swizz+beatz"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"term": "limbaugh hospitalized",
|
|
22
|
+
"url": "http://topsy.com/s?q=limbaugh+hospitalized"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"term": "travis pastrana",
|
|
26
|
+
"url": "http://topsy.com/s?q=travis+pastrana"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"term": "auld lang syne",
|
|
30
|
+
"url": "http://topsy.com/s?q=auld+lang%20syne"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"term": "#happynewyear",
|
|
34
|
+
"url": "http://topsy.com/s?q=%23happynewyear"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"term": "#2010",
|
|
38
|
+
"url": "http://topsy.com/s?q=%232010"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"term": "#2009",
|
|
42
|
+
"url": "http://topsy.com/s?q=%232009"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"term": "full body scanners",
|
|
46
|
+
"url": "http://topsy.com/s?q=full+body%20scanners"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"term": "#10yearsago",
|
|
50
|
+
"url": "http://topsy.com/s?q=%2310yearsago"
|
|
51
|
+
}]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"request": {
|
|
3
|
+
"response_type": "json",
|
|
4
|
+
"resource": "urlinfo",
|
|
5
|
+
"parameters": {
|
|
6
|
+
"url": "http://twitter.com"
|
|
7
|
+
},
|
|
8
|
+
"url": "http://button.topsy.com/urlinfo.json?url=http%3A%2F%2Ftwitter.com"
|
|
9
|
+
},
|
|
10
|
+
"response": {
|
|
11
|
+
"oneforty": "trending topics - -amp09 right up there past the president today! :) http://tiny.cc/3yNbv",
|
|
12
|
+
"description": "",
|
|
13
|
+
"trackback_total": 39379,
|
|
14
|
+
"topsy_trackback_url": "http://topsy.com/tb/twitter.com/",
|
|
15
|
+
"description_attribution": "",
|
|
16
|
+
"url": "http://twitter.com/",
|
|
17
|
+
"title": "trending topics - -amp09 right up there past the president today! :)"
|
|
18
|
+
}
|
|
19
|
+
}
|
data/test/helper.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
require 'pathname'
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
|
|
5
|
+
gem 'thoughtbot-shoulda', '>= 2.10.1'
|
|
6
|
+
gem 'jnunemaker-matchy', '0.4.0'
|
|
7
|
+
gem 'mocha', '0.9.4'
|
|
8
|
+
gem 'fakeweb', '>= 1.2.5'
|
|
9
|
+
|
|
10
|
+
require 'shoulda'
|
|
11
|
+
require 'matchy'
|
|
12
|
+
require 'mocha'
|
|
13
|
+
require 'fakeweb'
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
17
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
18
|
+
require 'topsy'
|
|
19
|
+
|
|
20
|
+
FakeWeb.allow_net_connect = false
|
|
21
|
+
|
|
22
|
+
class Test::Unit::TestCase
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def fixture_file(filename)
|
|
26
|
+
return '' if filename == ''
|
|
27
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
|
28
|
+
File.read(file_path)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def topsy_url(url)
|
|
32
|
+
url =~ /^http/ ? url : "http://otter.topsy.com#{url}"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def stub_get(url, filename, status=nil)
|
|
36
|
+
options = {:body => fixture_file(filename)}
|
|
37
|
+
options.merge!({:status => status}) unless status.nil?
|
|
38
|
+
|
|
39
|
+
FakeWeb.register_uri(:get, topsy_url(url), options)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def stub_post(url, filename)
|
|
43
|
+
FakeWeb.register_uri(:post, topsy_url(url), :body => fixture_file(filename))
|
|
44
|
+
end
|
|
45
|
+
|
data/test/test_topsy.rb
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
require 'helper'
|
|
2
|
+
|
|
3
|
+
class TestTopsy < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
context "when hitting the Otter API" do
|
|
6
|
+
|
|
7
|
+
should "return author info for a profile url" do
|
|
8
|
+
stub_get("/authorinfo.json?url=http%3A%2F%2Ftwitter.com%2Fpengwynn", "authorinfo.json")
|
|
9
|
+
info = Topsy.author_info("http://twitter.com/pengwynn")
|
|
10
|
+
info.nick.should == 'pengwynn'
|
|
11
|
+
info.influence_level.should == 10
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
should "return search for authors" do
|
|
15
|
+
stub_get("/authorsearch.json?q=pengwynn", "authorsearch.json")
|
|
16
|
+
results = Topsy.author_search("pengwynn")
|
|
17
|
+
results.total.should == 491
|
|
18
|
+
results.list.first.nick.should == 'bradleyjoyce'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
should "list of urls posted by an author" do
|
|
22
|
+
stub_get("/linkposts.json?url=http%3A%2F%2Ftwitter.com%2Fpengwynn", "linkposts.json")
|
|
23
|
+
results = Topsy.link_posts("http://twitter.com/pengwynn")
|
|
24
|
+
results.total.should == 1004
|
|
25
|
+
results.list.first.content.should == 'For auld lang syne, my dear: http://en.wikipedia.org/wiki/Auld_Lang_Syne#Lyrics'
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
should "return count of links posted by an author" do
|
|
29
|
+
stub_get("/linkpostcount.json?url=http%3A%2F%2Ftwitter.com%2Fpengwynn", "linkpostcount.json")
|
|
30
|
+
counts = Topsy.link_post_count("http://twitter.com/pengwynn")
|
|
31
|
+
counts.all.should == 1004
|
|
32
|
+
counts.contains.should == 0
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
should "return a list of author profiles that match the query." do
|
|
36
|
+
stub_get("/profilesearch.json?q=pengwynn", "profilesearch.json")
|
|
37
|
+
results = Topsy.profile_search("pengwynn")
|
|
38
|
+
results.total.should == 1
|
|
39
|
+
results.list.first.influence_level.should == 10
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
should "return a list of URLs related to a given URL" do
|
|
43
|
+
stub_get("/related.json?url=http%3A%2F%2Fgemcutter.org", "related.json")
|
|
44
|
+
results = Topsy.related("http://gemcutter.org")
|
|
45
|
+
results.total.should == 17
|
|
46
|
+
results.list.first.title.should == 'the update | gemcutter | awesome gem hosting'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
should "return a list of results for a query" do
|
|
50
|
+
stub_get("/search.json?q=NYE", "search.json")
|
|
51
|
+
results = Topsy.search("NYE")
|
|
52
|
+
results.total.should == 117731
|
|
53
|
+
results.list.first.score.should == 4.70643044
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
should "return search counts for a term" do
|
|
57
|
+
stub_get("/searchcount.json?q=Balloon%20Boy", "searchcount.json")
|
|
58
|
+
counts = Topsy.search_count('Balloon Boy')
|
|
59
|
+
counts.last_hour.should == 0
|
|
60
|
+
counts.last_month.should == 3659
|
|
61
|
+
counts.all_time.should == 42289
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
should "return count of tweets for a url" do
|
|
65
|
+
stub_get("/stats.json?url=http%3A%2F%2Fgithub.com%2Fpengwynn%2Flinkedin", "stats.json")
|
|
66
|
+
stats = Topsy.stats("http://github.com/pengwynn/linkedin")
|
|
67
|
+
stats.all.should == 11
|
|
68
|
+
stats.influential.should == 3
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
should "return a list of tags associated with a url" do
|
|
72
|
+
stub_get("/tags.json?url=http%3A%2F%2Fgemcutter.org", "tags.json")
|
|
73
|
+
results = Topsy.tags("http://gemcutter.org")
|
|
74
|
+
results.total.should == 9
|
|
75
|
+
assert results.list.map{|t| t.name}.include?("ruby")
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
should "return a list of tweets (trackbacks) that mention the query URL" do
|
|
79
|
+
stub_get("/trackbacks.json?url=http%3A%2F%2Forrka.com", "trackbacks.json")
|
|
80
|
+
results = Topsy.trackbacks("http://orrka.com")
|
|
81
|
+
results.total.should == 3
|
|
82
|
+
results.list.first.date.year.should == 2009
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
should "return a list of trending terms" do
|
|
86
|
+
stub_get("/trending.json", "trending.json")
|
|
87
|
+
results = Topsy.trending
|
|
88
|
+
results.total.should == 1379
|
|
89
|
+
assert results.list.map{|t| t.term}.flatten.include?("auld lang syne")
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
should "return info about a url" do
|
|
93
|
+
stub_get("/urlinfo.json?url=http%3A%2F%2Fwynnnetherland.com", 'urlinfo.json')
|
|
94
|
+
results = Topsy.url_info('http://wynnnetherland.com')
|
|
95
|
+
results.trackback_total.should == 39379
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
end
|