Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@barkerja
Created September 24, 2016 16:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save barkerja/0a0feda0d1b6e035d3d742c189ed0217 to your computer and use it in GitHub Desktop.
Save barkerja/0a0feda0d1b6e035d3d742c189ed0217 to your computer and use it in GitHub Desktop.
require 'twitter'
require 'csv'
require 'date'
# Define the cut off, in days:
tweet_cliff = 180
client = Twitter::REST::Client.new do |c|
c.consumer_key = ''
c.consumer_secret = ''
c.access_token = ''
c.access_token_secret = ''
end
following_ids = client.friend_ids.to_a
bye_bye_users = client.users(following_ids).select do |user|
user.status.created_at < (Date.today.to_date - tweet_cliff).to_time
end
# Remove bye_bye_users
client.unfollow(bye_bye_users)
puts "Unfollowed #{bye_bye_users.count}:"
CSV.open('twitter_unfollowing.csv', 'wb') do |csv|
csv << %w(user_id, screen_name, last_tweet, last_tweet_date)
bye_bye_users.sort! { |a, b| a.screen_name.downcase <=> b.screen_name.downcase }
bye_bye_users.each do |u|
csv << [u.id, u.screen_name, u.status.text, u.status.created_at]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment