Avoid monkeypatching PySocks
This commit is contained in:
		
							parent
							
								
									f33629f2a5
								
							
						
					
					
						commit
						724e7f0ffc
					
				@ -15,6 +15,8 @@ import threading
 | 
				
			|||||||
import traceback
 | 
					import traceback
 | 
				
			||||||
import subprocess
 | 
					import subprocess
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sockshandler import SocksiPyHandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import basicswap.config as cfg
 | 
					import basicswap.config as cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .rpc import (
 | 
					from .rpc import (
 | 
				
			||||||
@ -172,6 +174,15 @@ class BaseApp:
 | 
				
			|||||||
            socket.getaddrinfo = self.default_socket_getaddrinfo
 | 
					            socket.getaddrinfo = self.default_socket_getaddrinfo
 | 
				
			||||||
        socket.setdefaulttimeout(self.default_socket_timeout)
 | 
					        socket.setdefaulttimeout(self.default_socket_timeout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def readURL(self, url: str, timeout: int = 120, headers=None) -> bytes:
 | 
				
			||||||
 | 
					        open_handler = None
 | 
				
			||||||
 | 
					        if self.use_tor_proxy:
 | 
				
			||||||
 | 
					            open_handler = SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, self.tor_proxy_host, self.tor_proxy_port)
 | 
				
			||||||
 | 
					        opener = urllib.request.build_opener(open_handler) if self.use_tor_proxy else urllib.request.build_opener()
 | 
				
			||||||
 | 
					        opener.addheaders = [('User-agent', 'Mozilla/5.0')]
 | 
				
			||||||
 | 
					        request = urllib.request.Request(url, headers=headers)
 | 
				
			||||||
 | 
					        return opener.open(request, timeout=timeout).read()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def logException(self, message) -> None:
 | 
					    def logException(self, message) -> None:
 | 
				
			||||||
        self.log.error(message)
 | 
					        self.log.error(message)
 | 
				
			||||||
        if self.debug:
 | 
					        if self.debug:
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,6 @@ import random
 | 
				
			|||||||
import shutil
 | 
					import shutil
 | 
				
			||||||
import string
 | 
					import string
 | 
				
			||||||
import struct
 | 
					import struct
 | 
				
			||||||
import urllib.request
 | 
					 | 
				
			||||||
import hashlib
 | 
					import hashlib
 | 
				
			||||||
import secrets
 | 
					import secrets
 | 
				
			||||||
import datetime as dt
 | 
					import datetime as dt
 | 
				
			||||||
@ -6397,151 +6396,142 @@ class BasicSwap(BaseApp):
 | 
				
			|||||||
        ticker_from = ci_from.chainparams()['ticker']
 | 
					        ticker_from = ci_from.chainparams()['ticker']
 | 
				
			||||||
        ticker_to = ci_to.chainparams()['ticker']
 | 
					        ticker_to = ci_to.chainparams()['ticker']
 | 
				
			||||||
        headers = {'Connection': 'close'}
 | 
					        headers = {'Connection': 'close'}
 | 
				
			||||||
        try:
 | 
					        rv = {}
 | 
				
			||||||
            self.setConnectionParameters()
 | 
					 | 
				
			||||||
            rv = {}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if rate_sources.get('coingecko.com', True):
 | 
					        if rate_sources.get('coingecko.com', True):
 | 
				
			||||||
                try:
 | 
					            try:
 | 
				
			||||||
                    url = 'https://api.coingecko.com/api/v3/simple/price?ids={},{}&vs_currencies=usd,btc'.format(exchange_name_from, exchange_name_to)
 | 
					                url = 'https://api.coingecko.com/api/v3/simple/price?ids={},{}&vs_currencies=usd,btc'.format(exchange_name_from, exchange_name_to)
 | 
				
			||||||
 | 
					                self.log.debug(f'lookupRates: {url}')
 | 
				
			||||||
 | 
					                start = time.time()
 | 
				
			||||||
 | 
					                js = json.loads(self.readURL(url, timeout=10, headers=headers))
 | 
				
			||||||
 | 
					                js['time_taken'] = time.time() - start
 | 
				
			||||||
 | 
					                rate = float(js[exchange_name_from]['usd']) / float(js[exchange_name_to]['usd'])
 | 
				
			||||||
 | 
					                js['rate_inferred'] = ci_to.format_amount(rate, conv_int=True, r=1)
 | 
				
			||||||
 | 
					                rv['coingecko'] = js
 | 
				
			||||||
 | 
					            except Exception as e:
 | 
				
			||||||
 | 
					                rv['coingecko_error'] = str(e)
 | 
				
			||||||
 | 
					                if self.debug:
 | 
				
			||||||
 | 
					                    self.log.error(traceback.format_exc())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if exchange_name_from != name_from:
 | 
				
			||||||
 | 
					                js[name_from] = js[exchange_name_from]
 | 
				
			||||||
 | 
					                js.pop(exchange_name_from)
 | 
				
			||||||
 | 
					            if exchange_name_to != name_to:
 | 
				
			||||||
 | 
					                js[name_to] = js[exchange_name_to]
 | 
				
			||||||
 | 
					                js.pop(exchange_name_to)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if rate_sources.get('bittrex.com', True):
 | 
				
			||||||
 | 
					            bittrex_api_v3 = 'https://api.bittrex.com/v3'
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
 | 
					                exchange_ticker_to = ci_to.getExchangeTicker('bittrex.com')
 | 
				
			||||||
 | 
					                exchange_ticker_from = ci_from.getExchangeTicker('bittrex.com')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                USDT_coins = (Coins.FIRO,)
 | 
				
			||||||
 | 
					                # TODO: How to compare USDT pairs with BTC pairs
 | 
				
			||||||
 | 
					                if ci_from.coin_type() in USDT_coins:
 | 
				
			||||||
 | 
					                    raise ValueError('No BTC pair')
 | 
				
			||||||
 | 
					                if ci_to.coin_type() in USDT_coins:
 | 
				
			||||||
 | 
					                    raise ValueError('No BTC pair')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ci_from.coin_type() == Coins.BTC:
 | 
				
			||||||
 | 
					                    pair = f'{exchange_ticker_to}-{exchange_ticker_from}'
 | 
				
			||||||
 | 
					                    url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
				
			||||||
                    self.log.debug(f'lookupRates: {url}')
 | 
					                    self.log.debug(f'lookupRates: {url}')
 | 
				
			||||||
                    start = time.time()
 | 
					                    start = time.time()
 | 
				
			||||||
                    req = urllib.request.Request(url, headers=headers)
 | 
					                    js = json.loads(self.readURL(url, timeout=10, headers=headers))
 | 
				
			||||||
                    js = json.loads(urllib.request.urlopen(req, timeout=10).read())
 | 
					 | 
				
			||||||
                    js['time_taken'] = time.time() - start
 | 
					                    js['time_taken'] = time.time() - start
 | 
				
			||||||
                    rate = float(js[exchange_name_from]['usd']) / float(js[exchange_name_to]['usd'])
 | 
					                    js['pair'] = pair
 | 
				
			||||||
                    js['rate_inferred'] = ci_to.format_amount(rate, conv_int=True, r=1)
 | 
					                    try:
 | 
				
			||||||
                    rv['coingecko'] = js
 | 
					                        rate_inverted = ci_from.make_int(1.0 / float(js['lastTradeRate']), r=1)
 | 
				
			||||||
                except Exception as e:
 | 
					                        js['rate_inferred'] = ci_to.format_amount(rate_inverted)
 | 
				
			||||||
                    rv['coingecko_error'] = str(e)
 | 
					                    except Exception as e:
 | 
				
			||||||
                    if self.debug:
 | 
					                        self.log.warning('lookupRates error: %s', str(e))
 | 
				
			||||||
                        self.log.error(traceback.format_exc())
 | 
					                        js['rate_inferred'] = 'error'
 | 
				
			||||||
 | 
					                    js['from_btc'] = 1.0
 | 
				
			||||||
 | 
					                    js['to_btc'] = js['lastTradeRate']
 | 
				
			||||||
 | 
					                    rv['bittrex'] = js
 | 
				
			||||||
 | 
					                elif ci_to.coin_type() == Coins.BTC:
 | 
				
			||||||
 | 
					                    pair = f'{exchange_ticker_from}-{exchange_ticker_to}'
 | 
				
			||||||
 | 
					                    url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
				
			||||||
 | 
					                    self.log.debug(f'lookupRates: {url}')
 | 
				
			||||||
 | 
					                    start = time.time()
 | 
				
			||||||
 | 
					                    js = json.loads(self.readURL(url, timeout=10, headers=headers))
 | 
				
			||||||
 | 
					                    js['time_taken'] = time.time() - start
 | 
				
			||||||
 | 
					                    js['pair'] = pair
 | 
				
			||||||
 | 
					                    js['rate_last'] = js['lastTradeRate']
 | 
				
			||||||
 | 
					                    js['from_btc'] = js['lastTradeRate']
 | 
				
			||||||
 | 
					                    js['to_btc'] = 1.0
 | 
				
			||||||
 | 
					                    rv['bittrex'] = js
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    pair = f'{exchange_ticker_from}-BTC'
 | 
				
			||||||
 | 
					                    url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
				
			||||||
 | 
					                    self.log.debug(f'lookupRates: {url}')
 | 
				
			||||||
 | 
					                    start = time.time()
 | 
				
			||||||
 | 
					                    js_from = json.loads(self.readURL(url, timeout=10, headers=headers))
 | 
				
			||||||
 | 
					                    js_from['time_taken'] = time.time() - start
 | 
				
			||||||
 | 
					                    js_from['pair'] = pair
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if exchange_name_from != name_from:
 | 
					                    pair = f'{exchange_ticker_to}-BTC'
 | 
				
			||||||
                    js[name_from] = js[exchange_name_from]
 | 
					                    url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
				
			||||||
                    js.pop(exchange_name_from)
 | 
					                    self.log.debug(f'lookupRates: {url}')
 | 
				
			||||||
                if exchange_name_to != name_to:
 | 
					                    start = time.time()
 | 
				
			||||||
                    js[name_to] = js[exchange_name_to]
 | 
					                    js_to = json.loads(self.readURL(url, timeout=10, headers=headers))
 | 
				
			||||||
                    js.pop(exchange_name_to)
 | 
					                    js_to['time_taken'] = time.time() - start
 | 
				
			||||||
 | 
					                    js_to['pair'] = pair
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if rate_sources.get('bittrex.com', True):
 | 
					                    try:
 | 
				
			||||||
                bittrex_api_v3 = 'https://api.bittrex.com/v3'
 | 
					                        rate_inferred = float(js_from['lastTradeRate']) / float(js_to['lastTradeRate'])
 | 
				
			||||||
                try:
 | 
					                        rate_inferred = ci_to.format_amount(rate, conv_int=True, r=1)
 | 
				
			||||||
                    exchange_ticker_to = ci_to.getExchangeTicker('bittrex.com')
 | 
					                    except Exception as e:
 | 
				
			||||||
                    exchange_ticker_from = ci_from.getExchangeTicker('bittrex.com')
 | 
					                        rate_inferred = 'error'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    USDT_coins = (Coins.FIRO,)
 | 
					                    rv['bittrex'] = {
 | 
				
			||||||
                    # TODO: How to compare USDT pairs with BTC pairs
 | 
					                        'from': js_from,
 | 
				
			||||||
                    if ci_from.coin_type() in USDT_coins:
 | 
					                        'to': js_to,
 | 
				
			||||||
                        raise ValueError('No BTC pair')
 | 
					                        'rate_inferred': rate_inferred,
 | 
				
			||||||
                    if ci_to.coin_type() in USDT_coins:
 | 
					                        'from_btc': js_from['lastTradeRate'],
 | 
				
			||||||
                        raise ValueError('No BTC pair')
 | 
					                        'to_btc': js_to['lastTradeRate']
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					            except Exception as e:
 | 
				
			||||||
 | 
					                rv['bittrex_error'] = str(e)
 | 
				
			||||||
 | 
					                if self.debug:
 | 
				
			||||||
 | 
					                    self.log.error(traceback.format_exc())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if ci_from.coin_type() == Coins.BTC:
 | 
					        if output_array:
 | 
				
			||||||
                        pair = f'{exchange_ticker_to}-{exchange_ticker_from}'
 | 
					 | 
				
			||||||
                        url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
					 | 
				
			||||||
                        self.log.debug(f'lookupRates: {url}')
 | 
					 | 
				
			||||||
                        start = time.time()
 | 
					 | 
				
			||||||
                        req = urllib.request.Request(url, headers=headers)
 | 
					 | 
				
			||||||
                        js = json.loads(urllib.request.urlopen(req, timeout=10).read())
 | 
					 | 
				
			||||||
                        js['time_taken'] = time.time() - start
 | 
					 | 
				
			||||||
                        js['pair'] = pair
 | 
					 | 
				
			||||||
                        try:
 | 
					 | 
				
			||||||
                            rate_inverted = ci_from.make_int(1.0 / float(js['lastTradeRate']), r=1)
 | 
					 | 
				
			||||||
                            js['rate_inferred'] = ci_to.format_amount(rate_inverted)
 | 
					 | 
				
			||||||
                        except Exception as e:
 | 
					 | 
				
			||||||
                            self.log.warning('lookupRates error: %s', str(e))
 | 
					 | 
				
			||||||
                            js['rate_inferred'] = 'error'
 | 
					 | 
				
			||||||
                        js['from_btc'] = 1.0
 | 
					 | 
				
			||||||
                        js['to_btc'] = js['lastTradeRate']
 | 
					 | 
				
			||||||
                        rv['bittrex'] = js
 | 
					 | 
				
			||||||
                    elif ci_to.coin_type() == Coins.BTC:
 | 
					 | 
				
			||||||
                        pair = f'{exchange_ticker_from}-{exchange_ticker_to}'
 | 
					 | 
				
			||||||
                        url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
					 | 
				
			||||||
                        self.log.debug(f'lookupRates: {url}')
 | 
					 | 
				
			||||||
                        start = time.time()
 | 
					 | 
				
			||||||
                        req = urllib.request.Request(url, headers=headers)
 | 
					 | 
				
			||||||
                        js = json.loads(urllib.request.urlopen(req, timeout=10).read())
 | 
					 | 
				
			||||||
                        js['time_taken'] = time.time() - start
 | 
					 | 
				
			||||||
                        js['pair'] = pair
 | 
					 | 
				
			||||||
                        js['rate_last'] = js['lastTradeRate']
 | 
					 | 
				
			||||||
                        js['from_btc'] = js['lastTradeRate']
 | 
					 | 
				
			||||||
                        js['to_btc'] = 1.0
 | 
					 | 
				
			||||||
                        rv['bittrex'] = js
 | 
					 | 
				
			||||||
                    else:
 | 
					 | 
				
			||||||
                        pair = f'{exchange_ticker_from}-BTC'
 | 
					 | 
				
			||||||
                        url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
					 | 
				
			||||||
                        self.log.debug(f'lookupRates: {url}')
 | 
					 | 
				
			||||||
                        start = time.time()
 | 
					 | 
				
			||||||
                        req = urllib.request.Request(url, headers=headers)
 | 
					 | 
				
			||||||
                        js_from = json.loads(urllib.request.urlopen(req, timeout=10).read())
 | 
					 | 
				
			||||||
                        js_from['time_taken'] = time.time() - start
 | 
					 | 
				
			||||||
                        js_from['pair'] = pair
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        pair = f'{exchange_ticker_to}-BTC'
 | 
					            def format_float(f):
 | 
				
			||||||
                        url = f'{bittrex_api_v3}/markets/{pair}/ticker'
 | 
					                return '{:.12f}'.format(f).rstrip('0').rstrip('.')
 | 
				
			||||||
                        self.log.debug(f'lookupRates: {url}')
 | 
					 | 
				
			||||||
                        start = time.time()
 | 
					 | 
				
			||||||
                        req = urllib.request.Request(url, headers=headers)
 | 
					 | 
				
			||||||
                        js_to = json.loads(urllib.request.urlopen(req, timeout=10).read())
 | 
					 | 
				
			||||||
                        js_to['time_taken'] = time.time() - start
 | 
					 | 
				
			||||||
                        js_to['pair'] = pair
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        try:
 | 
					            rv_array = []
 | 
				
			||||||
                            rate_inferred = float(js_from['lastTradeRate']) / float(js_to['lastTradeRate'])
 | 
					            if 'coingecko_error' in rv:
 | 
				
			||||||
                            rate_inferred = ci_to.format_amount(rate, conv_int=True, r=1)
 | 
					                rv_array.append(('coingecko.com', 'error', rv['coingecko_error']))
 | 
				
			||||||
                        except Exception as e:
 | 
					            if 'coingecko' in rv:
 | 
				
			||||||
                            rate_inferred = 'error'
 | 
					                js = rv['coingecko']
 | 
				
			||||||
 | 
					                rv_array.append((
 | 
				
			||||||
 | 
					                    'coingecko.com',
 | 
				
			||||||
 | 
					                    ticker_from,
 | 
				
			||||||
 | 
					                    ticker_to,
 | 
				
			||||||
 | 
					                    format_float(float(js[name_from]['usd'])),
 | 
				
			||||||
 | 
					                    format_float(float(js[name_to]['usd'])),
 | 
				
			||||||
 | 
					                    format_float(float(js[name_from]['btc'])),
 | 
				
			||||||
 | 
					                    format_float(float(js[name_to]['btc'])),
 | 
				
			||||||
 | 
					                    format_float(float(js['rate_inferred'])),
 | 
				
			||||||
 | 
					                ))
 | 
				
			||||||
 | 
					            if 'bittrex_error' in rv:
 | 
				
			||||||
 | 
					                rv_array.append(('bittrex.com', 'error', rv['bittrex_error']))
 | 
				
			||||||
 | 
					            if 'bittrex' in rv:
 | 
				
			||||||
 | 
					                js = rv['bittrex']
 | 
				
			||||||
 | 
					                rate = js['rate_last'] if 'rate_last' in js else js['rate_inferred']
 | 
				
			||||||
 | 
					                rv_array.append((
 | 
				
			||||||
 | 
					                    'bittrex.com',
 | 
				
			||||||
 | 
					                    ticker_from,
 | 
				
			||||||
 | 
					                    ticker_to,
 | 
				
			||||||
 | 
					                    '',
 | 
				
			||||||
 | 
					                    '',
 | 
				
			||||||
 | 
					                    format_float(float(js['from_btc'])),
 | 
				
			||||||
 | 
					                    format_float(float(js['to_btc'])),
 | 
				
			||||||
 | 
					                    format_float(float(rate))
 | 
				
			||||||
 | 
					                ))
 | 
				
			||||||
 | 
					            return rv_array
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        rv['bittrex'] = {
 | 
					        return rv
 | 
				
			||||||
                            'from': js_from,
 | 
					 | 
				
			||||||
                            'to': js_to,
 | 
					 | 
				
			||||||
                            'rate_inferred': rate_inferred,
 | 
					 | 
				
			||||||
                            'from_btc': js_from['lastTradeRate'],
 | 
					 | 
				
			||||||
                            'to_btc': js_to['lastTradeRate']
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                except Exception as e:
 | 
					 | 
				
			||||||
                    rv['bittrex_error'] = str(e)
 | 
					 | 
				
			||||||
                    if self.debug:
 | 
					 | 
				
			||||||
                        self.log.error(traceback.format_exc())
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if output_array:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                def format_float(f):
 | 
					 | 
				
			||||||
                    return '{:.12f}'.format(f).rstrip('0').rstrip('.')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                rv_array = []
 | 
					 | 
				
			||||||
                if 'coingecko_error' in rv:
 | 
					 | 
				
			||||||
                    rv_array.append(('coingecko.com', 'error', rv['coingecko_error']))
 | 
					 | 
				
			||||||
                if 'coingecko' in rv:
 | 
					 | 
				
			||||||
                    js = rv['coingecko']
 | 
					 | 
				
			||||||
                    rv_array.append((
 | 
					 | 
				
			||||||
                        'coingecko.com',
 | 
					 | 
				
			||||||
                        ticker_from,
 | 
					 | 
				
			||||||
                        ticker_to,
 | 
					 | 
				
			||||||
                        format_float(float(js[name_from]['usd'])),
 | 
					 | 
				
			||||||
                        format_float(float(js[name_to]['usd'])),
 | 
					 | 
				
			||||||
                        format_float(float(js[name_from]['btc'])),
 | 
					 | 
				
			||||||
                        format_float(float(js[name_to]['btc'])),
 | 
					 | 
				
			||||||
                        format_float(float(js['rate_inferred'])),
 | 
					 | 
				
			||||||
                    ))
 | 
					 | 
				
			||||||
                if 'bittrex_error' in rv:
 | 
					 | 
				
			||||||
                    rv_array.append(('bittrex.com', 'error', rv['bittrex_error']))
 | 
					 | 
				
			||||||
                if 'bittrex' in rv:
 | 
					 | 
				
			||||||
                    js = rv['bittrex']
 | 
					 | 
				
			||||||
                    rate = js['rate_last'] if 'rate_last' in js else js['rate_inferred']
 | 
					 | 
				
			||||||
                    rv_array.append((
 | 
					 | 
				
			||||||
                        'bittrex.com',
 | 
					 | 
				
			||||||
                        ticker_from,
 | 
					 | 
				
			||||||
                        ticker_to,
 | 
					 | 
				
			||||||
                        '',
 | 
					 | 
				
			||||||
                        '',
 | 
					 | 
				
			||||||
                        format_float(float(js['from_btc'])),
 | 
					 | 
				
			||||||
                        format_float(float(js['to_btc'])),
 | 
					 | 
				
			||||||
                        format_float(float(rate))
 | 
					 | 
				
			||||||
                    ))
 | 
					 | 
				
			||||||
                return rv_array
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return rv
 | 
					 | 
				
			||||||
        finally:
 | 
					 | 
				
			||||||
            self.popConnectionParameters()
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,10 @@
 | 
				
			|||||||
# -*- coding: utf-8 -*-
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copyright (c) 2019-2022 tecnovert
 | 
					# Copyright (c) 2019-2023 tecnovert
 | 
				
			||||||
# Distributed under the MIT software license, see the accompanying
 | 
					# Distributed under the MIT software license, see the accompanying
 | 
				
			||||||
# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
 | 
					# file LICENSE or http://www.opensource.org/licenses/mit-license.php.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import json
 | 
					import json
 | 
				
			||||||
import urllib.request
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Explorer():
 | 
					class Explorer():
 | 
				
			||||||
@ -17,12 +16,7 @@ class Explorer():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def readURL(self, url):
 | 
					    def readURL(self, url):
 | 
				
			||||||
        self.log.debug('Explorer url: {}'.format(url))
 | 
					        self.log.debug('Explorer url: {}'.format(url))
 | 
				
			||||||
        try:
 | 
					        return self.swapclient.readURL(url)
 | 
				
			||||||
            self.swapclient.setConnectionParameters()
 | 
					 | 
				
			||||||
            req = urllib.request.Request(url)
 | 
					 | 
				
			||||||
            return urllib.request.urlopen(req).read()
 | 
					 | 
				
			||||||
        finally:
 | 
					 | 
				
			||||||
            self.swapclient.popConnectionParameters()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ExplorerInsight(Explorer):
 | 
					class ExplorerInsight(Explorer):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user