Class: Topsy::Client
Constant Summary collapse
- @@windows =
{:all => 'a', :auto => 'auto', :week => 'w', :day => 'd', :month => 'm', :hour => 'h', :realtime => 'realtime'}
Instance Method Summary collapse
-
#author_info(url) ⇒ Topsy::Author
Returns Profile information for an author (a twitter profile indexed by Topsy).
-
#author_search(q, options = {}) ⇒ Hashie::Mash
Returns list of authors that talk about the query.
-
#credit ⇒ Topsy::RateLimitInfo
Returns info about API rate limiting.
-
#link_post_count(url, options = {}) ⇒ Topsy::LinkpostCount
Returns count of links posted by an author.
-
#link_posts(url, options = {}) ⇒ Topsy::Page
Returns list of URLs posted by an author.
-
#profile_search(q, options = {}) ⇒ Topsy::Page
Returns list list of author profiles that match the query.
-
#related(url, options = {}) ⇒ Topsy::Page
Returns list of URLs related to a given URL.
-
#search(q, options = {}) ⇒ Topsy::Page
Returns list of results for a query.
-
#search_count(q) ⇒ Topsy::SearchCounts
Returns count of results for a search query.
-
#stats(url, options = {}) ⇒ Topsy::Stats
Returns counts of tweets for a URL.
-
#tags(url, options = {}) ⇒ Topsy::Page
Returns list of tags for a URL.
-
#trackbacks(url, options = {}) ⇒ Topsy::Page
Returns list of tweets (trackbacks) that mention the query URL, most recent first.
-
#trending(options = {}) ⇒ Topsy::Page
Returns list of trending terms.
-
#url_info(url) ⇒ Topsy::UrlInfo
Returns info about a URL.
Instance Method Details
#author_info(url) ⇒ Topsy::Author
Returns Profile information for an author (a twitter profile indexed by Topsy). The response contains the name, description (biography) and the influence level of the author
19 20 21 22 |
# File 'lib/topsy/client.rb', line 19 def (url) = handle_response(self.class.get("/authorinfo.json", :query => {:url => url})) Topsy::Author.new() end |
#author_search(q, options = {}) ⇒ Hashie::Mash
Returns list of authors that talk about the query. The list is sorted by frequency of posts and the influence of authors.
32 33 34 35 |
# File 'lib/topsy/client.rb', line 32 def (q, ={}) [:window] = @@windows[[:window]] if [:window] handle_response(self.class.get("/authorsearch.json", :query => {:q => q}.merge())) end |
#credit ⇒ Topsy::RateLimitInfo
Returns info about API rate limiting
11 12 13 |
# File 'lib/topsy/client.rb', line 11 def credit handle_response(self.class.get("/credit.json")) end |
#link_post_count(url, options = {}) ⇒ Topsy::LinkpostCount
Returns count of links posted by an author. This is the efficient, count-only version of /linkposts
56 57 58 59 |
# File 'lib/topsy/client.rb', line 56 def link_post_count(url, ={}) count = handle_response(self.class.get("/linkpostcount.json", :query => {:url => url}.merge())) Topsy::LinkpostCount.new(count) end |
#link_posts(url, options = {}) ⇒ Topsy::Page
Returns list of URLs posted by an author
45 46 47 48 |
# File 'lib/topsy/client.rb', line 45 def link_posts(url, ={}) linkposts = handle_response(self.class.get("/linkposts.json", :query => {:url => url}.merge())) Topsy::Page.new(linkposts,Topsy::Linkpost) end |
#profile_search(q, options = {}) ⇒ Topsy::Page
Returns list list of author profiles that match the query.
The query is matched against the nick, name and biography
information and the results are sorted by closeness of match and the influence of authors.
70 71 72 73 |
# File 'lib/topsy/client.rb', line 70 def profile_search(q, ={}) results = handle_response(self.class.get("/profilesearch.json", :query => {:q => q}.merge())) Topsy::Page.new(results,Topsy::Author) end |
#related(url, options = {}) ⇒ Topsy::Page
Returns list of URLs related to a given URL
82 83 84 85 |
# File 'lib/topsy/client.rb', line 82 def (url, ={}) response = handle_response(self.class.get("/related.json", :query => {:url => url}.merge())) Topsy::Page.new(response,Topsy::LinkSearchResult) end |
#search(q, options = {}) ⇒ Topsy::Page
Returns list of results for a query.
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/topsy/client.rb', line 96 def search(q, ={}) if q.is_a?(Hash) = q q = "site:#{.delete(:site)}" if [:site] else q += " site:#{.delete(:site)}" if [:site] end [:window] = @@windows[[:window]] if [:window] results = handle_response(self.class.get("/search.json", :query => {:q => q}.merge())) Topsy::Page.new(results,Topsy::LinkSearchResult) end |
#search_count(q) ⇒ Topsy::SearchCounts
Returns count of results for a search query.
112 113 114 115 |
# File 'lib/topsy/client.rb', line 112 def search_count(q) counts = handle_response(self.class.get("/searchcount.json", :query => {:q => q})) Topsy::SearchCounts.new(counts) end |
#stats(url, options = {}) ⇒ Topsy::Stats
Returns counts of tweets for a URL
123 124 125 126 127 128 |
# File 'lib/topsy/client.rb', line 123 def stats(url, ={}) query = {:url => url} query.merge!() response = handle_response(self.class.get("/stats.json", :query => query)) Topsy::Stats.new(response) end |
#tags(url, options = {}) ⇒ Topsy::Page
Returns list of tags for a URL.
137 138 139 140 |
# File 'lib/topsy/client.rb', line 137 def (url, ={}) response = handle_response(self.class.get("/tags.json", :query => {:url => url}.merge())) Topsy::Page.new(response,Topsy::Tag) end |
#trackbacks(url, options = {}) ⇒ Topsy::Page
Returns list of tweets (trackbacks) that mention the query URL, most recent first.
151 152 153 154 155 156 157 |
# File 'lib/topsy/client.rb', line 151 def trackbacks(url, ={}) results = handle_response(self.class.get("/trackbacks.json", :query => {:url => url}.merge())) results.list.each do |trackback| trackback.date = Time.at(trackback.date) end Topsy::Page.new(results,Topsy::Tweet) end |
#trending(options = {}) ⇒ Topsy::Page
Returns list of trending terms
165 166 167 168 |
# File 'lib/topsy/client.rb', line 165 def trending(={}) response = handle_response(self.class.get("/trending.json", :query => )) Topsy::Page.new(response,Topsy::Trend) end |
#url_info(url) ⇒ Topsy::UrlInfo
Returns info about a URL
174 175 176 177 |
# File 'lib/topsy/client.rb', line 174 def url_info(url) response = handle_response(self.class.get("/urlinfo.json", :query => {:url => url})) Topsy::UrlInfo.new(response) end |