module GTools

Public Class Methods

page_rank(domain) click to toggle source

Returns Google Page Rank for specified domain

Note: mining Page Rank violates Google ToS.

# File lib/gtools.rb, line 16
def self.page_rank(domain)
  url = GToolsConfiguration.tbr_host + GToolsConfiguration.tbr_query % [GMath.hash(domain), domain]
  r = HTTParty.get(url).parsed_response
  (r =~ /(\d+)$/) ? Integer($1) : nil
end
pagespeed_analysis(url) click to toggle source

Returns a dictionary of Google pagespeed analysis results for specified URL.

Notable fields: rule_results, score

# File lib/gtools.rb, line 27
def self.pagespeed_analysis(url)
  return nil unless valid_url url
  url = GToolsConfiguration.google_pagespeed_url % [URI.encode(url)]
  HTTParty.get(url).parsed_response["results"]
end
pagespeed_score(url) click to toggle source

Returns pagespeed score for specified URL.

# File lib/gtools.rb, line 36
def self.pagespeed_score(url)
  return nil unless valid_url url
  r = pagespeed_analysis(url)
  r ? r["score"] : nil
end
search_results(query, user_ip = nil) click to toggle source

Returns estimated number of results for specified search query.

Provide user_ip param to avoid ToS violation.

# File lib/gtools.rb, line 69
def self.search_results(query, user_ip = nil)
  return nil unless query
  url = GToolsConfiguration.google_apisearch_url % [1, URI.encode(query)]
  url += "&userip=#{user_ip}" if user_ip
  r = HTTParty.get(url).parsed_response
  return nil unless r['responseData']
  count = r['responseData']['cursor']['estimatedResultCount']
  count ? Integer(count) : nil
end
site_index(url, user_ip = nil) click to toggle source

Returns estimated number of indexed pages for specified domain.

Provide user_ip param to avoid ToS violation.

# File lib/gtools.rb, line 47
def self.site_index(url, user_ip = nil)
  return nil unless valid_url url
  search_results "site:#{url}", user_ip
end
suggested_tld() click to toggle source

Returns Google tld suggestion based on current IP.

# File lib/gtools.rb, line 82
def self.suggested_tld
  url = GToolsConfiguration.google_tld_url
  domain = HTTParty.get(url).parsed_response
  domain =~ /google\.(.*)$/ ? $1 : nil
end