示例#1
0
    def start(self, name, file_path, bid, metadata):
        log.info('Starting publish for %s', name)
        def _show_result():
            log.info("Success! Published %s --> lbry://%s txid: %s nout: %d", 
                      self.file_name, self.publish_name, self.txid, self.nout)
            out = {}
            out['nout'] = self.nout
            out['txid'] = self.txid 
            return defer.succeed(out)

        self.publish_name = name
        self.file_path = file_path
        self.bid_amount = bid
        self.metadata = metadata

        # TODO: we cannot have this sort of code scattered throughout
        #       our code base. Use polymorphism instead
        if os.name == "nt":
            file_mode = 'rb'
        else:
            file_mode = 'r'

        d = self._check_file_path(self.file_path)
        # TODO: ensure that we aren't leaving this resource open
        d.addCallback(lambda _: create_lbry_file(self.session, self.lbry_file_manager,
                                                 self.file_name, open(self.file_path, file_mode)))
        d.addCallback(self.add_to_lbry_files)
        d.addCallback(lambda _: self._create_sd_blob())
        d.addCallback(lambda _: self._claim_name())
        d.addCallback(lambda _: self.set_status())
        d.addCallback(lambda _: self.start_reflector())
        d.addCallbacks(lambda _: _show_result(), self._show_publish_error)
        return d
示例#2
0
    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)
示例#3
0
    def start(self, name, file_path, bid, metadata):
        log.info('Starting publish for %s', name)
        def _show_result():
            log.info("Success! Published %s --> lbry://%s txid: %s", self.file_name, self.publish_name, self.txid)
            return defer.succeed(self.txid)

        self.publish_name = name
        self.file_path = file_path
        self.bid_amount = bid
        self.metadata = metadata

        if os.name == "nt":
            file_mode = 'rb'
        else:
            file_mode = 'r'

        d = self._check_file_path(self.file_path)
        d.addCallback(lambda _: create_lbry_file(self.session, self.lbry_file_manager,
                                                 self.file_name, open(self.file_path, file_mode)))
        d.addCallback(self.add_to_lbry_files)
        d.addCallback(lambda _: self._create_sd_blob())
        d.addCallback(lambda _: self._claim_name())
        d.addCallback(lambda _: self.set_status())
        d.addCallback(lambda _: self.start_reflector())
        d.addCallbacks(lambda _: _show_result(), self._show_publish_error)

        return d
示例#4
0
文件: Publisher.py 项目: DaveA50/lbry
    def start(self, name, file_path, bid, metadata):
        log.info('Starting publish for %s', name)
        def _show_result():
            log.info("Success! Published %s --> lbry://%s txid: %s", self.file_name, self.publish_name, self.txid)
            return defer.succeed(self.txid)

        self.publish_name = name
        self.file_path = file_path
        self.bid_amount = bid
        self.metadata = metadata

        if os.name == "nt":
            file_mode = 'rb'
        else:
            file_mode = 'r'

        d = self._check_file_path(self.file_path)
        d.addCallback(lambda _: create_lbry_file(self.session, self.lbry_file_manager,
                                                 self.file_name, open(self.file_path, file_mode)))
        d.addCallback(self.add_to_lbry_files)
        d.addCallback(lambda _: self._create_sd_blob())
        d.addCallback(lambda _: self._claim_name())
        d.addCallback(lambda _: self.set_status())
        d.addCallback(lambda _: self.start_reflector())
        d.addCallbacks(lambda _: _show_result(), self._show_publish_error)

        return d
示例#5
0
 def create_stream():
     test_file = GenFile(
         53209343, b''.join([chr(i + 5) for i in xrange(0, 64, 6)]))
     return create_lbry_file(self.session,
                             self.lbry_file_manager,
                             "test_file",
                             test_file,
                             suggested_file_name="test_file")
示例#6
0
 def create_stream():
     test_file = GenFile(
         5209343, b''.join([chr(i + 3) for i in xrange(0, 64, 6)]))
     d = create_lbry_file(self.session,
                          self.lbry_file_manager,
                          "test_file",
                          test_file,
                          key="0123456701234567",
                          iv_generator=iv_generator())
     return d
示例#7
0
 def create_stream():
     test_file = GenFile(
         53209343, b''.join([chr(i + 5) for i in xrange(0, 64, 6)]))
     stream_hash = yield create_lbry_file(
         self.session,
         self.lbry_file_manager,
         "test_file",
         test_file,
         suggested_file_name="test_file")
     yield publish_sd_blob(self.stream_info_manager,
                           self.session.blob_manager, stream_hash)
     defer.returnValue(stream_hash)
示例#8
0
    def start(self, name, file_path, bid, metadata):
        log.info('Starting publish for %s', name)

        def _show_result():
            log.info(
                "Success! Published %s --> lbry://%s txid: %s nout: %d",
                self.file_name, self.publish_name, self.txid, self.nout
            )
            return defer.succeed({
                'nout': self.nout,
                'txid': self.txid,
                'claim_id': self.claim_id,
                'fee': self.fee,
            })

        self.publish_name = name
        self.file_path = file_path
        self.bid_amount = bid
        self.metadata = metadata

        # TODO: we cannot have this sort of code scattered throughout
        #       our code base. Use polymorphism instead
        if os.name == "nt":
            file_mode = 'rb'
        else:
            file_mode = 'r'

        d = self._check_file_path(self.file_path)
        # TODO: ensure that we aren't leaving this resource open
        d.addCallback(lambda _: create_lbry_file(self.session, self.lbry_file_manager,
                                                 self.file_name, open(self.file_path, file_mode)))
        d.addCallback(self.add_to_lbry_files)
        d.addCallback(lambda _: self._create_sd_blob())
        d.addCallback(lambda _: self._claim_name())
        d.addCallback(lambda _: self.set_status())
        d.addCallback(lambda _: self.start_reflector())
        d.addCallbacks(
            lambda _: _show_result(),
            errback=log.fail(self._throw_publish_error),
            errbackArgs=(
                "An error occurred publishing %s to %s", self.file_name, self.publish_name)
        )
        return d
示例#9
0
 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)
示例#10
0
文件: test_misc.py 项目: DaveA50/lbry
 def create_stream():
     test_file = GenFile(file_size, b''.join([chr(i) for i in xrange(0, 64, 6)]))
     d = create_lbry_file(session, lbry_file_manager, "test_file", test_file)
     return d
示例#11
0
文件: test_misc.py 项目: DaveA50/lbry
 def create_stream():
     test_file = GenFile(53209343, b''.join([chr(i + 5) for i in xrange(0, 64, 6)]))
     return create_lbry_file(self.session, self.lbry_file_manager, "test_file", test_file,
                             suggested_file_name="test_file")
示例#12
0
文件: test_misc.py 项目: DaveA50/lbry
 def create_stream():
     test_file = GenFile(5209343, b''.join([chr(i + 3) for i in xrange(0, 64, 6)]))
     d = create_lbry_file(self.session, self.lbry_file_manager, "test_file", test_file,
                          key="0123456701234567", iv_generator=iv_generator())
     return d
示例#13
0
文件: test_misc.py 项目: tml/lbry
 def create_stream(self):
     test_file = GenFile(self.file_size, b''.join([chr(i) for i in xrange(0, 64, 6)]))
     d = create_lbry_file(self.session, self.lbry_file_manager, "test_file", test_file)
     return d