Skip to content

Instantly share code, notes, and snippets.

@jenningsanderson
Created June 3, 2015 18:44
Show Gist options
  • Save jenningsanderson/d51a3a4514b4e90d908b to your computer and use it in GitHub Desktop.
Save jenningsanderson/d51a3a4514b4e90d908b to your computer and use it in GitHub Desktop.
require 'json'
require 'open-uri'
require 'fileutils'
class RevisionGetter
attr_reader :write_directory, :revisions
def initialize(args)
@write_directory = args[:write_dir] || "google_drive_download"
@revisions = args[:revisions]
FileUtils.mkdir_p write_directory
end
def get_revisions
revisions.each do |item|
begin
user = item["lastModifyingUserName"]
date = item["modifiedDate"][0...-5]
# url = item["exportLinks"]["text/csv"]
url = item["exportLinks"]["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
puts "Writing file: #{date+"-"+user}.xlsx"
download_and_save(url, date+"-"+user)
rescue
puts "error occured, continuing..."
end
end
end
def download_and_save(file_url, file_out)
open(write_directory+'/'+file_out+".xlsx", 'wb') do |file|
file << open(file_url).read
end
end
end
test_response = JSON.load(File.read('test.json'))
revGetter = RevisionGetter.new(write_dir: "langtang_spreadsheets", revisions: test_response['items'])
revGetter.get_revisions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment