Object
# File lib/twitter/search.rb, line 11 11: def initialize(q=nil, options={}) 12: @options = options 13: clear 14: containing(q) if q && q.strip != "" 15: endpoint_url = options[:api_endpoint] 16: endpoint_url = "#{endpoint_url}/search" if endpoint_url && !endpoint_url.include?("/search") 17: self.class.base_uri(endpoint_url) if endpoint_url 18: end
Clears all the query filters to make a new search
# File lib/twitter/search.rb, line 120 120: def clear 121: @fetch = nil 122: @query = {} 123: @query[:q] = [] 124: self 125: end
# File lib/twitter/search.rb, line 41 41: def containing(word, exclude=false) 42: @query[:q] << "#{exclude ? "-" : ""}#{word}" 43: self 44: end
# File lib/twitter/search.rb, line 137 137: def each 138: results = fetch()['results'] 139: return if results.nil? 140: results.each {|r| yield r} 141: end
# File lib/twitter/search.rb, line 127 127: def fetch(force=false) 128: if @fetch.nil? || force 129: query = @query.dup 130: query[:q] = query[:q].join(" ") 131: perform_get(query) 132: end 133: 134: @fetch 135: end
# File lib/twitter/search.rb, line 147 147: def fetch_next_page 148: if next_page? 149: s = Search.new(nil, :user_agent => user_agent) 150: s.perform_get(fetch()["next_page"][1..1]) 151: s 152: end 153: end
# File lib/twitter/search.rb, line 24 24: def from(user, exclude=false) 25: @query[:q] << "#{exclude ? "-" : ""}from:#{user}" 26: self 27: end
Ranges like 25km and 50mi work.
# File lib/twitter/search.rb, line 109 109: def geocode(lat, long, range) 110: @query[:geocode] = [lat, long, range].join(",") 111: self 112: end
adds filtering based on hash tag ie: #
# File lib/twitter/search.rb, line 48 48: def hashed(tag, exclude=false) 49: @query[:q] << "#{exclude ? "-" : ""}\##{tag}" 50: self 51: end
lang must be ISO 639-1 code ie: en, fr, de, ja, etc.
when I tried en it limited my results a lot and took out several tweets that were english so i’d avoid this unless you really want it
# File lib/twitter/search.rb, line 64 64: def lang(lang) 65: @query[:lang] = lang 66: self 67: end
# File lib/twitter/search.rb, line 114 114: def max(id) 115: @query[:max_id] = id 116: self 117: end
# File lib/twitter/search.rb, line 143 143: def next_page? 144: !!fetch()["next_page"] 145: end
Which page of results to fetch
# File lib/twitter/search.rb, line 82 82: def page(num) 83: @query[:page] = num 84: self 85: end
Limits the number of results per page
# File lib/twitter/search.rb, line 76 76: def per_page(num) 77: @query[:rpp] = num 78: self 79: end
Search for a phrase instead of a group of words
# File lib/twitter/search.rb, line 54 54: def phrase(phrase) 55: @query[:phrase] = phrase 56: self 57: end
# File lib/twitter/search.rb, line 34 34: def referencing(user, exclude=false) 35: @query[:q] << "#{exclude ? "-" : ""}@#{user}" 36: self 37: end
popular|recent
# File lib/twitter/search.rb, line 70 70: def result_type(result_type) 71: @query[:result_type] = result_type 72: self 73: end
Only searches tweets since a given id. Recommended to use this when possible.
# File lib/twitter/search.rb, line 89 89: def since(since_id) 90: @query[:since_id] = since_id 91: self 92: end
From the advanced search form, not documented in the API Format YYYY-MM-DD
# File lib/twitter/search.rb, line 96 96: def since_date(since_date) 97: @query[:since] = since_date 98: self 99: end
# File lib/twitter/search.rb, line 29 29: def to(user, exclude=false) 30: @query[:q] << "#{exclude ? "-" : ""}to:#{user}" 31: self 32: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.