Skip to content

Instantly share code, notes, and snippets.

@hiroxto
Created February 5, 2016 09:27
Show Gist options
  • Save hiroxto/1a7f594eeead00a5dd85 to your computer and use it in GitHub Desktop.
Save hiroxto/1a7f594eeead00a5dd85 to your computer and use it in GitHub Desktop.
ツイートを保存して削除検出をする
require "twitter"
require "sqlite3"
require "pp"
keys = {
:consumer_key => "",
:consumer_secret => "",
:access_token => "",
:access_token_secret => "",
}
rest = Twitter::REST::Client.new(keys)
stream = Twitter::Streaming::Client.new(keys)
sqlite = SQLite3::Database.new("tweets.sqlite")
sql = <<"EOS"
create table if not exists tweets (
status_id varchar(30) unique not null,
screen_name varchar(20) not null,
body text not null
);
EOS
sqlite.execute(sql)
stream.user do |obj|
pp obj
case obj
when Twitter::Tweet
sqlite.execute("insert into tweets values(?, ?, ?);", [obj.id, obj.user.screen_name, obj.text])
when Twitter::Streaming::DeletedTweet
sqlite.execute("select * from tweets where status_id = ?", obj.id) do |row|
rest.update("#{row[1]}のツイート削除を検出しました。StatusID:#{row[0]}\n内容:#{row[2]}")
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment