require 'rubygems'
require 'twitter_search'
require 'dm-core'
unless ARGV.length == 1
$stderr.puts "Usage: #{$0} searchterm"
exit 1
end
search_term = ARGV.first
DataMapper.setup( :default, "sqlite3://#{Dir.pwd}/#{search_term}.db" )
class Tweet
include DataMapper::Resource
property :from_user, String
property :from_user_id, String
property :text, String
property :created_at, DateTime
property :profile_image_url, String
property :id, String, :key => true
end
DataMapper.auto_migrate!
def with_tweets_matching(hashtag)
client = TwitterSearch::Client.new 'search_sucker'
page = 1
begin
tweets = client.query :q => hashtag, :rpp => 100, :page => page
tweets.each do |tweet|
yield tweet
end
page = page + 1
end while tweets.size > 0
end
with_tweets_matching(search_term) do |t|
e = Tweet.new
e.attributes = {
:from_user => t.from_user,
:from_user_id => t.from_user_id,
:text => t.text,
:created_at => t.created_at,
:profile_image_url => t.profile_image_url,
:id => t.id
}
e.save
end