From e0ff3171d874f3417febd08b6881ca79229bc671 Mon Sep 17 00:00:00 2001 From: Zestyr Date: Sun, 18 Jun 2017 04:21:33 +0200 Subject: [PATCH 1/8] Fix default directories --- lbrynet/conf.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/lbrynet/conf.py b/lbrynet/conf.py index 0047a498c..6839a0ca2 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -2,10 +2,11 @@ import base58 import json import logging import os +import re import sys import yaml import envparse -from appdirs import user_data_dir +from appdirs import user_data_dir, user_config_dir from lbrynet.core import utils log = logging.getLogger(__name__) @@ -43,25 +44,34 @@ settings_encoders = { '.yml': yaml.safe_dump } -if sys.platform.startswith('darwin'): +if 'darwin' in sys.platform: platform = DARWIN - default_download_directory = os.path.join(os.path.expanduser('~'), 'Downloads') + default_download_directory = os.path.expanduser('~/Downloads') default_data_dir = user_data_dir('LBRY') - default_lbryum_dir = os.path.join(os.path.expanduser('~'), '.lbryum') -elif sys.platform.startswith('win'): + default_lbryum_dir = os.path.expanduser('~/.lbryum') +elif 'nt' in sys.platform: platform = WINDOWS from lbrynet.winhelpers.knownpaths import get_path, FOLDERID, UserHandle default_download_directory = get_path(FOLDERID.Downloads, UserHandle.current) - default_data_dir = os.path.join( - get_path(FOLDERID.RoamingAppData, UserHandle.current), 'lbrynet') - default_lbryum_dir = os.path.join( - get_path(FOLDERID.RoamingAppData, UserHandle.current), 'lbryum') + default_data_dir = user_data_dir('lbrynet', 'LBRY', roaming=True) + default_lbryum_dir = user_data_dir('lbryum', 'LBRY', roaming=True) else: platform = LINUX - default_download_directory = os.path.join(os.path.expanduser('~'), 'Downloads') - default_data_dir = os.path.join(os.path.expanduser('~'), '.lbrynet') - default_lbryum_dir = os.path.join(os.path.expanduser('~'), '.lbryum') + + try: + with open(os.path.join(user_config_dir(), "/user-dirs.dirs"), 'r') as xdg: + down_dir = re.search(r'XDG_DOWNLOAD_DIR=(.+)', xdg.read()).group(1) + down_dir = re.sub('\$HOME', os.getenv('HOME'), down_dir) + default_download_directory = re.sub('\"', "", down_dir) + except: + default_download_directory = os.getenv('XDG_DOWNLOAD_DIR') + finally: + if not default_download_directory: + default_download_directory = os.path.join(os.getenv('HOME'), 'Downloads') + + default_data_dir = user_data_dir('LBRY') + default_lbryum_dir = user_config_dir('LBRY') ICON_PATH = 'icons' if platform is WINDOWS else 'app.icns' From 5db5d20f77e7ebfcbec9a8bc2da6c2989c861253 Mon Sep 17 00:00:00 2001 From: Zestyr Date: Sun, 18 Jun 2017 06:48:12 +0200 Subject: [PATCH 2/8] Remove duplicated legacy code for creating directories --- lbrynet/lbrynet_daemon/Downloader.py | 3 --- lbrynet/lbrynet_daemon/FileStreamer.py | 14 +------------- lbrynet/lbrynet_daemon/Resources.py | 10 ---------- .../lbrynet_daemon/daemon_scripts/Autofetcher.py | 12 ++---------- 4 files changed, 3 insertions(+), 36 deletions(-) diff --git a/lbrynet/lbrynet_daemon/Downloader.py b/lbrynet/lbrynet_daemon/Downloader.py index bec8a2667..036b791ca 100644 --- a/lbrynet/lbrynet_daemon/Downloader.py +++ b/lbrynet/lbrynet_daemon/Downloader.py @@ -64,7 +64,6 @@ class GetStream(object): # fired after the metadata and the first data blob have been downloaded self.data_downloading_deferred = defer.Deferred(None) - @property def download_path(self): return os.path.join(self.download_directory, self.downloader.file_name) @@ -215,7 +214,6 @@ class GetStream(object): safe_stop(self.checker) raise - try: yield self.data_downloading_deferred except Exception as err: @@ -224,4 +222,3 @@ class GetStream(object): raise defer.returnValue((self.downloader, self.finished_deferred)) - diff --git a/lbrynet/lbrynet_daemon/FileStreamer.py b/lbrynet/lbrynet_daemon/FileStreamer.py index 4f8c4db94..bff4926ad 100644 --- a/lbrynet/lbrynet_daemon/FileStreamer.py +++ b/lbrynet/lbrynet_daemon/FileStreamer.py @@ -1,24 +1,14 @@ import logging -import os -import sys import mimetypes -from appdirs import user_data_dir from zope.interface import implements from twisted.internet import defer, error, interfaces, abstract, task, reactor -# TODO: omg, this code is essentially duplicated in Daemon -if sys.platform != "darwin": - data_dir = os.path.join(os.path.expanduser("~"), ".lbrynet") -else: - data_dir = user_data_dir("LBRY") -if not os.path.isdir(data_dir): - os.mkdir(data_dir) - log = logging.getLogger(__name__) STATUS_FINISHED = 'finished' + class EncryptedFileStreamer(object): """ Writes LBRY stream to request; will pause to wait for new data if the file @@ -31,7 +21,6 @@ class EncryptedFileStreamer(object): bufferSize = abstract.FileDescriptor.bufferSize - # How long to wait between sending blocks (needed because some # video players freeze up if you try to send data too fast) stream_interval = 0.005 @@ -39,7 +28,6 @@ class EncryptedFileStreamer(object): # How long to wait before checking if new data has been appended to the file new_data_check_interval = 0.25 - def __init__(self, request, path, stream, file_manager): def _set_content_length_header(length): self._request.setHeader('content-length', length) diff --git a/lbrynet/lbrynet_daemon/Resources.py b/lbrynet/lbrynet_daemon/Resources.py index ad40bf882..5f5036ba3 100644 --- a/lbrynet/lbrynet_daemon/Resources.py +++ b/lbrynet/lbrynet_daemon/Resources.py @@ -2,25 +2,15 @@ import logging import os import shutil import json -import sys import tempfile -from appdirs import user_data_dir from twisted.web import server, static, resource from twisted.internet import defer, error from lbrynet import conf from lbrynet.lbrynet_daemon.FileStreamer import EncryptedFileStreamer -# TODO: omg, this code is essentially duplicated in Daemon - -if sys.platform != "darwin": - data_dir = os.path.join(os.path.expanduser("~"), ".lbrynet") -else: - data_dir = user_data_dir("LBRY") -if not os.path.isdir(data_dir): - os.mkdir(data_dir) log = logging.getLogger(__name__) diff --git a/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py b/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py index fc73373f2..fa5d1314e 100644 --- a/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py +++ b/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py @@ -1,21 +1,13 @@ import json import logging.handlers -import sys import os -from appdirs import user_data_dir from twisted.internet.task import LoopingCall from twisted.internet import reactor +from lbrynet import conf -if sys.platform != "darwin": - log_dir = os.path.join(os.path.expanduser("~"), ".lbrynet") -else: - log_dir = user_data_dir("LBRY") - -if not os.path.isdir(log_dir): - os.mkdir(log_dir) - +log_dir = conf.settings['data_dir'] LOG_FILENAME = os.path.join(log_dir, 'lbrynet-daemon.log') if os.path.isfile(LOG_FILENAME): From 28613f1990abc79543767eb4a867720118b2f3ad Mon Sep 17 00:00:00 2001 From: Zestyr Date: Sun, 18 Jun 2017 07:12:51 +0200 Subject: [PATCH 3/8] Shorten download dir variable for consistency --- lbrynet/conf.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lbrynet/conf.py b/lbrynet/conf.py index 6839a0ca2..4d4d88358 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -46,14 +46,14 @@ settings_encoders = { if 'darwin' in sys.platform: platform = DARWIN - default_download_directory = os.path.expanduser('~/Downloads') + default_download_dir = os.path.expanduser('~/Downloads') default_data_dir = user_data_dir('LBRY') default_lbryum_dir = os.path.expanduser('~/.lbryum') elif 'nt' in sys.platform: platform = WINDOWS from lbrynet.winhelpers.knownpaths import get_path, FOLDERID, UserHandle - default_download_directory = get_path(FOLDERID.Downloads, UserHandle.current) + default_download_dir = get_path(FOLDERID.Downloads, UserHandle.current) default_data_dir = user_data_dir('lbrynet', 'LBRY', roaming=True) default_lbryum_dir = user_data_dir('lbryum', 'LBRY', roaming=True) else: @@ -63,12 +63,12 @@ else: with open(os.path.join(user_config_dir(), "/user-dirs.dirs"), 'r') as xdg: down_dir = re.search(r'XDG_DOWNLOAD_DIR=(.+)', xdg.read()).group(1) down_dir = re.sub('\$HOME', os.getenv('HOME'), down_dir) - default_download_directory = re.sub('\"', "", down_dir) + default_download_dir = re.sub('\"', "", down_dir) except: - default_download_directory = os.getenv('XDG_DOWNLOAD_DIR') + default_download_dir = os.getenv('XDG_DOWNLOAD_DIR') finally: - if not default_download_directory: - default_download_directory = os.path.join(os.getenv('HOME'), 'Downloads') + if not default_download_dir: + default_download_dir = os.path.join(os.getenv('HOME'), 'Downloads') default_data_dir = user_data_dir('LBRY') default_lbryum_dir = user_config_dir('LBRY') @@ -173,7 +173,7 @@ ADJUSTABLE_SETTINGS = { 'default_ui_branch': (str, 'master'), 'delete_blobs_on_remove': (bool, True), 'dht_node_port': (int, 4444), - 'download_directory': (str, default_download_directory), + 'download_directory': (str, default_download_dir), 'download_timeout': (int, 180), 'host_ui': (bool, True), 'is_generous_host': (bool, True), From 75d1f7f89714e248b5f50b1d80b2e14248536fd1 Mon Sep 17 00:00:00 2001 From: Zestyr Date: Sun, 18 Jun 2017 07:13:53 +0200 Subject: [PATCH 4/8] Add changelog --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ff8d3312..a5c9971e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,12 +13,14 @@ at anytime. * ### Changed - * - * + * Linux data folder changed from `.lbrynet` to `~/.local/share/LBRY` + * Linux config folder changed from `.lbryum` to `~/.config/LBRY` + * Linux downloads folder changed from `~/Downloads` to `XDG_DOWNLOAD_DIR` ### Fixed * Fixed some log messages throwing exceptions * Fix shutdown of the blob tracker by Session + * Fix default directories to comply to XDG ### Deprecated * From ddde036e3a073fc49d4e9b4b5838f8c18d7f532b Mon Sep 17 00:00:00 2001 From: Zestyr Date: Mon, 19 Jun 2017 19:21:59 +0200 Subject: [PATCH 5/8] Add check for old folder locations --- CHANGELOG.md | 6 +++--- lbrynet/conf.py | 43 +++++++++++++++++++++++++++++-------------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5c9971e3..bc80f6b94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,9 +13,9 @@ at anytime. * ### Changed - * Linux data folder changed from `.lbrynet` to `~/.local/share/LBRY` - * Linux config folder changed from `.lbryum` to `~/.config/LBRY` - * Linux downloads folder changed from `~/Downloads` to `XDG_DOWNLOAD_DIR` + * Linux default downloads folder changed from `~/Downloads` to `XDG_DOWNLOAD_DIR` + * Linux folders moved from the home directory to `~/.local/share/LBRY` + * Windows folders moved from `%APPDATA%/Roaming/lbry` to `%APPDATA%/Local/LBRY` ### Fixed * Fixed some log messages throwing exceptions diff --git a/lbrynet/conf.py b/lbrynet/conf.py index 4d4d88358..e9555b3e2 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -54,24 +54,39 @@ elif 'nt' in sys.platform: from lbrynet.winhelpers.knownpaths import get_path, FOLDERID, UserHandle default_download_dir = get_path(FOLDERID.Downloads, UserHandle.current) - default_data_dir = user_data_dir('lbrynet', 'LBRY', roaming=True) - default_lbryum_dir = user_data_dir('lbryum', 'LBRY', roaming=True) + + # This checks whether the folders are still in their old locations + if os.path.isdir(user_data_dir('lbryum', 'lbry', roaming=True)) and \ + os.path.isdir(user_data_dir('lbrynet', 'lbry', roaming=True)): + default_data_dir = user_data_dir('lbrynet', 'lbry', roaming=True) + default_lbryum_dir = user_data_dir('lbryum', 'lbry', roaming=True) + else: + default_data_dir = user_data_dir('lbrynet', 'LBRY') + default_lbryum_dir = user_data_dir('lbryum', 'LBRY') + else: platform = LINUX - try: - with open(os.path.join(user_config_dir(), "/user-dirs.dirs"), 'r') as xdg: - down_dir = re.search(r'XDG_DOWNLOAD_DIR=(.+)', xdg.read()).group(1) - down_dir = re.sub('\$HOME', os.getenv('HOME'), down_dir) - default_download_dir = re.sub('\"', "", down_dir) - except: - default_download_dir = os.getenv('XDG_DOWNLOAD_DIR') - finally: - if not default_download_dir: - default_download_dir = os.path.join(os.getenv('HOME'), 'Downloads') + # This checks whether the folders are still in their old locations + if os.path.isdir(os.path.expanduser('~/.lbrynet')) and \ + os.path.isdir(os.path.expanduser('~/.lbryum')): + default_data_dir = os.path.expanduser('~/.lbrynet') + default_lbryum_dir = os.path.expanduser('~/.lbryum') + default_download_dir = os.path.expanduser('~/Downloads') + else: + default_data_dir = user_data_dir('LBRY/lbrynet') + default_lbryum_dir = user_data_dir('LBRY/lbryum') + try: + with open(os.path.join(user_config_dir(), 'user-dirs.dirs'), 'r') as xdg: + down_dir = re.search(r'XDG_DOWNLOAD_DIR=(.+)', xdg.read()).group(1) + down_dir = re.sub('\$HOME', os.getenv('HOME'), down_dir) + default_download_dir = re.sub('\"', '', down_dir) + except: + default_download_dir = os.getenv('XDG_DOWNLOAD_DIR') + + if not default_download_dir: + default_download_dir = os.path.expanduser('~/Downloads') - default_data_dir = user_data_dir('LBRY') - default_lbryum_dir = user_config_dir('LBRY') ICON_PATH = 'icons' if platform is WINDOWS else 'app.icns' From ebec2fe9550135594ba5a49fe41a30b939e2744c Mon Sep 17 00:00:00 2001 From: Zestyr Date: Mon, 19 Jun 2017 19:46:46 +0200 Subject: [PATCH 6/8] Make directories lowercase, catch exception, initialize settings --- CHANGELOG.md | 4 ++-- lbrynet/conf.py | 11 +++++------ lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py | 1 + 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc80f6b94..5c32e6abe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,8 @@ at anytime. ### Changed * Linux default downloads folder changed from `~/Downloads` to `XDG_DOWNLOAD_DIR` - * Linux folders moved from the home directory to `~/.local/share/LBRY` - * Windows folders moved from `%APPDATA%/Roaming/lbry` to `%APPDATA%/Local/LBRY` + * Linux folders moved from the home directory to `~/.local/share/lbry` + * Windows folders moved from `%APPDATA%/Roaming/lbry` to `%APPDATA%/Local/lbry` ### Fixed * Fixed some log messages throwing exceptions diff --git a/lbrynet/conf.py b/lbrynet/conf.py index e9555b3e2..5182deff1 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -61,9 +61,8 @@ elif 'nt' in sys.platform: default_data_dir = user_data_dir('lbrynet', 'lbry', roaming=True) default_lbryum_dir = user_data_dir('lbryum', 'lbry', roaming=True) else: - default_data_dir = user_data_dir('lbrynet', 'LBRY') - default_lbryum_dir = user_data_dir('lbryum', 'LBRY') - + default_data_dir = user_data_dir('lbrynet', 'lbry') + default_lbryum_dir = user_data_dir('lbryum', 'lbry') else: platform = LINUX @@ -74,14 +73,14 @@ else: default_lbryum_dir = os.path.expanduser('~/.lbryum') default_download_dir = os.path.expanduser('~/Downloads') else: - default_data_dir = user_data_dir('LBRY/lbrynet') - default_lbryum_dir = user_data_dir('LBRY/lbryum') + default_data_dir = user_data_dir('lbry/lbrynet') + default_lbryum_dir = user_data_dir('lbry/lbryum') try: with open(os.path.join(user_config_dir(), 'user-dirs.dirs'), 'r') as xdg: down_dir = re.search(r'XDG_DOWNLOAD_DIR=(.+)', xdg.read()).group(1) down_dir = re.sub('\$HOME', os.getenv('HOME'), down_dir) default_download_dir = re.sub('\"', '', down_dir) - except: + except EnvironmentError: default_download_dir = os.getenv('XDG_DOWNLOAD_DIR') if not default_download_dir: diff --git a/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py b/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py index fa5d1314e..1cba26d3c 100644 --- a/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py +++ b/lbrynet/lbrynet_daemon/daemon_scripts/Autofetcher.py @@ -7,6 +7,7 @@ from twisted.internet import reactor from lbrynet import conf +conf.initialize_settings() log_dir = conf.settings['data_dir'] LOG_FILENAME = os.path.join(log_dir, 'lbrynet-daemon.log') From 6a1a91f8f1ed83dfbf5a4ad9214b96971ec2da6b Mon Sep 17 00:00:00 2001 From: Zestyr Date: Thu, 22 Jun 2017 02:28:32 +0200 Subject: [PATCH 7/8] Fix old legacy Windows location --- CHANGELOG.md | 2 +- lbrynet/conf.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c32e6abe..6435504c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ at anytime. ### Changed * Linux default downloads folder changed from `~/Downloads` to `XDG_DOWNLOAD_DIR` * Linux folders moved from the home directory to `~/.local/share/lbry` - * Windows folders moved from `%APPDATA%/Roaming/lbry` to `%APPDATA%/Local/lbry` + * Windows folders moved from `%APPDATA%/Roaming` to `%APPDATA%/Local/lbry` ### Fixed * Fixed some log messages throwing exceptions diff --git a/lbrynet/conf.py b/lbrynet/conf.py index 5182deff1..2d422ae00 100644 --- a/lbrynet/conf.py +++ b/lbrynet/conf.py @@ -56,10 +56,10 @@ elif 'nt' in sys.platform: default_download_dir = get_path(FOLDERID.Downloads, UserHandle.current) # This checks whether the folders are still in their old locations - if os.path.isdir(user_data_dir('lbryum', 'lbry', roaming=True)) and \ - os.path.isdir(user_data_dir('lbrynet', 'lbry', roaming=True)): - default_data_dir = user_data_dir('lbrynet', 'lbry', roaming=True) - default_lbryum_dir = user_data_dir('lbryum', 'lbry', roaming=True) + if os.path.isdir(user_data_dir('lbryum', roaming=True)) and \ + os.path.isdir(user_data_dir('lbrynet', roaming=True)): + default_data_dir = user_data_dir('lbrynet', roaming=True) + default_lbryum_dir = user_data_dir('lbryum', roaming=True) else: default_data_dir = user_data_dir('lbrynet', 'lbry') default_lbryum_dir = user_data_dir('lbryum', 'lbry') From 9bcd550f0ad12c46081350c4f56e340f6ba2d9bf Mon Sep 17 00:00:00 2001 From: Zestyr Date: Wed, 28 Jun 2017 17:55:44 +0200 Subject: [PATCH 8/8] Merge changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7659c8304..585163150 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,7 +29,6 @@ at anytime. * Fix shutdown of the blob tracker by Session * Fixed claim_new_support docstrings * Fix default directories to comply to XDG - * * Fixed BlobManager causing functional tests to fail, removed its unneeded manage() loop * Increased max_key_fee