toxygen/toxygen/bootstrap/bootstrap.py

49 lines
1.5 KiB
Python
Raw Normal View History

2022-09-27 15:51:50 +02:00
# -*- mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -*-
2022-09-27 14:38:39 +02:00
import random
import urllib.request
from utils.util import *
2022-11-20 02:11:51 +01:00
from PyQt5 import QtNetwork
from PyQt5 import QtCore
2022-09-27 15:51:50 +02:00
try:
2022-11-17 16:26:55 +01:00
import certifi
2022-11-20 02:11:51 +01:00
from io import BytesIO
2022-09-27 15:51:50 +02:00
except ImportError:
certifi = None
2022-09-27 15:51:50 +02:00
2022-11-17 16:26:55 +01:00
from user_data.settings import get_user_config_path
2022-11-20 02:11:51 +01:00
from wrapper_tests.support_testing import _get_nodes_path
from wrapper_tests.support_http import download_url
import wrapper_tests.support_testing as ts
2022-09-27 15:51:50 +02:00
global LOG
import logging
LOG = logging.getLogger('app.'+'bootstrap')
def download_nodes_list(settings, oArgs):
2022-09-27 14:38:39 +02:00
if not settings['download_nodes_list']:
2022-09-27 15:51:50 +02:00
return ''
2022-10-13 15:55:56 +02:00
if not ts.bAreWeConnected():
2022-11-20 02:11:51 +01:00
return ''
2022-09-27 15:51:50 +02:00
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)
2022-09-27 15:51:50 +02:00
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):
2022-09-27 14:38:39 +02:00
if not nodes:
return
2022-09-27 15:51:50 +02:00
with open(_get_nodes_path(oArgs=app._args), 'wb') as fl:
LOG.info("Saving nodes to " +_get_nodes_path())
2022-09-27 14:38:39 +02:00
fl.write(nodes)