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)
示例#2
0
    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