class Gsrd::Download

Public Class Methods

new(token) click to toggle source
# File lib/gsrd.rb, line 25
def initialize(token)
    @token = token
end

Public Instance Methods

go() click to toggle source
# File lib/gsrd.rb, line 29
def go()
    
    @time = Time.new
    @month = @time.month.to_s.rjust(2, "0")
    @day = @time.day.to_s.rjust(2, "0")
    @directory_name = Dir.pwd + "/gsrd-downloads-#{@time.year}-#{@month}-#{@day}"
    Dir.mkdir(@directory_name) unless File.exists?(@directory_name)
    
    @pagination = 1
    @count = 0
    
    loop do
        
        response = HTTParty.get($repos_uri + @token + $page + "#{@pagination}")
        
        for repo in response.parsed_response
            
            @uri = repo["html_url"]
            @download_uri = @uri + $archive + repo["default_branch"] + $extension
            @file_name = repo["owner"]["login"] + "-" + repo["name"] + "-" + repo["default_branch"] + $extension
    
            puts "\n\n======= DOWNLOADING " + repo["name"] + " ======= "
            puts "URL: " + @uri
            puts "Download URL: " + @download_uri
            puts "started: " + Time.now.strftime("%d/%m/%Y %H:%M:%S")
            
            @wget = "wget -O " + @directory_name + "/" + @file_name + " " + @download_uri + " -q --show-progress"
            
            `#{@wget}`
            
            puts "finished: " + Time.now.strftime("%d/%m/%Y %H:%M:%S")
            
            @count += 1
        
        end

        @pagination += 1
    
        break if response.parsed_response.count == 0
    
    end
    
    puts "\n\n======= #{@count} repos were downloaded to gsrd-downloads directory =======\n\n"

end