def create_and_publish_stream(self, name, bid, claim_dict, file_path): """Create lbry file and make claim""" log.info('Starting publish for %s', name) file_name = os.path.basename(file_path) with file_utils.get_read_handle(file_path) as read_handle: stream_hash = yield create_lbry_file(self.session, self.lbry_file_manager, file_name, read_handle) prm = self.session.payment_rate_manager self.lbry_file = yield self.lbry_file_manager.add_lbry_file( stream_hash, prm) sd_hash = yield publish_sd_blob( self.lbry_file_manager.stream_info_manager, self.session.blob_manager, self.lbry_file.stream_hash) if 'source' not in claim_dict['stream']: claim_dict['stream']['source'] = {} claim_dict['stream']['source']['source'] = sd_hash claim_dict['stream']['source']['sourceType'] = 'lbry_sd_hash' claim_dict['stream']['source']['contentType'] = get_content_type( file_path) claim_dict['stream']['source'][ 'version'] = "_0_0_1" # need current version here claim_out = yield self.make_claim(name, bid, claim_dict) self.lbry_file.completed = True yield self.lbry_file.load_file_attributes() yield self.lbry_file.save_status() defer.returnValue(claim_out)
def _create_sd_blob(self): d = publish_sd_blob(self.lbry_file_manager.stream_info_manager, self.session.blob_manager, self.lbry_file.stream_hash) def set_sd_hash(sd_hash): self.sd_hash = sd_hash d.addCallback(set_sd_hash) return d
def _create_sd_blob(self): log.debug('Creating stream descriptor blob') d = publish_sd_blob(self.lbry_file_manager.stream_info_manager, self.session.blob_manager, self.lbry_file.stream_hash) def set_sd_hash(sd_hash): log.debug('stream descriptor hash: %s', sd_hash) if 'sources' not in self.metadata: self.metadata['sources'] = {} self.metadata['sources']['lbry_sd_hash'] = sd_hash d.addCallback(set_sd_hash) return d
def _create_sd_blob(self): log.debug('Creating stream descriptor blob') d = publish_sd_blob(self.lbry_file_manager.stream_info_manager, self.session.blob_manager, self.lbry_file.stream_hash) def set_sd_hash(sd_hash): log.debug('stream descriptor hash: %s', sd_hash) if 'sources' not in self.metadata: self.metadata['sources'] = {} self.metadata['sources']['lbry_sd_hash'] = sd_hash d.addCallback(set_sd_hash) return d
def publish_stream(self, name, file_path, bid, metadata): log.info('Starting publish for %s', name) file_name = os.path.basename(file_path) with file_utils.get_read_handle(file_path) as read_handle: stream_hash = yield create_lbry_file(self.session, self.lbry_file_manager, file_name, read_handle) prm = self.session.payment_rate_manager self.lbry_file = yield self.lbry_file_manager.add_lbry_file( stream_hash, prm) sd_hash = yield publish_sd_blob( self.lbry_file_manager.stream_info_manager, self.session.blob_manager, self.lbry_file.stream_hash) if 'sources' not in metadata: metadata['sources'] = {} metadata['sources']['lbry_sd_hash'] = sd_hash metadata['content_type'] = get_content_type(file_path) metadata['ver'] = Metadata.current_version claim_out = yield self.make_claim(name, bid, metadata) self.lbry_file.completed = True yield self.lbry_file.load_file_attributes() yield self.lbry_file.save_status() defer.returnValue(claim_out)