From 900d3ad01d12ca5e39783eaac79802324efb8961 Mon Sep 17 00:00:00 2001 From: Job Evers-Meltzer Date: Wed, 27 Jul 2016 13:12:20 -0500 Subject: [PATCH] Fixes errback not being callable Small code refactoring to make it more obvious what both the callback and errback are doing --- lbrynet/lbrynet_daemon/LBRYDaemon.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lbrynet/lbrynet_daemon/LBRYDaemon.py b/lbrynet/lbrynet_daemon/LBRYDaemon.py index 2408f855b..e5ced6588 100644 --- a/lbrynet/lbrynet_daemon/LBRYDaemon.py +++ b/lbrynet/lbrynet_daemon/LBRYDaemon.py @@ -609,12 +609,27 @@ class LBRYDaemon(jsonrpc.JSONRPC): d.addCallback(lambda _: self._get_lbry_file("name", name, return_json=False)) d.addCallback(lambda l: _start_file(l) if l.stopped else "LBRY file was already running") + def _process_lbry_file(name, lbry_file): + ready_to_start = ( + self.pending_claims[name] == lbry_file['txid'] and + not isinstance(lbry_file['metadata'], str) + ) + if ready_to_start: + _start_file(name) + else: + re_add_to_pending_claims(name) + + def re_add_to_pending_claims(name): + self._add_to_pending_claims(name, self.pending_claims.pop(name)), + for name in self.pending_claims: log.info("Checking if new claim for lbry://%s is confirmed" % name) d = self._resolve_name(name, force_refresh=True) d.addCallback(lambda _: self._get_lbry_file_by_uri(name)) - d.addCallbacks(lambda lbry_file: _start_file(name) if self.pending_claims[name] == lbry_file['txid'] and not isinstance(lbry_file['metadata'], str) else self._add_to_pending_claims(name, self.pending_claims.pop(name)), - self._add_to_pending_claims(name, self.pending_claims.pop(name))) + d.addCallbacks( + lambda lbry_file: _process_lbry_file(name, lbry_file), + lambda _: re_add_to_pending_claims(name) + ) def _start_server(self): if self.peer_port is not None: