Created
July 23, 2012 20:47
-
-
Save codeincontext/3166130 to your computer and use it in GitHub Desktop.
Keep a log of every tweet deleted by people you follow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'daemons' | |
require 'tweetstream' | |
$output_file = '???/deleted_tweets.txt' | |
Daemons.run_proc( | |
'deletweet', | |
log_output: true, | |
dir_mode: :script | |
) do | |
class Twitterbot | |
attr_accessor :received_tweets | |
def initialize() | |
TweetStream.configure &twitter_config | |
self.received_tweets = {} | |
puts "Connecting" | |
client = TweetStream::Client.new | |
client.on_limit do |sc| | |
puts "Rate limit reached (skip count #{sc})" | |
end.on_error do |m| | |
puts "Error: #{m})", !m.include?("duplicate") | |
end.on_reconnect do |t, r| | |
puts "Reconnect: timout:#{t} retries:#{r})" | |
end.on_unauthorized do | |
puts "Unauthorised" | |
end.on_inited do | |
puts "Inited" | |
end.on_no_data_received do | |
puts "Stalled" | |
client.close_connection | |
end.on_delete do |status_id| | |
record_deletion status_id | |
end.userstream do |status| | |
status_item = { | |
username: status.user.name, | |
text: status.text | |
} | |
self.received_tweets[status.id] = status_item | |
end | |
puts "Closing" | |
end | |
private | |
def twitter_config | |
lambda do |config| | |
config.consumer_key = '' | |
config.consumer_secret = '' | |
config.oauth_token = '' | |
config.oauth_token_secret = '' | |
end | |
end | |
def record_deletion(status_id) | |
if status = self.received_tweets[status_id] | |
logger.info "#{status[:username]} - #{status[:text]}" | |
puts "#{status[:username]} - #{status[:text]}" | |
end | |
end | |
def logger | |
@logger ||= Logger.new($output_file) | |
end | |
end | |
Twitterbot.new | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment