def add(list, user, *users)
users.unshift(user)
if options['id']
users.map!(&:to_i)
else
users.map!(&:strip_ats)
end
users.in_groups_of(MAX_USERS_PER_REQUEST, false).threaded_each do |user_id_group|
retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
client.list_add_members(list, user_id_group)
end
end
number = users.length
say "@#{@rcfile.active_profile[0]} added #{number} #{number == 1 ? 'member' : 'members'} to the list \"#{list}\"."
say
if options['id']
say "Run `#{File.basename($0)} list remove --id #{list} #{users.join(' ')}` to undo."
else
say "Run `#{File.basename($0)} list remove #{list} #{users.map{|user| "@#{user}"}.join(' ')}` to undo."
end
end