from runkeeper import upload_to_runkeeper from drive import Drive from models import DriveActivity drive_service = Drive( os.environ['GOOGLE_API_CLIENT_ID'], os.environ['GOOGLE_API_CLIENT_SECRET'], ) folders = drive_service.folders() print("Please select a folder to sync tracks from:") for i, folder in enumerate(folders): print "{}: {}".format(i, folder['title']) index = raw_input("Folder number: ") folder = folders[int(index)] print("You chose the folder: {}".format(folder['title'])) tracks = drive_service.files(folder) for i, track in enumerate(tracks): print('{}: {}'.format(i, track['title'])) index = raw_input("Track number: ") track = tracks[int(index)] q = DriveActivity.all() q.filter('pk =', track['id']) drive_activity = q[0] content = drive_service.download(track) activity = upload_to_runkeeper(content)
def generateAll(self, download=False, save_path='./', delete=True, timeout=None) -> List[str]: '''Generates all images in this capture area Args: download (bool, optional): Whether or not to download the images afterwards. Defaults to False. save_path (str, optional): The path to save the downloaded files to. Defaults to './'. delete (bool, optional): Whether or not to delete the file from Google Drive after downloading. Defaults to True. timeout (int, optional): The number of seconds to keep looking for downloadable files. Defaults to None, which means the number of generated files * 3 * 60. Returns: List[str]: A list of filenames of files that still need to be downloaded. ''' length = self.size * (self.interval[1] - self.interval[0]) self.log.info('Generating %s images.', length) self.generated = [] for i in range(length): self.index = i self.generate(i) self.log.info('Generated all images. Expected load time is %s minutes', length * 3) to_download = set(self.generated) if download: from drive import Drive drive = Drive() start_time = perf_counter() timeout = timeout or length * 3 * 60 time_difference = 0 while len(to_download) > 0 and time_difference < timeout: downloaded = [] for file in to_download: if drive.download(file, '.tif', save_path, delete): to_download.remove(file) downloaded.append(file) time_difference = perf_counter() - start_time for dl_file in downloaded: self.log.info( 'Downloaded file "%s", %i to go. (%i seconds left)', dl_file, len(to_download), time_difference) if len(to_download) == 0: self.log.info('Sucessfully generated and downloaded %i files', len(self.generated)) else: self.log.warning( 'Failed to download %i of %i generated files.\nThey were: %s', len(to_download), len(self.generated), to_download) return to_download