Merge pull request #361 from lbryio/analytics-on-startup
Analytics on startup
This commit is contained in:
commit
cc008766ec
39 changed files with 212 additions and 172 deletions
|
@ -5,7 +5,7 @@ import logging
|
|||
from requests import auth
|
||||
from requests_futures import sessions
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.analytics import utils
|
||||
|
||||
|
||||
|
@ -83,6 +83,6 @@ class Api(object):
|
|||
session = sessions.FuturesSession()
|
||||
return cls(
|
||||
session,
|
||||
settings.ANALYTICS_ENDPOINT,
|
||||
utils.deobfuscate(settings.ANALYTICS_TOKEN)
|
||||
conf.settings.ANALYTICS_ENDPOINT,
|
||||
utils.deobfuscate(conf.settings.ANALYTICS_TOKEN)
|
||||
)
|
||||
|
|
|
@ -17,9 +17,18 @@ def get_sd_hash(stream_info):
|
|||
|
||||
|
||||
class Events(object):
|
||||
def __init__(self, context, lbry_id, session_id):
|
||||
def __init__(self, context, lbryid, session_id):
|
||||
"""Contains all of the analytics events that can be sent
|
||||
|
||||
Attributes:
|
||||
context: usually the output of `make_context`
|
||||
lbryid: id unique to this installation. Can be anything, but
|
||||
generally should be base58 encoded.
|
||||
session_id: id for tracking events during this session. Can be
|
||||
anything, but generally should be base58 encoded.
|
||||
"""
|
||||
self.context = context
|
||||
self.lbry_id = lbry_id
|
||||
self.lbryid = lbryid
|
||||
self.session_id = session_id
|
||||
|
||||
def update_context(self, context):
|
||||
|
@ -71,7 +80,7 @@ class Events(object):
|
|||
def _properties(self, event_properties=None):
|
||||
event_properties = event_properties or {}
|
||||
properties = {
|
||||
'lbry_id': self.lbry_id,
|
||||
'lbry_id': self.lbryid,
|
||||
'session_id': self.session_id,
|
||||
}
|
||||
properties.update(event_properties)
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import base58
|
||||
|
||||
from lbrynet.core import looping_call_manager
|
||||
|
||||
from twisted.internet import defer
|
||||
from twisted.internet import task
|
||||
|
||||
from lbrynet.core.system_info import get_platform
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
import constants
|
||||
from api import Api
|
||||
|
@ -26,8 +28,9 @@ class Manager(object):
|
|||
api = Api.new_instance()
|
||||
if events is None:
|
||||
events = Events(
|
||||
make_context(get_platform(), settings.wallet),
|
||||
'not loaded', 'not loaded'
|
||||
make_context(get_platform(), conf.settings.wallet),
|
||||
base58.b58encode(conf.settings.lbryid),
|
||||
conf.settings.session_id,
|
||||
)
|
||||
return cls(api, events, Track())
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import base58
|
||||
import copy
|
||||
import json
|
||||
import logging
|
||||
|
@ -8,9 +9,15 @@ import yaml
|
|||
from appdirs import user_data_dir
|
||||
import envparse
|
||||
|
||||
from lbrynet.core import utils
|
||||
|
||||
|
||||
LBRYCRD_WALLET = 'lbrycrd'
|
||||
LBRYUM_WALLET = 'lbryum'
|
||||
PTC_WALLET = 'ptc'
|
||||
PROTOCOL_PREFIX = "lbry"
|
||||
APP_NAME = "LBRY"
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -42,6 +49,9 @@ else:
|
|||
default_lbryum_dir = os.path.join(os.path.expanduser("~"), ".lbryum")
|
||||
|
||||
|
||||
ICON_PATH = "icons" if platform is WINDOWS else "app.icns"
|
||||
|
||||
|
||||
class Settings(object):
|
||||
"""A collection of configuration settings"""
|
||||
__fixed = []
|
||||
|
@ -218,9 +228,9 @@ class ApplicationSettings(Settings):
|
|||
self.LOG_POST_URL = "https://lbry.io/log-upload"
|
||||
self.CRYPTSD_FILE_EXTENSION = ".cryptsd"
|
||||
self.API_ADDRESS = "lbryapi"
|
||||
self.ICON_PATH = "icons" if platform is WINDOWS else "app.icns"
|
||||
self.APP_NAME = "LBRY"
|
||||
self.PROTOCOL_PREFIX = "lbry"
|
||||
self.ICON_PATH = ICON_PATH
|
||||
self.APP_NAME = APP_NAME
|
||||
self.PROTOCOL_PREFIX = PROTOCOL_PREFIX
|
||||
self.WALLET_TYPES = [LBRYUM_WALLET, LBRYCRD_WALLET]
|
||||
self.SOURCE_TYPES = ['lbry_sd_hash', 'url', 'btih']
|
||||
self.CURRENCIES = {
|
||||
|
@ -360,9 +370,23 @@ def save_settings(path=None):
|
|||
settings_file.write(encoder(to_save))
|
||||
|
||||
|
||||
# TODO: don't load the configuration automatically. The configuration
|
||||
# should be loaded at runtime, not at module import time. Module
|
||||
# import should have no side-effects. This is also bad because
|
||||
# it means that settings are read from the environment even for
|
||||
# tests, which is rarely what you want to happen.
|
||||
settings = Config()
|
||||
settings = None
|
||||
|
||||
|
||||
def initialize_settings():
|
||||
global settings
|
||||
settings = Config()
|
||||
settings.lbryid = get_lbryid()
|
||||
settings.session_id = base58.b58encode(utils.generate_id())
|
||||
|
||||
|
||||
def get_lbryid():
|
||||
lbryid_filename = os.path.join(settings.ensure_data_dir(), "lbryid")
|
||||
if os.path.isfile(lbryid_filename):
|
||||
with open(lbryid_filename, "r") as lbryid_file:
|
||||
return base58.b58decode(lbryid_file.read())
|
||||
else:
|
||||
lbryid = utils.generate_id()
|
||||
with open(lbryid_filename, "w") as lbryid_file:
|
||||
lbryid_file.write(base58.b58encode(lbryid))
|
||||
return lbryid
|
||||
|
|
|
@ -8,7 +8,7 @@ from twisted.internet import interfaces, defer, threads
|
|||
from twisted.protocols.basic import FileSender
|
||||
from twisted.python.failure import Failure
|
||||
from zope.interface import implements
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core.Error import DownloadCanceledError, InvalidDataError
|
||||
from lbrynet.core.cryptoutils import get_lbry_hash_obj
|
||||
|
||||
|
@ -89,7 +89,7 @@ class HashBlob(object):
|
|||
def set_length(self, length):
|
||||
if self.length is not None and length == self.length:
|
||||
return True
|
||||
if self.length is None and 0 <= length <= settings.BLOB_SIZE:
|
||||
if self.length is None and 0 <= length <= conf.settings.BLOB_SIZE:
|
||||
self.length = length
|
||||
return True
|
||||
log.warning("Got an invalid length. Previous length: %s, Invalid length: %s",
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
from lbrynet.core.Strategy import get_default_strategy
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
class BasePaymentRateManager(object):
|
||||
def __init__(self, rate=settings.data_rate, info_rate=settings.min_info_rate):
|
||||
self.min_blob_data_payment_rate = rate
|
||||
self.min_blob_info_payment_rate = info_rate
|
||||
def __init__(self, rate=None, info_rate=None):
|
||||
self.min_blob_data_payment_rate = rate if rate is not None else conf.settings.data_rate
|
||||
self.min_blob_info_payment_rate = (
|
||||
info_rate if info_rate is not None else conf.settings.min_info_rate)
|
||||
|
||||
|
||||
class PaymentRateManager(object):
|
||||
|
@ -36,7 +37,7 @@ class PaymentRateManager(object):
|
|||
|
||||
|
||||
class NegotiatedPaymentRateManager(object):
|
||||
def __init__(self, base, availability_tracker, generous=settings.is_generous_host):
|
||||
def __init__(self, base, availability_tracker, generous=None):
|
||||
"""
|
||||
@param base: a BasePaymentRateManager
|
||||
@param availability_tracker: a BlobAvailabilityTracker
|
||||
|
@ -46,7 +47,7 @@ class NegotiatedPaymentRateManager(object):
|
|||
self.base = base
|
||||
self.points_paid = 0.0
|
||||
self.blob_tracker = availability_tracker
|
||||
self.generous = generous
|
||||
self.generous = generous if generous is not None else conf.settings.is_generous_host
|
||||
self.strategy = get_default_strategy(self.blob_tracker,
|
||||
base_price=self.base.min_blob_data_payment_rate,
|
||||
is_generous=generous)
|
||||
|
|
|
@ -2,7 +2,7 @@ from zope.interface import implementer
|
|||
from decimal import Decimal
|
||||
|
||||
from lbrynet.interfaces import IBlobPriceModel
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
def get_default_price_model(blob_tracker, base_price, **kwargs):
|
||||
|
@ -22,8 +22,9 @@ class MeanAvailabilityWeightedPrice(object):
|
|||
"""
|
||||
implementer(IBlobPriceModel)
|
||||
|
||||
def __init__(self, tracker, base_price=settings.data_rate, alpha=1.0):
|
||||
def __init__(self, tracker, base_price=None, alpha=1.0):
|
||||
self.blob_tracker = tracker
|
||||
base_price = base_price if base_price is not None else conf.settings.data_rate
|
||||
self.base_price = Decimal(base_price)
|
||||
self.alpha = Decimal(alpha)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from zope.interface import implementer
|
||||
from decimal import Decimal
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.interfaces import INegotiationStrategy
|
||||
from lbrynet.core.Offer import Offer
|
||||
from lbrynet.core.PriceModel import MeanAvailabilityWeightedPrice
|
||||
|
@ -16,9 +16,10 @@ class Strategy(object):
|
|||
"""
|
||||
implementer(INegotiationStrategy)
|
||||
|
||||
def __init__(self, price_model, max_rate, min_rate, is_generous=settings.is_generous_host):
|
||||
def __init__(self, price_model, max_rate, min_rate, is_generous=None):
|
||||
self.price_model = price_model
|
||||
self.is_generous = is_generous
|
||||
self.is_generous = (
|
||||
is_generous if is_generous is not None else conf.settings.is_generous_host)
|
||||
self.accepted_offers = {}
|
||||
self.pending_sent_offers = {}
|
||||
self.offers_sent = {}
|
||||
|
@ -104,7 +105,7 @@ class BasicAvailabilityWeightedStrategy(Strategy):
|
|||
def __init__(self, blob_tracker, acceleration=1.25,
|
||||
deceleration=0.9, max_rate=None,
|
||||
min_rate=0.0,
|
||||
is_generous=settings.is_generous_host,
|
||||
is_generous=None,
|
||||
base_price=0.0001, alpha=1.0):
|
||||
price_model = MeanAvailabilityWeightedPrice(
|
||||
blob_tracker, base_price=base_price, alpha=alpha)
|
||||
|
|
|
@ -4,7 +4,7 @@ from decimal import Decimal
|
|||
from twisted.internet import error, defer
|
||||
from twisted.internet.protocol import Protocol, ClientFactory
|
||||
from twisted.python import failure
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core.Error import ConnectionClosedBeforeResponseError, NoResponseError
|
||||
from lbrynet.core.Error import DownloadCanceledError, MisbehavingPeerError
|
||||
from lbrynet.core.Error import RequestCanceledError
|
||||
|
@ -48,7 +48,7 @@ class ClientProtocol(Protocol):
|
|||
self._blob_download_request.write(data)
|
||||
else:
|
||||
self._response_buff += data
|
||||
if len(self._response_buff) > settings.MAX_RESPONSE_INFO_SIZE:
|
||||
if len(self._response_buff) > conf.settings.MAX_RESPONSE_INFO_SIZE:
|
||||
log.warning("Response is too large. Size %s", len(self._response_buff))
|
||||
self.transport.loseConnection()
|
||||
response, extra_data = self._get_valid_response(self._response_buff)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
class ClientRequest(object):
|
||||
|
@ -17,7 +17,7 @@ class ClientBlobRequest(ClientPaidRequest):
|
|||
def __init__(self, request_dict, response_identifier, write_func, finished_deferred,
|
||||
cancel_func, blob):
|
||||
if blob.length is None:
|
||||
max_pay_units = settings.BLOB_SIZE
|
||||
max_pay_units = conf.settings.BLOB_SIZE
|
||||
else:
|
||||
max_pay_units = blob.length
|
||||
ClientPaidRequest.__init__(self, request_dict, response_identifier, max_pay_units)
|
||||
|
|
|
@ -2,7 +2,7 @@ import logging
|
|||
from twisted.internet import defer
|
||||
from zope.interface import implements
|
||||
from lbrynet import interfaces
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core.client.ClientProtocol import ClientProtocolFactory
|
||||
from lbrynet.core.Error import InsufficientFundsError
|
||||
|
||||
|
@ -186,7 +186,7 @@ class ConnectionManager(object):
|
|||
log.debug("Couldn't find a good peer to connect to")
|
||||
return None
|
||||
|
||||
if len(self._peer_connections) < settings.max_connections_per_stream:
|
||||
if len(self._peer_connections) < conf.settings.max_connections_per_stream:
|
||||
ordered_request_creators = self._rank_request_creator_connections()
|
||||
d = get_new_peers(ordered_request_creators)
|
||||
d.addCallback(pick_best_peer)
|
||||
|
|
|
@ -12,7 +12,7 @@ import requests
|
|||
from requests_futures.sessions import FuturesSession
|
||||
|
||||
import lbrynet
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core import utils
|
||||
|
||||
####
|
||||
|
@ -130,7 +130,7 @@ def configure_file_handler(file_name, **kwargs):
|
|||
|
||||
|
||||
def get_loggly_url(token=None, version=None):
|
||||
token = token or utils.deobfuscate(settings.LOGGLY_TOKEN)
|
||||
token = token or utils.deobfuscate(conf.settings.LOGGLY_TOKEN)
|
||||
version = version or lbrynet.__version__
|
||||
return LOGGLY_URL.format(token=token, tag='lbrynet-' + version)
|
||||
|
||||
|
@ -304,7 +304,7 @@ class LogUploader(object):
|
|||
'type': self.get_type(log_type),
|
||||
'log': log_contents
|
||||
}
|
||||
requests.post(settings.LOG_POST_URL, params)
|
||||
requests.post(conf.settings.LOG_POST_URL, params)
|
||||
|
||||
def log_contents(self, exclude_previous):
|
||||
with open(self.log_file) as f:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import binascii
|
||||
import logging
|
||||
from Crypto.Cipher import AES
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core.BlobInfo import BlobInfo
|
||||
|
||||
|
||||
|
@ -66,7 +66,7 @@ class CryptStreamBlobMaker(object):
|
|||
self.length = 0
|
||||
|
||||
def write(self, data):
|
||||
max_bytes_to_write = settings.BLOB_SIZE - self.length - 1
|
||||
max_bytes_to_write = conf.settings.BLOB_SIZE - self.length - 1
|
||||
done = False
|
||||
if max_bytes_to_write <= len(data):
|
||||
num_bytes_to_write = max_bytes_to_write
|
||||
|
|
|
@ -7,7 +7,7 @@ import logging
|
|||
import os
|
||||
from lbrynet.core.StreamDescriptor import PlainStreamDescriptorWriter
|
||||
from lbrynet.cryptstream.CryptStreamCreator import CryptStreamCreator
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbryfile.StreamDescriptor import get_sd_info
|
||||
from lbrynet.core.cryptoutils import get_lbry_hash_obj
|
||||
from twisted.protocols.basic import FileSender
|
||||
|
@ -127,7 +127,7 @@ def create_lbry_file(session, lbry_file_manager, file_name, file_handle, key=Non
|
|||
def make_stream_desc_file(stream_hash):
|
||||
log.debug("creating the stream descriptor file")
|
||||
descriptor_file_path = os.path.join(
|
||||
session.db_dir, file_name + settings.CRYPTSD_FILE_EXTENSION)
|
||||
session.db_dir, file_name + conf.settings.CRYPTSD_FILE_EXTENSION)
|
||||
descriptor_writer = PlainStreamDescriptorWriter(descriptor_file_path)
|
||||
|
||||
d = get_sd_info(lbry_file_manager.stream_info_manager, stream_hash, True)
|
||||
|
|
|
@ -15,7 +15,7 @@ from lbrynet.lbryfilemanager.EncryptedFileStatusReport import EncryptedFileStatu
|
|||
from lbrynet.interfaces import IStreamDownloaderFactory
|
||||
from lbrynet.lbryfile.StreamDescriptor import save_sd_info
|
||||
from lbrynet.reflector import reupload
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -91,9 +91,9 @@ class ManagedEncryptedFileDownloader(EncryptedFileSaver):
|
|||
return d
|
||||
|
||||
def _reupload(self):
|
||||
if not settings.reflector_reupload:
|
||||
if not conf.settings.reflector_reupload:
|
||||
return
|
||||
reflector_server = random.choice(settings.reflector_servers)
|
||||
reflector_server = random.choice(conf.settings.reflector_servers)
|
||||
return reupload.check_and_restore_availability(self, reflector_server)
|
||||
|
||||
def stop(self, err=None, change_status=True):
|
||||
|
|
|
@ -7,7 +7,7 @@ from lbrynet.core.cryptoutils import get_lbry_hash_obj, get_pub_key, sign_with_p
|
|||
from Crypto import Random
|
||||
import binascii
|
||||
import logging
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from twisted.internet import interfaces, defer
|
||||
from twisted.protocols.basic import FileSender
|
||||
from zope.interface import implements
|
||||
|
@ -24,7 +24,7 @@ class LiveStreamCreator(CryptStreamCreator):
|
|||
self.stream_info_manager = stream_info_manager
|
||||
self.delete_after_num = delete_after_num
|
||||
self.secret_pass_phrase = secret_pass_phrase
|
||||
self.file_extension = settings.CRYPTSD_FILE_EXTENSION
|
||||
self.file_extension = conf.settings.CRYPTSD_FILE_EXTENSION
|
||||
self.finished_blob_hashes = {}
|
||||
|
||||
def _save_stream(self):
|
||||
|
|
|
@ -4,7 +4,7 @@ import logging
|
|||
from zope.interface import implements
|
||||
from twisted.internet import defer
|
||||
from twisted.python.failure import Failure
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core.client.ClientRequest import ClientRequest, ClientPaidRequest
|
||||
from lbrynet.lbrylive.LiveBlob import LiveBlobInfo
|
||||
from lbrynet.core.cryptoutils import get_lbry_hash_obj, verify_signature
|
||||
|
@ -137,7 +137,7 @@ class LiveStreamMetadataHandler(object):
|
|||
if count is not None:
|
||||
further_blobs_request['count'] = count
|
||||
else:
|
||||
further_blobs_request['count'] = settings.MAX_BLOB_INFOS_TO_REQUEST
|
||||
further_blobs_request['count'] = conf.settings.MAX_BLOB_INFOS_TO_REQUEST
|
||||
log.debug("Requesting %s blob infos from %s", str(further_blobs_request['count']), str(peer))
|
||||
r_dict = {'further_blobs': further_blobs_request}
|
||||
response_identifier = 'further_blobs'
|
||||
|
|
|
@ -259,14 +259,14 @@ class Daemon(AuthJSONRPCServer):
|
|||
self.db_revision_file = conf.settings.get_db_revision_filename()
|
||||
self.session = None
|
||||
self.uploaded_temp_files = []
|
||||
self._session_id = base58.b58encode(utils.generate_id())
|
||||
self._session_id = conf.settings.session_id
|
||||
# TODO: this should probably be passed into the daemon, or
|
||||
# possibly have the entire log upload functionality taken out
|
||||
# of the daemon, but I don't want to deal with that now
|
||||
self.log_uploader = log_support.LogUploader.load('lbrynet', self.log_file)
|
||||
|
||||
self.analytics_manager = analytics_manager
|
||||
self.lbryid = PENDING_ID
|
||||
self.lbryid = conf.settings.lbryid
|
||||
self.daemon_conf = conf.settings.get_conf_filename()
|
||||
|
||||
self.wallet_user = None
|
||||
|
@ -361,24 +361,20 @@ class Daemon(AuthJSONRPCServer):
|
|||
|
||||
def _load_caches(self):
|
||||
name_cache_filename = os.path.join(self.db_dir, "stream_info_cache.json")
|
||||
lbry_id_filename = os.path.join(self.db_dir, "lbry_id")
|
||||
lbryid_filename = os.path.join(self.db_dir, "lbryid")
|
||||
|
||||
if os.path.isfile(name_cache_filename):
|
||||
with open(name_cache_filename, "r") as name_cache:
|
||||
self.name_cache = json.loads(name_cache.read())
|
||||
log.info("Loaded claim info cache")
|
||||
|
||||
if os.path.isfile(lbry_id_filename):
|
||||
with open(lbry_id_filename, "r") as lbry_id_file:
|
||||
self.lbryid = base58.b58decode(lbry_id_file.read())
|
||||
if os.path.isfile(lbryid_filename):
|
||||
with open(lbryid_filename, "r") as lbryid_file:
|
||||
self.lbryid = base58.b58decode(lbryid_file.read())
|
||||
else:
|
||||
with open(lbry_id_filename, "w") as lbry_id_file:
|
||||
with open(lbryid_filename, "w") as lbryid_file:
|
||||
self.lbryid = utils.generate_id()
|
||||
lbry_id_file.write(base58.b58encode(self.lbryid))
|
||||
|
||||
def _set_events(self):
|
||||
context = analytics.make_context(self._get_platform(), self.wallet_type)
|
||||
self._events = analytics.Events(context, base58.b58encode(self.lbryid), self._session_id)
|
||||
lbryid_file.write(base58.b58encode(self.lbryid))
|
||||
|
||||
def _check_network_connection(self):
|
||||
self.connected_to_internet = utils.check_connection()
|
||||
|
@ -543,9 +539,9 @@ class Daemon(AuthJSONRPCServer):
|
|||
|
||||
def _upload_log(self, log_type=None, exclude_previous=False, force=False):
|
||||
if self.upload_log or force:
|
||||
lbry_id = base58.b58encode(self.lbryid)[:SHORT_ID_LEN]
|
||||
lbryid = base58.b58encode(self.lbryid)[:SHORT_ID_LEN]
|
||||
try:
|
||||
self.log_uploader.upload(exclude_previous, lbry_id, log_type)
|
||||
self.log_uploader.upload(exclude_previous, lbryid, log_type)
|
||||
except requests.RequestException:
|
||||
log.warning('Failed to upload log file')
|
||||
return defer.succeed(None)
|
||||
|
@ -694,16 +690,6 @@ class Daemon(AuthJSONRPCServer):
|
|||
return d
|
||||
|
||||
def _get_analytics(self):
|
||||
context = analytics.make_context(self._get_platform(), self.wallet_type)
|
||||
events_generator = analytics.Events(
|
||||
context, base58.b58encode(self.lbryid), self._session_id)
|
||||
if self.analytics_manager is None:
|
||||
self.analytics_manager = analytics.Manager.new_instance(
|
||||
events=events_generator
|
||||
)
|
||||
else:
|
||||
self.analytics_manager.update_events_generator(events_generator)
|
||||
|
||||
if not self.analytics_manager.is_started:
|
||||
self.analytics_manager.start()
|
||||
self.analytics_manager.register_repeating_metric(
|
||||
|
@ -774,7 +760,8 @@ class Daemon(AuthJSONRPCServer):
|
|||
EncryptedFileStreamType, file_opener_factory)
|
||||
return defer.succeed(None)
|
||||
|
||||
def _download_sd_blob(self, sd_hash, timeout=conf.settings.sd_download_timeout):
|
||||
def _download_sd_blob(self, sd_hash, timeout=None):
|
||||
timeout = timeout if timeout is not None else conf.settings.sd_download_timeout
|
||||
def cb(result):
|
||||
if not r.called:
|
||||
r.callback(result)
|
||||
|
@ -795,12 +782,13 @@ class Daemon(AuthJSONRPCServer):
|
|||
|
||||
return r
|
||||
|
||||
def _download_name(self, name, timeout=conf.settings.download_timeout, download_directory=None,
|
||||
def _download_name(self, name, timeout=None, download_directory=None,
|
||||
file_name=None, stream_info=None, wait_for_write=True):
|
||||
"""
|
||||
Add a lbry file to the file manager, start the download, and return the new lbry file.
|
||||
If it already exists in the file manager, return the existing lbry file
|
||||
"""
|
||||
timeout = timeout if timeout is not None else conf.settings.download_timeout
|
||||
self.analytics_manager.send_download_started(name, stream_info)
|
||||
helper = _DownloadNameHelper(
|
||||
self, name, timeout, download_directory, file_name, wait_for_write)
|
||||
|
@ -2341,12 +2329,12 @@ def get_output_callback(params):
|
|||
|
||||
class _DownloadNameHelper(object):
|
||||
def __init__(self, daemon, name,
|
||||
timeout=conf.settings.download_timeout,
|
||||
timeout=None,
|
||||
download_directory=None, file_name=None,
|
||||
wait_for_write=True):
|
||||
self.daemon = daemon
|
||||
self.name = name
|
||||
self.timeout = timeout
|
||||
self.timeout = timeout if timeout is not None else conf.settings.download_timeout
|
||||
if not download_directory or not os.path.isdir(download_directory):
|
||||
self.download_directory = daemon.download_directory
|
||||
else:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import sys
|
||||
import argparse
|
||||
import json
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrynet_daemon.auth.client import LBRYAPIClient
|
||||
from jsonrpc.common import RPCError
|
||||
|
||||
|
@ -45,7 +45,7 @@ def main():
|
|||
assert status.get('code', False) == "started"
|
||||
except Exception:
|
||||
try:
|
||||
settings.update({'use_auth_http': not settings.use_auth_http})
|
||||
conf.settings.update({'use_auth_http': not conf.settings.use_auth_http})
|
||||
api = LBRYAPIClient.config()
|
||||
status = api.daemon_status()
|
||||
assert status.get('code', False) == "started"
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from lbrynet.core import log_support
|
||||
|
||||
import argparse
|
||||
import logging.handlers
|
||||
import webbrowser
|
||||
|
@ -7,10 +9,9 @@ from jsonrpc.proxy import JSONRPCProxy
|
|||
|
||||
from lbrynet import analytics
|
||||
from lbrynet import conf
|
||||
from lbrynet.core import log_support
|
||||
from lbrynet.core import utils
|
||||
from lbrynet.lbrynet_daemon.DaemonServer import DaemonServer
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -30,12 +31,13 @@ def stop():
|
|||
log.info("Attempt to shut down lbrynet-daemon from command line when daemon isn't running")
|
||||
|
||||
d = defer.Deferred(None)
|
||||
d.addCallback(lambda _: JSONRPCProxy.from_url(settings.API_CONNECTION_STRING).stop())
|
||||
d.addCallback(lambda _: JSONRPCProxy.from_url(conf.settings.API_CONNECTION_STRING).stop())
|
||||
d.addCallbacks(lambda _: _disp_shutdown(), lambda _: _disp_not_running())
|
||||
d.callback(None)
|
||||
|
||||
|
||||
def start():
|
||||
conf.initialize_settings()
|
||||
parser = argparse.ArgumentParser(description="Launch lbrynet-daemon")
|
||||
parser.add_argument("--wallet",
|
||||
help="lbryum or ptc for testing, default lbryum",
|
||||
|
@ -44,8 +46,8 @@ def start():
|
|||
parser.add_argument("--ui", help="path to custom UI folder", default=None)
|
||||
parser.add_argument(
|
||||
"--branch",
|
||||
help='Branch of lbry-web-ui repo to use, defaults to {}'.format(settings.ui_branch),
|
||||
default=settings.ui_branch)
|
||||
help='Branch of lbry-web-ui repo to use, defaults to {}'.format(conf.settings.ui_branch),
|
||||
default=conf.settings.ui_branch)
|
||||
parser.add_argument('--no-launch', dest='launchui', action="store_false")
|
||||
parser.add_argument("--http-auth", dest="useauth", action="store_true")
|
||||
parser.add_argument(
|
||||
|
@ -62,18 +64,19 @@ def start():
|
|||
'should selectively be applied.'))
|
||||
args = parser.parse_args()
|
||||
|
||||
conf.initialize_settings()
|
||||
utils.setup_certs_for_windows()
|
||||
|
||||
conf.update_settings_from_file()
|
||||
update_settings_from_args(args)
|
||||
|
||||
lbrynet_log = settings.get_log_filename()
|
||||
lbrynet_log = conf.settings.get_log_filename()
|
||||
log_support.configure_logging(lbrynet_log, args.logtoconsole, args.verbose)
|
||||
log.debug('Final Settings: %s', settings.get_dict())
|
||||
log.debug('Final Settings: %s', conf.settings.get_dict())
|
||||
|
||||
try:
|
||||
log.debug('Checking for an existing lbrynet daemon instance')
|
||||
JSONRPCProxy.from_url(settings.API_CONNECTION_STRING).is_running()
|
||||
JSONRPCProxy.from_url(conf.settings.API_CONNECTION_STRING).is_running()
|
||||
log.info("lbrynet-daemon is already running")
|
||||
if not args.logtoconsole:
|
||||
print "lbrynet-daemon is already running"
|
||||
|
@ -87,13 +90,13 @@ def start():
|
|||
if not args.logtoconsole and not args.quiet:
|
||||
print "Starting lbrynet-daemon from command line"
|
||||
print "To view activity, view the log file here: " + lbrynet_log
|
||||
print "Web UI is available at http://%s:%i" % (settings.API_INTERFACE, settings.api_port)
|
||||
print "JSONRPC API is available at " + settings.API_CONNECTION_STRING
|
||||
print "Web UI is available at http://%s:%i" % (
|
||||
conf.settings.API_INTERFACE, conf.settings.api_port)
|
||||
print "JSONRPC API is available at " + conf.settings.API_CONNECTION_STRING
|
||||
print "To quit press ctrl-c or call 'stop' via the API"
|
||||
|
||||
if test_internet_connection():
|
||||
analytics_manager = analytics.Manager.new_instance()
|
||||
analytics_manager.send_server_startup()
|
||||
start_server_and_listen(args.launchui, args.useauth, analytics_manager)
|
||||
reactor.run()
|
||||
|
||||
|
@ -114,7 +117,7 @@ def update_settings_from_args(args):
|
|||
to_pass['ui_branch'] = args.branch
|
||||
to_pass['use_auth_http'] = args.useauth
|
||||
to_pass['wallet'] = args.wallet
|
||||
settings.update(to_pass)
|
||||
conf.settings.update(to_pass)
|
||||
|
||||
|
||||
@defer.inlineCallbacks
|
||||
|
@ -126,12 +129,13 @@ def start_server_and_listen(launchui, use_auth, analytics_manager):
|
|||
use_auth: set to true to enable http authentication
|
||||
analytics_manager: to send analytics
|
||||
"""
|
||||
analytics_manager.send_server_startup()
|
||||
try:
|
||||
daemon_server = DaemonServer(analytics_manager)
|
||||
yield daemon_server.start(use_auth)
|
||||
if launchui:
|
||||
yield webbrowser.open(settings.UI_ADDRESS)
|
||||
yield analytics_manager.send_server_startup_success()
|
||||
yield webbrowser.open(conf.settings.UI_ADDRESS)
|
||||
analytics_manager.send_server_startup_success()
|
||||
except Exception as e:
|
||||
log.exception('Failed to startup')
|
||||
analytics_manager.send_server_startup_error(str(e))
|
||||
|
|
|
@ -6,7 +6,7 @@ from twisted.web import server, guard
|
|||
from twisted.internet import defer, reactor, error
|
||||
from twisted.cred import portal
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrynet_daemon.Daemon import Daemon
|
||||
from lbrynet.lbrynet_daemon.Resources import LBRYindex, HostedEncryptedFile, EncryptedFileUpload
|
||||
from lbrynet.lbrynet_daemon.auth.auth import PasswordChecker, HttpPasswordRealm
|
||||
|
@ -23,18 +23,19 @@ class DaemonServer(object):
|
|||
self.analytics_manager = analytics_manager
|
||||
|
||||
def _setup_server(self, use_auth):
|
||||
ui_path = os.path.join(settings.ensure_data_dir(), "lbry-ui", "active")
|
||||
ui_path = os.path.join(conf.settings.ensure_data_dir(), "lbry-ui", "active")
|
||||
self.root = LBRYindex(ui_path)
|
||||
self._api = Daemon(self.root, self.analytics_manager)
|
||||
self.root.putChild("view", HostedEncryptedFile(self._api))
|
||||
self.root.putChild("upload", EncryptedFileUpload(self._api))
|
||||
self.root.putChild(settings.API_ADDRESS, self._api)
|
||||
self.root.putChild(conf.settings.API_ADDRESS, self._api)
|
||||
|
||||
lbrynet_server = server.Site(get_site_base(use_auth, self.root))
|
||||
lbrynet_server.requestFactory = DaemonRequest
|
||||
|
||||
try:
|
||||
reactor.listenTCP(settings.api_port, lbrynet_server, interface=settings.API_INTERFACE)
|
||||
reactor.listenTCP(
|
||||
conf.settings.api_port, lbrynet_server, interface=conf.settings.API_INTERFACE)
|
||||
except error.CannotListenError:
|
||||
log.info('Daemon already running, exiting app')
|
||||
sys.exit(1)
|
||||
|
@ -57,7 +58,7 @@ def get_site_base(use_auth, root):
|
|||
|
||||
|
||||
def create_auth_session(root):
|
||||
pw_path = os.path.join(settings.data_dir, ".api_keys")
|
||||
pw_path = os.path.join(conf.settings.data_dir, ".api_keys")
|
||||
initialize_api_key_file(pw_path)
|
||||
checker = PasswordChecker.load_file(pw_path)
|
||||
realm = HttpPasswordRealm(root)
|
||||
|
|
|
@ -9,7 +9,7 @@ from lbrynet.core.Error import InsufficientFundsError, KeyFeeAboveMaxAllowed
|
|||
from lbrynet.core.StreamDescriptor import download_sd_blob
|
||||
from lbrynet.metadata.Fee import FeeValidator
|
||||
from lbrynet.lbryfilemanager.EncryptedFileDownloader import ManagedEncryptedFileDownloaderFactory
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
INITIALIZING_CODE = 'initializing'
|
||||
DOWNLOAD_METADATA_CODE = 'downloading_metadata'
|
||||
|
@ -34,7 +34,7 @@ class GetStream(object):
|
|||
max_key_fee, data_rate=0.5, timeout=None,
|
||||
download_directory=None, file_name=None):
|
||||
if timeout is None:
|
||||
timeout = settings.download_timeout
|
||||
timeout = conf.settings.download_timeout
|
||||
self.wallet = wallet
|
||||
self.resolved_name = None
|
||||
self.description = None
|
||||
|
|
|
@ -10,7 +10,7 @@ from lbrynet.lbryfile.StreamDescriptor import publish_sd_blob
|
|||
from lbrynet.metadata.Metadata import Metadata
|
||||
from lbrynet.lbryfilemanager.EncryptedFileDownloader import ManagedEncryptedFileDownloader
|
||||
from lbrynet import reflector
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -32,7 +32,7 @@ class Publisher(object):
|
|||
self.nout = None
|
||||
self.stream_hash = None
|
||||
# TODO: this needs to be passed into the constructor
|
||||
reflector_server = random.choice(settings.reflector_servers)
|
||||
reflector_server = random.choice(conf.settings.reflector_servers)
|
||||
self.reflector_server, self.reflector_port = reflector_server[0], reflector_server[1]
|
||||
self.metadata = {}
|
||||
|
||||
|
@ -77,7 +77,7 @@ class Publisher(object):
|
|||
|
||||
def start_reflector(self):
|
||||
# TODO: is self.reflector_server unused?
|
||||
reflector_server = random.choice(settings.reflector_servers)
|
||||
reflector_server = random.choice(conf.settings.reflector_servers)
|
||||
reflector_address, reflector_port = reflector_server[0], reflector_server[1]
|
||||
log.info("Reflecting new publication")
|
||||
factory = reflector.ClientFactory(
|
||||
|
|
|
@ -10,7 +10,7 @@ from appdirs import user_data_dir
|
|||
from twisted.web import server, static, resource
|
||||
from twisted.internet import defer, error
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrynet_daemon.FileStreamer import EncryptedFileStreamer
|
||||
|
||||
# TODO: omg, this code is essentially duplicated in Daemon
|
||||
|
@ -85,10 +85,10 @@ class HostedEncryptedFile(resource.Resource):
|
|||
d = self._api._download_name(request.args['name'][0])
|
||||
d.addCallback(lambda stream: self._make_stream_producer(request, stream))
|
||||
elif request.args['name'][0] in self._api.waiting_on.keys():
|
||||
request.redirect(settings.UI_ADDRESS + "/?watch=" + request.args['name'][0])
|
||||
request.redirect(conf.settings.UI_ADDRESS + "/?watch=" + request.args['name'][0])
|
||||
request.finish()
|
||||
else:
|
||||
request.redirect(settings.UI_ADDRESS)
|
||||
request.redirect(conf.settings.UI_ADDRESS)
|
||||
request.finish()
|
||||
return server.NOT_DONE_YET
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import pkg_resources
|
|||
from twisted.internet import defer
|
||||
from twisted.internet.task import LoopingCall
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrynet_daemon.Resources import NoCacheStaticFile
|
||||
from lbrynet import __version__ as lbrynet_version
|
||||
from lbryum.version import LBRYUM_VERSION as lbryum_version
|
||||
|
@ -22,7 +22,7 @@ log = logging.getLogger(__name__)
|
|||
|
||||
class UIManager(object):
|
||||
def __init__(self, root):
|
||||
self.ui_root = os.path.join(settings.data_dir, "lbry-ui")
|
||||
self.ui_root = os.path.join(conf.settings.data_dir, "lbry-ui")
|
||||
self.active_dir = os.path.join(self.ui_root, "active")
|
||||
self.update_dir = os.path.join(self.ui_root, "update")
|
||||
|
||||
|
@ -61,11 +61,11 @@ class UIManager(object):
|
|||
self.loaded_requirements = None
|
||||
|
||||
def setup(self, branch=None, check_requirements=None, user_specified=None):
|
||||
local_ui_path = user_specified or settings.local_ui_path
|
||||
local_ui_path = user_specified or conf.settings.local_ui_path
|
||||
|
||||
self.branch = branch or settings.ui_branch
|
||||
self.branch = branch or conf.settings.ui_branch
|
||||
self.check_requirements = (check_requirements if check_requirements is not None
|
||||
else settings.check_ui_requirements)
|
||||
else conf.settings.check_ui_requirements)
|
||||
|
||||
if self._check_for_bundled_ui():
|
||||
return defer.succeed(True)
|
||||
|
|
|
@ -6,7 +6,7 @@ import base64
|
|||
import json
|
||||
|
||||
from lbrynet.lbrynet_daemon.auth.util import load_api_keys, APIKey, API_KEY_NAME, get_auth_message
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from jsonrpc.proxy import JSONRPCProxy
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
@ -106,7 +106,7 @@ class AuthAPIClient(object):
|
|||
url=None, login_url=None):
|
||||
|
||||
api_key_name = API_KEY_NAME if not key_name else key_name
|
||||
pw_path = os.path.join(settings.data_dir, ".api_keys") if not pw_path else pw_path
|
||||
pw_path = os.path.join(conf.settings.data_dir, ".api_keys") if not pw_path else pw_path
|
||||
if not key:
|
||||
keys = load_api_keys(pw_path)
|
||||
api_key = keys.get(api_key_name, False)
|
||||
|
@ -115,9 +115,9 @@ class AuthAPIClient(object):
|
|||
if login_url is None:
|
||||
service_url = "http://%s:%s@%s:%i/%s" % (api_key_name,
|
||||
api_key.secret,
|
||||
settings.API_INTERFACE,
|
||||
settings.api_port,
|
||||
settings.API_ADDRESS)
|
||||
conf.settings.API_INTERFACE,
|
||||
conf.settings.api_port,
|
||||
conf.settings.API_ADDRESS)
|
||||
else:
|
||||
service_url = login_url
|
||||
id_count = count
|
||||
|
@ -164,14 +164,14 @@ class AuthAPIClient(object):
|
|||
class LBRYAPIClient(object):
|
||||
@staticmethod
|
||||
def config(service=None, params=None):
|
||||
if settings.use_auth_http:
|
||||
if conf.settings.use_auth_http:
|
||||
if service is None:
|
||||
return AuthAPIClient.config()
|
||||
log.error("Try auth")
|
||||
if params is not None:
|
||||
return AuthAPIClient.config(service=service)(params)
|
||||
return AuthAPIClient.config(service=service)()
|
||||
url = settings.API_CONNECTION_STRING
|
||||
url = conf.settings.API_CONNECTION_STRING
|
||||
if service is None:
|
||||
return JSONRPCProxy.from_url(url)
|
||||
return JSONRPCProxy.from_url(url).call(service, params)
|
||||
|
|
|
@ -9,7 +9,7 @@ from twisted.python.failure import Failure
|
|||
|
||||
from txjsonrpc import jsonrpclib
|
||||
from lbrynet.core.Error import InvalidAuthenticationToken, InvalidHeaderError, SubhandlerError
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrynet_daemon.auth.util import APIKey, get_auth_message
|
||||
from lbrynet.lbrynet_daemon.auth.client import LBRY_SECRET
|
||||
|
||||
|
@ -97,9 +97,10 @@ class AuthJSONRPCServer(AuthorizedBase):
|
|||
NOT_FOUND = 8001
|
||||
FAILURE = 8002
|
||||
|
||||
def __init__(self, use_authentication=settings.use_auth_http):
|
||||
def __init__(self, use_authentication=None):
|
||||
AuthorizedBase.__init__(self)
|
||||
self._use_authentication = use_authentication
|
||||
self._use_authentication = (
|
||||
use_authentication if use_authentication is not None else conf.settings.use_auth_http)
|
||||
self.announced_startup = False
|
||||
self.allowed_during_startup = []
|
||||
self.sessions = {}
|
||||
|
@ -211,8 +212,8 @@ class AuthJSONRPCServer(AuthorizedBase):
|
|||
log.debug(err.getTraceback())
|
||||
|
||||
def _set_headers(self, request, data, update_secret=False):
|
||||
if settings.allowed_origin:
|
||||
request.setHeader("Access-Control-Allow-Origin", settings.allowed_origin)
|
||||
if conf.settings.allowed_origin:
|
||||
request.setHeader("Access-Control-Allow-Origin", conf.settings.allowed_origin)
|
||||
request.setHeader("Content-Type", "text/json")
|
||||
request.setHeader("Content-Length", str(len(data)))
|
||||
if update_secret:
|
||||
|
@ -239,12 +240,12 @@ class AuthJSONRPCServer(AuthorizedBase):
|
|||
def _check_source_of_request(self, source):
|
||||
if source is None:
|
||||
return True
|
||||
if settings.API_INTERFACE == '0.0.0.0':
|
||||
if conf.settings.API_INTERFACE == '0.0.0.0':
|
||||
return True
|
||||
server, port = self.get_server_port(source)
|
||||
return (
|
||||
server == settings.API_INTERFACE and
|
||||
port == settings.api_port)
|
||||
server == conf.settings.API_INTERFACE and
|
||||
port == conf.settings.api_port)
|
||||
|
||||
def get_server_port(self, origin):
|
||||
parsed = urlparse.urlparse(origin)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
from twisted.web.client import Agent, FileBodyProducer, Headers, ResponseDone
|
||||
from twisted.internet import threads, defer, protocol
|
||||
|
@ -47,7 +47,7 @@ def get_body_from_request(path, data):
|
|||
jsondata = FileBodyProducer(StringIO(json.dumps(data)))
|
||||
agent = Agent(reactor)
|
||||
d = agent.request(
|
||||
'POST', settings.pointtrader_server + path,
|
||||
'POST', conf.settings.pointtrader_server + path,
|
||||
Headers({'Content-Type': ['application/json']}), jsondata)
|
||||
d.addCallback(get_body)
|
||||
return d
|
||||
|
|
|
@ -7,7 +7,7 @@ from twisted.internet import reactor
|
|||
|
||||
from lbrynet.lbrynet_daemon import DaemonControl
|
||||
from lbrynet import analytics
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.core import utils
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ class LBRYDaemonApp(AppKit.NSApplication):
|
|||
self.connection = False
|
||||
statusbar = AppKit.NSStatusBar.systemStatusBar()
|
||||
self.statusitem = statusbar.statusItemWithLength_(AppKit.NSVariableStatusItemLength)
|
||||
self.icon = AppKit.NSImage.alloc().initByReferencingFile_(settings.ICON_PATH)
|
||||
self.icon = AppKit.NSImage.alloc().initByReferencingFile_(conf.settings.ICON_PATH)
|
||||
self.icon.setScalesWhenResized_(True)
|
||||
self.icon.setSize_((20, 20))
|
||||
self.statusitem.setImage_(self.icon)
|
||||
|
@ -39,7 +39,7 @@ class LBRYDaemonApp(AppKit.NSApplication):
|
|||
"Quit", "applicationShouldTerminate:", "")
|
||||
self.menubarMenu.addItem_(self.quit)
|
||||
self.statusitem.setMenu_(self.menubarMenu)
|
||||
self.statusitem.setToolTip_(settings.APP_NAME)
|
||||
self.statusitem.setToolTip_(conf.settings.APP_NAME)
|
||||
|
||||
if test_internet_connection():
|
||||
notify("Starting LBRY")
|
||||
|
@ -53,7 +53,7 @@ class LBRYDaemonApp(AppKit.NSApplication):
|
|||
)
|
||||
|
||||
def openui_(self, sender):
|
||||
webbrowser.open(settings.UI_ADDRESS)
|
||||
webbrowser.open(conf.settings.UI_ADDRESS)
|
||||
|
||||
# this code is from the example
|
||||
# https://pythonhosted.org/pyobjc/examples/Cocoa/Twisted/WebServicesTool/index.html
|
||||
|
|
|
@ -14,6 +14,7 @@ log = logging.getLogger()
|
|||
|
||||
|
||||
def main():
|
||||
conf.initialize_settings()
|
||||
conf.update_settings_from_file()
|
||||
log_file = conf.settings.get_log_filename()
|
||||
log_support.configure_logging(log_file, console=True)
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
import os
|
||||
from setuptools import setup
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
APP = [os.path.join('lbrygui', 'main.py')]
|
||||
DATA_FILES = []
|
||||
DATA_FILES.append('app.icns')
|
||||
|
||||
OPTIONS = {
|
||||
'iconfile': settings.ICON_PATH,
|
||||
'iconfile': conf.ICON_PATH,
|
||||
'plist': {
|
||||
'CFBundleIdentifier': 'io.lbry.LBRY',
|
||||
'LSUIElement': True,
|
||||
|
@ -22,7 +22,7 @@ OPTIONS = {
|
|||
|
||||
|
||||
setup(
|
||||
name=settings.APP_NAME,
|
||||
name=conf.APP_NAME,
|
||||
app=APP,
|
||||
options={'py2app': OPTIONS},
|
||||
data_files=DATA_FILES,
|
||||
|
|
|
@ -122,7 +122,7 @@ codesign -vvvv "${DEST}/dist/LBRY.app"
|
|||
rm -rf $tmp
|
||||
mv dist/LBRY.app LBRY.app
|
||||
|
||||
if [ -z ${SKIP_SMG+x} ]; then
|
||||
if [ -z ${SKIP_DMG+x} ]; then
|
||||
rm -rf dist "${NAME}.${VERSION}.dmg"
|
||||
dmgbuild -s dmg_settings.py "LBRY" "${NAME}.${VERSION}.dmg"
|
||||
fi
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from setuptools import setup
|
||||
import os
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
APP = [os.path.join('lbry_uri_handler', 'LBRYURIHandler.py')]
|
||||
DATA_FILES = []
|
||||
|
@ -12,7 +12,7 @@ OPTIONS = {'argv_emulation': True,
|
|||
'CFBundleURLTypes': [
|
||||
{
|
||||
'CFBundleURLTypes': 'LBRYURIHandler',
|
||||
'CFBundleURLSchemes': [settings.PROTOCOL_PREFIX]
|
||||
'CFBundleURLSchemes': [conf.PROTOCOL_PREFIX]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import sys
|
|||
from time import sleep
|
||||
|
||||
from lbrynet.lbrynet_daemon.auth.client import LBRYAPIClient
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
class LBRYURIHandler(object):
|
||||
|
@ -69,9 +69,9 @@ class LBRYURIHandler(object):
|
|||
@staticmethod
|
||||
def open_address(lbry_name):
|
||||
if lbry_name == "lbry" or lbry_name == "" or lbry_name is None:
|
||||
webbrowser.open(settings.UI_ADDRESS)
|
||||
webbrowser.open(conf.settings.UI_ADDRESS)
|
||||
else:
|
||||
webbrowser.open(settings.UI_ADDRESS + "/?show=" + lbry_name)
|
||||
webbrowser.open(conf.settings.UI_ADDRESS + "/?show=" + lbry_name)
|
||||
|
||||
|
||||
def main(args):
|
||||
|
|
|
@ -19,7 +19,7 @@ from lbrynet import conf, analytics
|
|||
from lbrynet.core import log_support
|
||||
from lbrynet.core import utils
|
||||
from lbrynet.lbrynet_daemon import DaemonControl
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from packaging.uri_handler.LBRYURIHandler import LBRYURIHandler
|
||||
|
||||
|
||||
|
@ -240,7 +240,7 @@ def main(lbry_name=None):
|
|||
return SysTrayIcon(icon, hover_text, menu_options, on_quit=stop)
|
||||
|
||||
def openui_(sender):
|
||||
webbrowser.open(settings.UI_ADDRESS)
|
||||
webbrowser.open(conf.settings.UI_ADDRESS)
|
||||
|
||||
def replyToApplicationShouldTerminate_():
|
||||
try:
|
||||
|
@ -252,11 +252,11 @@ def main(lbry_name=None):
|
|||
replyToApplicationShouldTerminate_()
|
||||
|
||||
if getattr(sys, 'frozen', False) and os.name == "nt":
|
||||
icon = os.path.join(os.path.dirname(sys.executable), settings.ICON_PATH, 'lbry16.ico')
|
||||
icon = os.path.join(os.path.dirname(sys.executable), conf.settings.ICON_PATH, 'lbry16.ico')
|
||||
else:
|
||||
icon = os.path.join(settings.ICON_PATH, 'lbry16.ico')
|
||||
icon = os.path.join(conf.settings.ICON_PATH, 'lbry16.ico')
|
||||
|
||||
hover_text = settings.APP_NAME
|
||||
hover_text = conf.settings.APP_NAME
|
||||
menu_options = (('Open', icon, openui_),)
|
||||
|
||||
if not test_internet_connection():
|
||||
|
@ -276,12 +276,13 @@ def main(lbry_name=None):
|
|||
|
||||
if __name__ == '__main__':
|
||||
utils.setup_certs_for_windows()
|
||||
conf.initialize_settings()
|
||||
conf.update_settings_from_file()
|
||||
|
||||
log_file = settings.get_log_filename()
|
||||
log_file = conf.settings.get_log_filename()
|
||||
log_support.configure_logging(log_file, console=True)
|
||||
|
||||
lbry_daemon = JSONRPCProxy.from_url(settings.API_CONNECTION_STRING)
|
||||
lbry_daemon = JSONRPCProxy.from_url(conf.settings.API_CONNECTION_STRING)
|
||||
|
||||
try:
|
||||
daemon_running = lbry_daemon.is_running()
|
||||
|
|
|
@ -2,3 +2,8 @@
|
|||
# and so we need to ensure that it is also
|
||||
# setup for the tests
|
||||
from lbrynet.core import log_support
|
||||
from lbrynet import conf
|
||||
|
||||
|
||||
# TODO: stop doing this, would be better to mock out the settings
|
||||
conf.initialize_settings()
|
||||
|
|
|
@ -11,7 +11,7 @@ import unittest
|
|||
from Crypto.PublicKey import RSA
|
||||
from Crypto import Random
|
||||
from Crypto.Hash import MD5
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbrylive.LiveStreamCreator import FileLiveStreamCreator
|
||||
from lbrynet.lbrylive.LiveStreamMetadataManager import DBLiveStreamMetadataManager
|
||||
from lbrynet.lbrylive.LiveStreamMetadataManager import TempLiveStreamMetadataManager
|
||||
|
@ -117,7 +117,7 @@ class LbryUploader(object):
|
|||
db_dir = "server"
|
||||
os.mkdir(db_dir)
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker,
|
||||
|
@ -222,11 +222,11 @@ def start_lbry_reuploader(sd_hash, kill_event, dead_event,
|
|||
os.mkdir(db_dir)
|
||||
os.mkdir(blob_dir)
|
||||
|
||||
session = Session(settings.data_rate, db_dir=db_dir, lbryid="abcd" + str(n),
|
||||
session = Session(conf.settings.data_rate, db_dir=db_dir, lbryid="abcd" + str(n),
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=None, peer_port=peer_port,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=settings.is_generous_host)
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=conf.settings.is_generous_host)
|
||||
|
||||
stream_info_manager = TempEncryptedFileMetadataManager()
|
||||
|
||||
|
@ -329,10 +329,10 @@ def start_live_server(sd_hash_queue, kill_event, dead_event):
|
|||
db_dir = "server"
|
||||
os.mkdir(db_dir)
|
||||
|
||||
session = Session(settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
session = Session(conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=settings.is_generous_host)
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=conf.settings.is_generous_host)
|
||||
stream_info_manager = DBLiveStreamMetadataManager(session.db_dir, hash_announcer)
|
||||
|
||||
logging.debug("Created the session")
|
||||
|
@ -457,11 +457,11 @@ def start_blob_uploader(blob_hash_queue, kill_event, dead_event, slow, is_genero
|
|||
os.mkdir(db_dir)
|
||||
os.mkdir(blob_dir)
|
||||
|
||||
session = Session(settings.data_rate, db_dir=db_dir, lbryid="efgh",
|
||||
session = Session(conf.settings.data_rate, db_dir=db_dir, lbryid="efgh",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=peer_port,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=settings.is_generous_host)
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=conf.settings.is_generous_host)
|
||||
|
||||
if slow is True:
|
||||
session.rate_limiter.set_ul_limit(2 ** 11)
|
||||
|
@ -635,7 +635,7 @@ class TestTransfer(TestCase):
|
|||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
|
@ -725,7 +725,7 @@ class TestTransfer(TestCase):
|
|||
os.mkdir(db_dir)
|
||||
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer, blob_dir=None,
|
||||
peer_port=5553, use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, dht_node_class=Node
|
||||
|
@ -827,12 +827,12 @@ class TestTransfer(TestCase):
|
|||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker,
|
||||
is_generous=settings.is_generous_host)
|
||||
is_generous=conf.settings.is_generous_host)
|
||||
|
||||
d1 = self.wait_for_hash_from_queue(blob_hash_queue_1)
|
||||
d2 = self.wait_for_hash_from_queue(blob_hash_queue_2)
|
||||
|
@ -905,11 +905,11 @@ class TestTransfer(TestCase):
|
|||
os.mkdir(db_dir)
|
||||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
self.session = Session(conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=5553, use_upnp=False,
|
||||
rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=settings.is_generous_host)
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker, is_generous=conf.settings.is_generous_host)
|
||||
|
||||
self.stream_info_manager = DBEncryptedFileMetadataManager(self.session.db_dir)
|
||||
self.lbry_file_manager = EncryptedFileManager(self.session, self.stream_info_manager, sd_identifier)
|
||||
|
@ -1022,12 +1022,12 @@ class TestTransfer(TestCase):
|
|||
os.mkdir(db_dir)
|
||||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
self.session = Session(conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=None, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
blob_tracker_class=DummyBlobAvailabilityTracker,
|
||||
is_generous=settings.is_generous_host)
|
||||
is_generous=conf.settings.is_generous_host)
|
||||
|
||||
self.stream_info_manager = TempEncryptedFileMetadataManager()
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import shutil
|
|||
from twisted.internet import defer, threads, error
|
||||
from twisted.trial import unittest
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet import lbryfile
|
||||
from lbrynet import reflector
|
||||
from lbrynet.core import BlobManager
|
||||
|
@ -83,7 +83,7 @@ class TestReflector(unittest.TestCase):
|
|||
os.mkdir(db_dir)
|
||||
|
||||
self.session = Session.Session(
|
||||
settings.data_rate,
|
||||
conf.settings.data_rate,
|
||||
db_dir=db_dir,
|
||||
lbryid="abcd",
|
||||
peer_finder=peer_finder,
|
||||
|
|
|
@ -6,7 +6,7 @@ from Crypto.Hash import MD5
|
|||
from twisted.trial.unittest import TestCase
|
||||
from twisted.internet import defer, threads
|
||||
|
||||
from lbrynet.conf import settings
|
||||
from lbrynet import conf
|
||||
from lbrynet.lbryfile.EncryptedFileMetadataManager import TempEncryptedFileMetadataManager
|
||||
from lbrynet.lbryfile.EncryptedFileMetadataManager import DBEncryptedFileMetadataManager
|
||||
from lbrynet.lbryfilemanager.EncryptedFileManager import EncryptedFileManager
|
||||
|
@ -70,7 +70,7 @@ class TestStreamify(TestCase):
|
|||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
|
@ -126,7 +126,7 @@ class TestStreamify(TestCase):
|
|||
os.mkdir(blob_dir)
|
||||
|
||||
self.session = Session(
|
||||
settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
conf.settings.data_rate, db_dir=db_dir, lbryid="abcd",
|
||||
peer_finder=peer_finder, hash_announcer=hash_announcer,
|
||||
blob_dir=blob_dir, peer_port=5553,
|
||||
use_upnp=False, rate_limiter=rate_limiter, wallet=wallet,
|
||||
|
|
Loading…
Reference in a new issue