Skip to content

Instantly share code, notes, and snippets.

@fguillen
Created November 7, 2009 01:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save fguillen/228468 to your computer and use it in GitHub Desktop.
Save fguillen/228468 to your computer and use it in GitHub Desktop.
# Add a bunch of twitter users to one of your twitter lists
#
# use it with a file full of twitter usernames
# one name by line
#
# If the listname indicated doesn't exist it will be created
#
# Example: $ ruby twitter_lists.rb 'username' 'userpass' 'listname' twitter_users.txt
#
# Debug mode: $ ruby twitter_lists.rb 'username' 'userpass' 'listname' twitter_users.txt debug
#
require 'rubygems'
require 'twitter'
require 'pp'
class TwitterLists
def self.add_users( username, pass, listname, path_file_users, debug_mode = false )
puts "DEBUG mode actived! \n\n" if debug_mode
httpauth = Twitter::HTTPAuth.new( username, pass)
twitter = Twitter::Base.new(httpauth)
begin
twitter.list(username, listname)
rescue Twitter::NotFound => e
puts "List '#{username}/#{listname}' doesn't exist, so I'll create it\n\n"
twitter.list_create(username, {:name => listname, :mode => 'public'}) if !debug_mode
end
File.read( path_file_users ).each do |new_username|
new_username = new_username.gsub("\n",'').strip
next if new_username.empty?
begin
puts "adding: #{new_username} to #{username}/#{listname}"
user_id = Twitter.user( new_username ).id
twitter.list_add_member( username, listname, user_id ) if !debug_mode
rescue Exception => e
puts "ERRROR trying to add: #{new_username} to #{username}/#{listname} .. we follow working"
puts e
end
end
end
end
if ARGV.size < 4 || ARGV.size > 5
puts "use: #{$0} <username> <pass> <listname> <path_file_users> {debug}"
exit 1
end
TwitterLists.add_users( ARGV[0], ARGV[1], ARGV[2], ARGV[3], !ARGV[4].nil? )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment