Exemple #1
0
    def start(self, stream_info, name):
        """
        Start download

        Returns:
            (tuple) Tuple containing (downloader, finished_deferred)

            downloader - instance of ManagedEncryptedFileDownloader
            finished_deferred - deferred callbacked when download is finished
        """
        self.set_status(INITIALIZING_CODE, name)
        key_fee = yield self._initialize(stream_info)

        safe_start_looping_call(self.checker, 1)
        self.set_status(DOWNLOAD_METADATA_CODE, name)
        sd_blob = yield self._download_sd_blob()

        yield self._download(sd_blob, name, key_fee)
        self.set_status(DOWNLOAD_RUNNING_CODE, name)

        try:
            yield self.data_downloading_deferred
        except DownloadDataTimeout as err:
            safe_stop_looping_call(self.checker)
            raise err

        defer.returnValue((self.downloader, self.finished_deferred))
Exemple #2
0
    def start(self, stream_info, name, txid, nout, file_name=None):
        """
        Start download

        Returns:
            (tuple) Tuple containing (downloader, finished_deferred)

            downloader - instance of ManagedEncryptedFileDownloader
            finished_deferred - deferred callbacked when download is finished
        """
        self.set_status(INITIALIZING_CODE, name)
        key_fee = yield self._initialize(stream_info)

        safe_start_looping_call(self.checker, 1)
        self.set_status(DOWNLOAD_METADATA_CODE, name)
        sd_blob = yield self._download_sd_blob()

        yield self._download(sd_blob, name, key_fee, txid, nout, file_name)
        self.set_status(DOWNLOAD_RUNNING_CODE, name)

        try:
            yield self.data_downloading_deferred
        except DownloadDataTimeout as err:
            safe_stop_looping_call(self.checker)
            raise err

        defer.returnValue((self.downloader, self.finished_deferred))
Exemple #3
0
 def _check_status(self, status):
     if status.num_completed > 0 and not self.data_downloading_deferred.called:
         self.data_downloading_deferred.callback(True)
     if self.data_downloading_deferred.called:
         safe_stop_looping_call(self.checker)
     else:
         log.debug("Waiting for stream data (%i seconds)", self.timeout_counter)
Exemple #4
0
 def _check_status(self, status):
     if status.num_completed > 0 and not self.data_downloading_deferred.called:
         self.data_downloading_deferred.callback(True)
     if self.data_downloading_deferred.called:
         safe_stop_looping_call(self.checker)
     else:
         log.debug("Waiting for stream data (%i seconds)", self.timeout_counter)
Exemple #5
0
 def finish(self, results, name):
     self.set_status(DOWNLOAD_STOPPED_CODE, name)
     log.info("Finished downloading lbry://%s (%s) --> %s", name,
              self.sd_hash[:6], self.download_path)
     safe_stop_looping_call(self.checker)
     status = yield self.downloader.status()
     self._check_status(status)
     defer.returnValue(self.download_path)
Exemple #6
0
 def stop(self):
     safe_stop_looping_call(self.lbry_file_reflector)
     yield defer.DeferredList(list(self._stop_lbry_files()))
     if self.sql_db:
         yield self.sql_db.close()
     self.sql_db = None
     log.info("Stopped encrypted file manager")
     defer.returnValue(True)
Exemple #7
0
 def finish(self, results, name):
     self.set_status(DOWNLOAD_STOPPED_CODE, name)
     log.info("Finished downloading lbry://%s (%s) --> %s", name, self.sd_hash[:6],
              self.download_path)
     safe_stop_looping_call(self.checker)
     status = yield self.downloader.status()
     self._check_status(status)
     defer.returnValue(self.download_path)
Exemple #8
0
 def _check_status(self, status):
     stop_condition = (status.num_completed > 0 or status.running_status
                       == ManagedEncryptedFileDownloader.STATUS_STOPPED)
     if stop_condition and not self.data_downloading_deferred.called:
         self.data_downloading_deferred.callback(True)
     if self.data_downloading_deferred.called:
         safe_stop_looping_call(self.checker)
     else:
         log.info("Downloading stream data (%i seconds)",
                  self.timeout_counter)
 def _check_if_finished(self):
     if self.stream_position() == 1:
         blob_downloaded = self.download_manager.blobs[0]
         log.debug("The blob %s has been downloaded. Calling the finished callback",
                     str(blob_downloaded))
         safe_stop_looping_call(self.checker)
         self.finished_callback(blob_downloaded)
     elif self.timeout is not None:
         self.timeout_counter += 1
         if self.timeout_counter >= self.timeout:
             safe_stop_looping_call(self.checker)
             self.timeout_callback()
 def _check_if_finished(self):
     if self.stream_position() == 1:
         blob_downloaded = self.download_manager.blobs[0]
         log.debug("The blob %s has been downloaded. Calling the finished callback",
                     str(blob_downloaded))
         safe_stop_looping_call(self.checker)
         self.finished_callback(blob_downloaded)
     elif self.timeout is not None:
         self.timeout_counter += 1
         if self.timeout_counter >= self.timeout:
             safe_stop_looping_call(self.checker)
             self.timeout_callback()
Exemple #11
0
 def check_status(self):
     """
     Check if we've got the first data blob in the stream yet
     """
     self.timeout_counter += 1
     if self.timeout_counter >= self.timeout:
         if not self.data_downloading_deferred.called:
             self.data_downloading_deferred.errback(
                 DownloadTimeoutError(self.file_name))
         safe_stop_looping_call(self.checker)
     else:
         d = self.downloader.status()
         d.addCallback(self._check_status)
Exemple #12
0
 def check_status(self):
     """
     Check if we've got the first data blob in the stream yet
     """
     self.timeout_counter += 1
     if self.timeout_counter > self.timeout:
         if not self.data_downloading_deferred.called:
             if self.downloader:
                 err = DownloadDataTimeout(self.sd_hash)
             else:
                 err = DownloadSDTimeout(self.sd_hash)
             self.data_downloading_deferred.errback(err)
         safe_stop_looping_call(self.checker)
     elif self.downloader:
         d = self.downloader.status()
         d.addCallback(self._check_status)
     else:
         log.debug("Waiting for stream descriptor (%i seconds)", self.timeout_counter)
Exemple #13
0
 def check_status(self):
     """
     Check if we've got the first data blob in the stream yet
     """
     self.timeout_counter += 1
     if self.timeout_counter > self.timeout:
         if not self.data_downloading_deferred.called:
             if self.downloader:
                 err = DownloadDataTimeout(self.sd_hash)
             else:
                 err = DownloadSDTimeout(self.sd_hash)
             self.data_downloading_deferred.errback(err)
         safe_stop_looping_call(self.checker)
     elif self.downloader:
         d = self.downloader.status()
         d.addCallback(self._check_status)
     else:
         log.debug("Waiting for stream descriptor (%i seconds)", self.timeout_counter)
 def stop(self):
     safe_stop_looping_call(self.checker)
     return defer.succeed(True)
Exemple #15
0
 def fail(self, err):
     safe_stop_looping_call(self.checker)
     raise err
Exemple #16
0
 def fail(self, err):
     safe_stop_looping_call(self.checker)
     raise err
Exemple #17
0
 def stop(self):
     safe_stop_looping_call(self.checker)
     return defer.succeed(True)
Exemple #18
0
 def stop(self):
     safe_stop_looping_call(self.lbry_file_reflector)
     yield self._stop_lbry_files()
     log.info("Stopped encrypted file manager")
     defer.returnValue(True)