forked from LBRYCommunity/lbry-sdk
Merge branch 'lbcpatience' into development
This commit is contained in:
commit
06a1bdbcba
5 changed files with 53 additions and 6 deletions
|
@ -50,6 +50,10 @@ class LBRYWallet(object):
|
||||||
"""This class implements the LBRYWallet interface for the LBRYcrd payment system"""
|
"""This class implements the LBRYWallet interface for the LBRYcrd payment system"""
|
||||||
implements(ILBRYWallet)
|
implements(ILBRYWallet)
|
||||||
|
|
||||||
|
_FIRST_RUN_UNKNOWN = 0
|
||||||
|
_FIRST_RUN_YES = 1
|
||||||
|
_FIRST_RUN_NO = 2
|
||||||
|
|
||||||
def __init__(self, db_dir):
|
def __init__(self, db_dir):
|
||||||
|
|
||||||
self.db_dir = db_dir
|
self.db_dir = db_dir
|
||||||
|
@ -70,6 +74,7 @@ class LBRYWallet(object):
|
||||||
self._manage_count = 0
|
self._manage_count = 0
|
||||||
self._balance_refresh_time = 3
|
self._balance_refresh_time = 3
|
||||||
self._batch_count = 20
|
self._batch_count = 20
|
||||||
|
self._first_run = self._FIRST_RUN_UNKNOWN
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
|
|
||||||
|
@ -419,6 +424,19 @@ class LBRYWallet(object):
|
||||||
def get_available_balance(self):
|
def get_available_balance(self):
|
||||||
return float(self.wallet_balance - self.total_reserved_points)
|
return float(self.wallet_balance - self.total_reserved_points)
|
||||||
|
|
||||||
|
def is_first_run(self):
|
||||||
|
if self._first_run == self._FIRST_RUN_UNKNOWN:
|
||||||
|
d = self._check_first_run()
|
||||||
|
|
||||||
|
def set_first_run(is_first):
|
||||||
|
self._first_run = self._FIRST_RUN_YES if is_first else self._FIRST_RUN_NO
|
||||||
|
|
||||||
|
d.addCallback(set_first_run)
|
||||||
|
else:
|
||||||
|
d = defer.succeed(None)
|
||||||
|
d.addCallback(lambda _: self._first_run == self._FIRST_RUN_YES)
|
||||||
|
return d
|
||||||
|
|
||||||
def _get_status_of_claim(self, txid, name, sd_hash):
|
def _get_status_of_claim(self, txid, name, sd_hash):
|
||||||
d = self.get_claims_from_tx(txid)
|
d = self.get_claims_from_tx(txid)
|
||||||
|
|
||||||
|
@ -534,7 +552,7 @@ class LBRYWallet(object):
|
||||||
def get_name_claims(self):
|
def get_name_claims(self):
|
||||||
return defer.fail(NotImplementedError())
|
return defer.fail(NotImplementedError())
|
||||||
|
|
||||||
def check_first_run(self):
|
def _check_first_run(self):
|
||||||
return defer.fail(NotImplementedError())
|
return defer.fail(NotImplementedError())
|
||||||
|
|
||||||
def _get_raw_tx(self, txid):
|
def _get_raw_tx(self, txid):
|
||||||
|
@ -614,7 +632,7 @@ class LBRYcrdWallet(LBRYWallet):
|
||||||
settings["rpc_port"] = int(l[8:].rstrip('\n'))
|
settings["rpc_port"] = int(l[8:].rstrip('\n'))
|
||||||
return settings
|
return settings
|
||||||
|
|
||||||
def check_first_run(self):
|
def _check_first_run(self):
|
||||||
d = self.get_balance()
|
d = self.get_balance()
|
||||||
d.addCallback(lambda bal: threads.deferToThread(self._get_num_addresses_rpc) if bal == 0 else 2)
|
d.addCallback(lambda bal: threads.deferToThread(self._get_num_addresses_rpc) if bal == 0 else 2)
|
||||||
d.addCallback(lambda num_addresses: True if num_addresses <= 1 else False)
|
d.addCallback(lambda num_addresses: True if num_addresses <= 1 else False)
|
||||||
|
@ -996,7 +1014,7 @@ class LBRYumWallet(LBRYWallet):
|
||||||
func = getattr(self.cmd_runner, cmd.name)
|
func = getattr(self.cmd_runner, cmd.name)
|
||||||
return threads.deferToThread(func)
|
return threads.deferToThread(func)
|
||||||
|
|
||||||
def check_first_run(self):
|
def _check_first_run(self):
|
||||||
return defer.succeed(self.first_run)
|
return defer.succeed(self.first_run)
|
||||||
|
|
||||||
def _get_raw_tx(self, txid):
|
def _get_raw_tx(self, txid):
|
||||||
|
|
|
@ -783,6 +783,9 @@ class AddStream(CommandHandler):
|
||||||
d.addCallback(get_time_behind_blockchain)
|
d.addCallback(get_time_behind_blockchain)
|
||||||
d.addCallback(self._show_time_behind_blockchain_download)
|
d.addCallback(self._show_time_behind_blockchain_download)
|
||||||
d.addErrback(self._log_recent_blockchain_time_error_download)
|
d.addErrback(self._log_recent_blockchain_time_error_download)
|
||||||
|
d.addCallback(lambda _: self.wallet.is_first_run())
|
||||||
|
d.addCallback(self._show_first_run_insufficient_funds)
|
||||||
|
d.addErrback(self._log_first_run_check_error)
|
||||||
else:
|
else:
|
||||||
log.error("An unexpected error has caused the download to stop: %s" % err.getTraceback())
|
log.error("An unexpected error has caused the download to stop: %s" % err.getTraceback())
|
||||||
log_file = get_log_file()
|
log_file = get_log_file()
|
||||||
|
@ -803,6 +806,16 @@ class AddStream(CommandHandler):
|
||||||
def _log_recent_blockchain_time_error_download(self, err):
|
def _log_recent_blockchain_time_error_download(self, err):
|
||||||
log.error("An error occurred trying to look up the most recent blocktime: %s", err.getTraceback())
|
log.error("An error occurred trying to look up the most recent blocktime: %s", err.getTraceback())
|
||||||
|
|
||||||
|
def _show_first_run_insufficient_funds(self, is_first_run):
|
||||||
|
if is_first_run:
|
||||||
|
self.console.sendLine("\nThis appears to be the first time you have run LBRY. It can take\n"
|
||||||
|
"a few minutes for your testing LBC to show up. If you haven't\n"
|
||||||
|
"received them after a few minutes, please let us know.\n\n"
|
||||||
|
"Thank you for your patience.\n\n")
|
||||||
|
|
||||||
|
def _log_first_run_check_error(self, err):
|
||||||
|
log.error("An error occurred checking if this was the first run: %s", err.getTraceback())
|
||||||
|
|
||||||
|
|
||||||
class AddStreamFromSD(AddStream):
|
class AddStreamFromSD(AddStream):
|
||||||
#prompt_description = "Add a stream from a stream descriptor file"
|
#prompt_description = "Add a stream from a stream descriptor file"
|
||||||
|
@ -849,6 +862,9 @@ class AddStreamFromHash(AddStream):
|
||||||
d.addCallback(get_time_behind_blockchain)
|
d.addCallback(get_time_behind_blockchain)
|
||||||
d.addCallback(self._show_time_behind_blockchain_download)
|
d.addCallback(self._show_time_behind_blockchain_download)
|
||||||
d.addErrback(self._log_recent_blockchain_time_error_download)
|
d.addErrback(self._log_recent_blockchain_time_error_download)
|
||||||
|
d.addCallback(lambda _: self.wallet.is_first_run())
|
||||||
|
d.addCallback(self._show_first_run_insufficient_funds)
|
||||||
|
d.addErrback(self._log_first_run_check_error)
|
||||||
d.addCallback(lambda _: self.console.sendLine("\n"))
|
d.addCallback(lambda _: self.console.sendLine("\n"))
|
||||||
d.chainDeferred(self.finished_deferred)
|
d.chainDeferred(self.finished_deferred)
|
||||||
return
|
return
|
||||||
|
@ -1857,6 +1873,16 @@ class Publish(CommandHandler):
|
||||||
def _log_best_blocktime_error(self, err):
|
def _log_best_blocktime_error(self, err):
|
||||||
log.error("An error occurred checking the best time of the blockchain: %s", err.getTraceback())
|
log.error("An error occurred checking the best time of the blockchain: %s", err.getTraceback())
|
||||||
|
|
||||||
|
def _show_first_run_insufficient_funds(self, is_first_run):
|
||||||
|
if is_first_run:
|
||||||
|
self.console.sendLine("\nThis appears to be the first time you have run LBRY. It can take\n"
|
||||||
|
"a few minutes for your testing LBC to show up. If you haven't\n"
|
||||||
|
"received them after a few minutes, please let us know.\n\n"
|
||||||
|
"Thank you for your patience.\n\n")
|
||||||
|
|
||||||
|
def _log_first_run_check_error(self, err):
|
||||||
|
log.error("An error occurred checking if this was the first run: %s", err.getTraceback())
|
||||||
|
|
||||||
def _show_publish_error(self, err):
|
def _show_publish_error(self, err):
|
||||||
message = "An error occurred publishing %s to %s. Error: %s."
|
message = "An error occurred publishing %s to %s. Error: %s."
|
||||||
if err.check(InsufficientFundsError):
|
if err.check(InsufficientFundsError):
|
||||||
|
@ -1864,6 +1890,9 @@ class Publish(CommandHandler):
|
||||||
d.addCallback(get_time_behind_blockchain)
|
d.addCallback(get_time_behind_blockchain)
|
||||||
d.addCallback(self._show_time_behind_blockchain)
|
d.addCallback(self._show_time_behind_blockchain)
|
||||||
d.addErrback(self._log_best_blocktime_error)
|
d.addErrback(self._log_best_blocktime_error)
|
||||||
|
d.addCallback(lambda _: self.wallet.is_first_run())
|
||||||
|
d.addCallback(self._show_first_run_insufficient_funds)
|
||||||
|
d.addErrback(self._log_first_run_check_error)
|
||||||
error_message = "Insufficient funds"
|
error_message = "Insufficient funds"
|
||||||
else:
|
else:
|
||||||
d = defer.succeed(True)
|
d = defer.succeed(True)
|
||||||
|
|
|
@ -253,7 +253,7 @@ class LBRYConsole():
|
||||||
return dl
|
return dl
|
||||||
|
|
||||||
def check_first_run(self):
|
def check_first_run(self):
|
||||||
d = self.session.wallet.check_first_run()
|
d = self.session.wallet.is_first_run()
|
||||||
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
|
@ -460,7 +460,7 @@ class LBRYDaemon(xmlrpc.XMLRPC):
|
||||||
return dl
|
return dl
|
||||||
|
|
||||||
def _check_first_run(self):
|
def _check_first_run(self):
|
||||||
d = self.session.wallet.check_first_run()
|
d = self.session.wallet.is_first_run()
|
||||||
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
|
@ -362,7 +362,7 @@ class LBRYDownloader(object):
|
||||||
self.sd_identifier.add_stream_downloader_factory(LBRYFileStreamType, file_opener_factory)
|
self.sd_identifier.add_stream_downloader_factory(LBRYFileStreamType, file_opener_factory)
|
||||||
|
|
||||||
def check_first_run(self):
|
def check_first_run(self):
|
||||||
d = self.session.wallet.check_first_run()
|
d = self.session.wallet.is_first_run()
|
||||||
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
d.addCallback(lambda is_first_run: self._do_first_run() if is_first_run else 0.0)
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue