fguillen (owner)

Forks

Revisions

gist: 228468 Download_button fork
public
Public Clone URL: git://gist.github.com/228468.git
Embed All Files: show embed
twitter_lists.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 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? )