Class: CSRDataInventory

Inherits:
Object
  • Object
show all
Defined in:
lib/csr_data_inventory.rb

Class Method Summary collapse

Class Method Details

.downloadObject



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
# File 'lib/csr_data_inventory.rb', line 4

def self.download
  puts "Please enter your token:"
  token = gets.strip
  download_url = "https://datascience.uth.edu/medcis/databases/download_file_list?"
  params_part = URI.encode_www_form([["token",token]])
  download_url = download_url + params_part
  download_folder = download_folder = ::File.join(Dir.pwd, "#{token}_file_list.txt")
  download_request = DownloadRequest.new(download_url, download_folder)
  download_request.get
  if download_request.error.to_s == ""
  	puts "  File list downloaded"
  	File.readlines("#{Dir.pwd}/#{token}_file_list.txt").each do |line|
  		path_tokens = line.strip.split

  		path = path_tokens[0]
  		file_size = path_tokens[1]
  		 
  		puts "    Downloading file: #{path}".bg_gray.blue
  		download_url = "https://datascience.uth.edu/medcis/databases/download_file?"
    params_part = URI.encode_www_form([["token",token], ["path", path]])
    download_url = download_url + params_part
    download_folder = ::File.join(Dir.pwd, path[14..-1])
    if File.exists?(download_folder) and (File.size(download_folder).to_s == file_size)
    	puts "    File exists".white
    	next
    end
    download_request = DownloadRequest.new(download_url, download_folder)
    download_request.get
     if download_request.error.to_s == ""
     	puts "    Successful".green
     else
     	puts "    Failed: #{download_request.error.to_s}".red
     end
  	end;nil
  else
  	puts "  #{download_request.error.to_s}".red
  end
rescue
  puts "\nINTERRUPTED".red
end