lib/chatterbot/search.rb in chatterbot-2.0.4 vs lib/chatterbot/search.rb in chatterbot-2.0.5

- old
+ new

@@ -22,35 +22,58 @@ # def include_retweets @skip_retweets = false end - + # # check if this is a retweet that we want to skip # def skippable_retweet?(t) @skip_retweets && t.retweeted_status? end + + def wrap_search_query(q) + if q =~ / / + ['"', q.gsub(/^"/, '').gsub(/"$/, ''), '"'].join("") + else + q + end + end # internal search code def search(queries, opts = {}, &block) debug "check for tweets since #{since_id}" max_tweets = opts.delete(:limit) || MAX_SEARCH_TWEETS + exact_match = if opts.key?(:exact) + opts.delete(:exact) + else + true + end + if queries.is_a?(String) - queries = [queries] + queries = [ + queries + ] end - query = queries.join(" OR ") + query = queries.map { |q| + if exact_match == true + q = wrap_search_query(q) + end + + q + }.join(" OR ") # # search twitter # debug "search: #{query} #{default_opts.merge(opts)}" @current_tweet = nil + client.search( query, default_opts.merge(opts) ).take(max_tweets).each { |s| update_since_id(s) debug s.text if block_given? && valid_tweet?(s)