Ejemplo n.º 1
0
    def make_downloader(self,
                        metadata,
                        options,
                        payment_rate_manager,
                        download_directory=None,
                        file_name=None):
        data_rate = options[0]
        upload_allowed = options[1]

        def save_source_if_blob(stream_hash):
            if metadata.metadata_source == StreamMetadata.FROM_BLOB:
                # TODO: should never have to dig this deep into a another classes
                #       members. lbry_file_manager should have a
                #       save_sd_blob_hash_to_stream method
                d = self.lbry_file_manager.stream_info_manager.save_sd_blob_hash_to_stream(
                    stream_hash, metadata.source_blob_hash)
            else:
                d = defer.succeed(True)
            d.addCallback(lambda _: stream_hash)
            return d

        d = save_sd_info(self.lbry_file_manager.stream_info_manager,
                         metadata.validator.raw_info)
        d.addCallback(save_source_if_blob)
        d.addCallback(lambda stream_hash: self.lbry_file_manager.add_lbry_file(
            stream_hash,
            payment_rate_manager,
            data_rate,
            upload_allowed,
            download_directory=download_directory,
            file_name=file_name))
        return d
Ejemplo n.º 2
0
    def make_downloader(self, metadata, options, payment_rate_manager,
                        **kwargs):
        payment_rate_manager.min_blob_data_payment_rate = options[0]
        upload_allowed = options[1]

        def save_source_if_blob(stream_hash):
            if metadata.metadata_source == StreamMetadata.FROM_BLOB:
                d = self.stream_info_manager.save_sd_blob_hash_to_stream(
                    stream_hash, metadata.source_blob_hash)
            else:
                d = defer.succeed(True)
            d.addCallback(lambda _: stream_hash)
            return d

        def create_downloader(stream_hash):
            downloader = self._make_downloader(stream_hash,
                                               payment_rate_manager,
                                               metadata.validator.raw_info,
                                               upload_allowed)
            d = downloader.set_stream_info()
            d.addCallback(lambda _: downloader)
            return d

        d = save_sd_info(self.stream_info_manager, metadata.validator.raw_info)
        d.addCallback(save_source_if_blob)
        d.addCallback(create_downloader)
        return d
Ejemplo n.º 3
0
    def make_downloader(self, metadata, options, payment_rate_manager,
                        download_directory=None, file_name=None):
        data_rate = options[0]
        upload_allowed = options[1]

        def save_source_if_blob(stream_hash):
            if metadata.metadata_source == StreamMetadata.FROM_BLOB:
                # TODO: should never have to dig this deep into a another classes
                #       members. lbry_file_manager should have a
                #       save_sd_blob_hash_to_stream method
                d = self.lbry_file_manager.stream_info_manager.save_sd_blob_hash_to_stream(
                    stream_hash, metadata.source_blob_hash)
            else:
                d = defer.succeed(True)
            d.addCallback(lambda _: stream_hash)
            return d

        d = save_sd_info(self.lbry_file_manager.stream_info_manager, metadata.validator.raw_info)
        d.addCallback(save_source_if_blob)
        d.addCallback(lambda stream_hash: self.lbry_file_manager.add_lbry_file(
            stream_hash,
            payment_rate_manager,
            data_rate,
            upload_allowed,
            download_directory=download_directory,
            file_name=file_name))
        return d
Ejemplo n.º 4
0
 def make_downloader(self, metadata, options, payment_rate_manager, download_directory=None,
                     file_name=None):
     assert len(options) == 1
     data_rate = options[0]
     stream_hash = yield save_sd_info(self.lbry_file_manager.stream_info_manager,
                                      metadata.validator.raw_info)
     if metadata.metadata_source == StreamMetadata.FROM_BLOB:
         yield self.lbry_file_manager.save_sd_blob_hash_to_stream(stream_hash,
                                                                  metadata.source_blob_hash)
     lbry_file = yield self.lbry_file_manager.add_lbry_file(stream_hash, payment_rate_manager,
                                                            data_rate,
                                                            download_directory, file_name)
     defer.returnValue(lbry_file)
Ejemplo n.º 5
0
    def make_downloader(self, metadata, options, payment_rate_manager):
        data_rate = options[0]
        upload_allowed = options[1]

        def save_source_if_blob(stream_hash):
            if metadata.metadata_source == StreamMetadata.FROM_BLOB:
                d = self.lbry_file_manager.stream_info_manager.save_sd_blob_hash_to_stream(stream_hash,
                                                                                           metadata.source_blob_hash)
            else:
                d = defer.succeed(True)
            d.addCallback(lambda _: stream_hash)
            return d

        d = save_sd_info(self.lbry_file_manager.stream_info_manager, metadata.validator.raw_info)
        d.addCallback(save_source_if_blob)
        d.addCallback(lambda stream_hash: self.lbry_file_manager.add_lbry_file(stream_hash,
                                                                               payment_rate_manager,
                                                                               data_rate,
                                                                               upload_allowed))
        return d
Ejemplo n.º 6
0
    def make_downloader(self, metadata, options, payment_rate_manager, **kwargs):
        payment_rate_manager.min_blob_data_payment_rate = options[0]
        upload_allowed = options[1]

        def save_source_if_blob(stream_hash):
            if metadata.metadata_source == StreamMetadata.FROM_BLOB:
                d = self.stream_info_manager.save_sd_blob_hash_to_stream(stream_hash, metadata.source_blob_hash)
            else:
                d = defer.succeed(True)
            d.addCallback(lambda _: stream_hash)
            return d

        def create_downloader(stream_hash):
            downloader = self._make_downloader(stream_hash, payment_rate_manager,
                                               metadata.validator.raw_info, upload_allowed)
            d = downloader.set_stream_info()
            d.addCallback(lambda _: downloader)
            return d

        d = save_sd_info(self.stream_info_manager, metadata.validator.raw_info)
        d.addCallback(save_source_if_blob)
        d.addCallback(create_downloader)
        return d