49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
# -*- mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -*-
|
|
import random
|
|
import urllib.request
|
|
from utils.util import *
|
|
from PyQt5 import QtNetwork
|
|
from PyQt5 import QtCore
|
|
try:
|
|
import certifi
|
|
from io import BytesIO
|
|
except ImportError:
|
|
certifi = None
|
|
|
|
from user_data.settings import get_user_config_path
|
|
from wrapper_tests.support_testing import _get_nodes_path
|
|
from wrapper_tests.support_http import download_url
|
|
import wrapper_tests.support_testing as ts
|
|
|
|
global LOG
|
|
import logging
|
|
LOG = logging.getLogger('app.'+'bootstrap')
|
|
|
|
def download_nodes_list(settings, oArgs):
|
|
if not settings['download_nodes_list']:
|
|
return ''
|
|
if not ts.bAreWeConnected():
|
|
return ''
|
|
url = settings['download_nodes_url']
|
|
path = _get_nodes_path(oArgs=oArgs)
|
|
# dont download blindly so we can edit the file and not block on startup
|
|
if os.path.isfile(path):
|
|
with open(path, 'rt') as fl:
|
|
result = fl.read()
|
|
return result
|
|
LOG.debug("downloading list of nodes")
|
|
result = download_url(url, settings._app._settings)
|
|
if not result:
|
|
LOG.warn("failed downloading list of nodes")
|
|
return ''
|
|
LOG.info("downloaded list of nodes")
|
|
_save_nodes(result, settings._app)
|
|
return result
|
|
|
|
def _save_nodes(nodes, app):
|
|
if not nodes:
|
|
return
|
|
with open(_get_nodes_path(oArgs=app._args), 'wb') as fl:
|
|
LOG.info("Saving nodes to " +_get_nodes_path())
|
|
fl.write(nodes)
|