update daemon and console
-don’t start console if daemon is running, display a message alerting user -move os x data directory to match app -add timeout parameter to get function
This commit is contained in:
parent
36e299b4cf
commit
02bde900d6
4 changed files with 49 additions and 29 deletions
|
@ -36,4 +36,6 @@ APP_NAME = "LBRY"
|
||||||
DEFAULT_WALLET = "lbryum"
|
DEFAULT_WALLET = "lbryum"
|
||||||
|
|
||||||
API_CONNECTION_STRING = "http://%s:%i/%s" % (API_INTERFACE, API_PORT, API_ADDRESS)
|
API_CONNECTION_STRING = "http://%s:%i/%s" % (API_INTERFACE, API_PORT, API_ADDRESS)
|
||||||
PROTOCOL_PREFIX = "lbry"
|
PROTOCOL_PREFIX = "lbry"
|
||||||
|
|
||||||
|
DEFAULT_TIMEOUT = 30
|
|
@ -1,16 +1,21 @@
|
||||||
import logging
|
import logging
|
||||||
from lbrynet.core.Session import LBRYSession
|
|
||||||
import os.path
|
import os.path
|
||||||
import argparse
|
import argparse
|
||||||
import requests
|
import requests
|
||||||
import locale
|
import locale
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
if sys.platform == "darwin":
|
||||||
|
from appdirs import user_data_dir
|
||||||
from yapsy.PluginManager import PluginManager
|
from yapsy.PluginManager import PluginManager
|
||||||
from twisted.internet import defer, threads, stdio, task, error
|
from twisted.internet import defer, threads, stdio, task, error
|
||||||
|
from jsonrpc.proxy import JSONRPCProxy
|
||||||
|
|
||||||
|
from lbrynet.core.Session import LBRYSession
|
||||||
from lbrynet.lbrynet_console.ConsoleControl import ConsoleControl
|
from lbrynet.lbrynet_console.ConsoleControl import ConsoleControl
|
||||||
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
||||||
from lbrynet.lbryfilemanager.LBRYFileManager import LBRYFileManager
|
from lbrynet.lbryfilemanager.LBRYFileManager import LBRYFileManager
|
||||||
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE # , MIN_BLOB_INFO_PAYMENT_RATE
|
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, API_CONNECTION_STRING # , MIN_BLOB_INFO_PAYMENT_RATE
|
||||||
from lbrynet.core.utils import generate_id
|
from lbrynet.core.utils import generate_id
|
||||||
from lbrynet.core.StreamDescriptor import StreamDescriptorIdentifier
|
from lbrynet.core.StreamDescriptor import StreamDescriptorIdentifier
|
||||||
from lbrynet.core.PaymentRateManager import PaymentRateManager
|
from lbrynet.core.PaymentRateManager import PaymentRateManager
|
||||||
|
@ -461,7 +466,6 @@ class LBRYConsole():
|
||||||
|
|
||||||
|
|
||||||
def launch_lbry_console():
|
def launch_lbry_console():
|
||||||
|
|
||||||
from twisted.internet import reactor
|
from twisted.internet import reactor
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Launch a lbrynet console")
|
parser = argparse.ArgumentParser(description="Launch a lbrynet console")
|
||||||
|
@ -529,7 +533,7 @@ def launch_lbry_console():
|
||||||
created_data_dir = False
|
created_data_dir = False
|
||||||
if not args.data_dir:
|
if not args.data_dir:
|
||||||
if sys.platform == "darwin":
|
if sys.platform == "darwin":
|
||||||
data_dir = os.path.join(os.path.expanduser("~"), "Library/Application Support/lbrynet")
|
data_dir = user_data_dir("LBRY")
|
||||||
else:
|
else:
|
||||||
data_dir = os.path.join(os.path.expanduser("~"), ".lbrynet")
|
data_dir = os.path.join(os.path.expanduser("~"), ".lbrynet")
|
||||||
else:
|
else:
|
||||||
|
@ -538,28 +542,35 @@ def launch_lbry_console():
|
||||||
os.mkdir(data_dir)
|
os.mkdir(data_dir)
|
||||||
created_data_dir = True
|
created_data_dir = True
|
||||||
|
|
||||||
|
daemon = JSONRPCProxy.from_url(API_CONNECTION_STRING)
|
||||||
|
try:
|
||||||
|
daemon.is_running()
|
||||||
|
log.info("Attempt to start lbrynet-console while lbrynet-daemon is running")
|
||||||
|
print "lbrynet-daemon is running, you must turn it off before using lbrynet-console"
|
||||||
|
print "If you're running the app, quit before starting lbrynet-console"
|
||||||
|
print "If you're running lbrynet-daemon in a terminal, run 'stop-lbrynet-daemon' to turn it off"
|
||||||
|
|
||||||
log_format = "(%(asctime)s)[%(filename)s:%(lineno)s] %(funcName)s(): %(message)s"
|
except:
|
||||||
formatter = logging.Formatter(log_format)
|
log_format = "(%(asctime)s)[%(filename)s:%(lineno)s] %(funcName)s(): %(message)s"
|
||||||
|
formatter = logging.Formatter(log_format)
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
file_handler = logging.FileHandler(os.path.join(data_dir, "console.log"))
|
file_handler = logging.FileHandler(os.path.join(data_dir, "console.log"))
|
||||||
file_handler.setFormatter(formatter)
|
file_handler.setFormatter(formatter)
|
||||||
file_handler.addFilter(logging.Filter("lbrynet"))
|
file_handler.addFilter(logging.Filter("lbrynet"))
|
||||||
logger.addHandler(file_handler)
|
logger.addHandler(file_handler)
|
||||||
|
|
||||||
console = LBRYConsole(peer_port, dht_node_port, bootstrap_nodes, fake_wallet=args.fake_wallet,
|
|
||||||
lbrycrd_conf=args.lbrycrd_wallet_conf, lbrycrd_dir=args.lbrycrd_wallet_dir,
|
|
||||||
use_upnp=not args.disable_upnp, data_dir=data_dir,
|
|
||||||
created_data_dir=created_data_dir, lbrycrdd_path=args.lbrycrdd_path)
|
|
||||||
|
|
||||||
d = task.deferLater(reactor, 0, console.start)
|
console = LBRYConsole(peer_port, dht_node_port, bootstrap_nodes, fake_wallet=args.fake_wallet,
|
||||||
|
lbrycrd_conf=args.lbrycrd_wallet_conf, lbrycrd_dir=args.lbrycrd_wallet_dir,
|
||||||
|
use_upnp=not args.disable_upnp, data_dir=data_dir,
|
||||||
|
created_data_dir=created_data_dir, lbrycrdd_path=args.lbrycrdd_path)
|
||||||
|
|
||||||
d.addErrback(lambda _: reactor.stop())
|
d = task.deferLater(reactor, 0, console.start)
|
||||||
|
d.addErrback(lambda _: reactor.stop())
|
||||||
reactor.addSystemEventTrigger('before', 'shutdown', console.shut_down)
|
reactor.addSystemEventTrigger('before', 'shutdown', console.shut_down)
|
||||||
reactor.run()
|
reactor.run()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
launch_lbry_console()
|
launch_lbry_console()
|
||||||
|
|
|
@ -35,7 +35,7 @@ from lbrynet.lbrynet_daemon.LBRYPublisher import Publisher
|
||||||
from lbrynet.core.utils import generate_id
|
from lbrynet.core.utils import generate_id
|
||||||
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
from lbrynet.lbrynet_console.LBRYSettings import LBRYSettings
|
||||||
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, DEFAULT_MAX_SEARCH_RESULTS, KNOWN_DHT_NODES, DEFAULT_MAX_KEY_FEE
|
from lbrynet.conf import MIN_BLOB_DATA_PAYMENT_RATE, DEFAULT_MAX_SEARCH_RESULTS, KNOWN_DHT_NODES, DEFAULT_MAX_KEY_FEE
|
||||||
from lbrynet.conf import API_CONNECTION_STRING, API_PORT, API_ADDRESS
|
from lbrynet.conf import API_CONNECTION_STRING, API_PORT, API_ADDRESS, DEFAULT_TIMEOUT
|
||||||
from lbrynet.core.StreamDescriptor import StreamDescriptorIdentifier, download_sd_blob
|
from lbrynet.core.StreamDescriptor import StreamDescriptorIdentifier, download_sd_blob
|
||||||
from lbrynet.core.Session import LBRYSession
|
from lbrynet.core.Session import LBRYSession
|
||||||
from lbrynet.core.PTCWallet import PTCWallet
|
from lbrynet.core.PTCWallet import PTCWallet
|
||||||
|
@ -540,7 +540,7 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
||||||
self.sd_identifier.add_stream_downloader_factory(LBRYFileStreamType, downloader_factory)
|
self.sd_identifier.add_stream_downloader_factory(LBRYFileStreamType, downloader_factory)
|
||||||
return defer.succeed(True)
|
return defer.succeed(True)
|
||||||
|
|
||||||
def _download_name(self, name):
|
def _download_name(self, name, timeout=DEFAULT_TIMEOUT):
|
||||||
def _disp_file(f):
|
def _disp_file(f):
|
||||||
file_path = os.path.join(self.download_directory, f.file_name)
|
file_path = os.path.join(self.download_directory, f.file_name)
|
||||||
log.info("[" + str(datetime.now()) + "] Already downloaded: " + str(f.stream_hash) + " --> " + file_path)
|
log.info("[" + str(datetime.now()) + "] Already downloaded: " + str(f.stream_hash) + " --> " + file_path)
|
||||||
|
@ -553,7 +553,7 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
||||||
|
|
||||||
d = self.session.wallet.get_stream_info_for_name(name)
|
d = self.session.wallet.get_stream_info_for_name(name)
|
||||||
stream = GetStream(self.sd_identifier, self.session, self.session.wallet, self.lbry_file_manager,
|
stream = GetStream(self.sd_identifier, self.session, self.session.wallet, self.lbry_file_manager,
|
||||||
max_key_fee=self.max_key_fee, data_rate=self.data_rate)
|
max_key_fee=self.max_key_fee, data_rate=self.data_rate, timeout=timeout)
|
||||||
d.addCallback(_disp)
|
d.addCallback(_disp)
|
||||||
d.addCallback(lambda stream_info: stream.start(stream_info))
|
d.addCallback(lambda stream_info: stream.start(stream_info))
|
||||||
d.addCallback(lambda _: self._path_from_name(name))
|
d.addCallback(lambda _: self._path_from_name(name))
|
||||||
|
@ -837,8 +837,11 @@ class LBRYDaemon(jsonrpc.JSONRPC):
|
||||||
"""
|
"""
|
||||||
params = Bunch(p)
|
params = Bunch(p)
|
||||||
|
|
||||||
|
if 'timeout' not in p.keys():
|
||||||
|
params.timeout = DEFAULT_TIMEOUT
|
||||||
|
|
||||||
if params.name:
|
if params.name:
|
||||||
d = self._download_name(params.name)
|
d = self._download_name(params.name, timeout=params.timeout)
|
||||||
d.addCallbacks(lambda message: self._render_response(message, OK_CODE),
|
d.addCallbacks(lambda message: self._render_response(message, OK_CODE),
|
||||||
lambda err: self._render_response('error', NOT_FOUND))
|
lambda err: self._render_response('error', NOT_FOUND))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,20 +1,23 @@
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from twisted.internet import defer
|
from twisted.internet import defer
|
||||||
from twisted.internet.task import LoopingCall
|
from twisted.internet.task import LoopingCall
|
||||||
|
|
||||||
from lbrynet.core.Error import InvalidStreamInfoError, InsufficientFundsError
|
from lbrynet.core.Error import InvalidStreamInfoError, InsufficientFundsError
|
||||||
from lbrynet.core.PaymentRateManager import PaymentRateManager
|
from lbrynet.core.PaymentRateManager import PaymentRateManager
|
||||||
from lbrynet.core.StreamDescriptor import download_sd_blob
|
from lbrynet.core.StreamDescriptor import download_sd_blob
|
||||||
from lbrynet.lbryfilemanager.LBRYFileDownloader import ManagedLBRYFileDownloaderFactory
|
from lbrynet.lbryfilemanager.LBRYFileDownloader import ManagedLBRYFileDownloaderFactory
|
||||||
|
from lbrynet.conf import DEFAULT_TIMEOUT
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class GetStream(object):
|
class GetStream(object):
|
||||||
def __init__(self, sd_identifier, session, wallet, lbry_file_manager, max_key_fee, pay_key=True, data_rate=0.5,
|
def __init__(self, sd_identifier, session, wallet, lbry_file_manager, max_key_fee, pay_key=True, data_rate=0.5,
|
||||||
timeout=30):
|
timeout=DEFAULT_TIMEOUT):
|
||||||
self.wallet = wallet
|
self.wallet = wallet
|
||||||
self.resolved_name = None
|
self.resolved_name = None
|
||||||
self.description = None
|
self.description = None
|
||||||
|
@ -106,8 +109,9 @@ class GetStream(object):
|
||||||
else:
|
else:
|
||||||
d = defer.Deferred()
|
d = defer.Deferred()
|
||||||
|
|
||||||
|
downloader.start()
|
||||||
|
|
||||||
self.download_path = os.path.join(downloader.download_directory, downloader.file_name)
|
self.download_path = os.path.join(downloader.download_directory, downloader.file_name)
|
||||||
d.addCallback(lambda _: downloader.start())
|
|
||||||
d.addCallback(lambda _: log.info("Downloading " + str(self.stream_hash) + " --> " + str(self.download_path)))
|
d.addCallback(lambda _: log.info("Downloading " + str(self.stream_hash) + " --> " + str(self.download_path)))
|
||||||
|
|
||||||
return d
|
return d
|
||||||
|
|
Loading…
Add table
Reference in a new issue