labels plugin: no need for 'proxy_set' callback
This commit is contained in:
@@ -10,6 +10,8 @@ from electrum.plugin import BasePlugin, hook
|
|||||||
from electrum.crypto import aes_encrypt_with_iv, aes_decrypt_with_iv
|
from electrum.crypto import aes_encrypt_with_iv, aes_decrypt_with_iv
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.util import log_exceptions, ignore_exceptions, make_aiohttp_session
|
from electrum.util import log_exceptions, ignore_exceptions, make_aiohttp_session
|
||||||
|
from electrum.network import Network
|
||||||
|
|
||||||
|
|
||||||
class LabelsPlugin(BasePlugin):
|
class LabelsPlugin(BasePlugin):
|
||||||
|
|
||||||
@@ -17,7 +19,6 @@ class LabelsPlugin(BasePlugin):
|
|||||||
BasePlugin.__init__(self, parent, config, name)
|
BasePlugin.__init__(self, parent, config, name)
|
||||||
self.target_host = 'labels.electrum.org'
|
self.target_host = 'labels.electrum.org'
|
||||||
self.wallets = {}
|
self.wallets = {}
|
||||||
self.proxy = None
|
|
||||||
|
|
||||||
def encode(self, wallet, msg):
|
def encode(self, wallet, msg):
|
||||||
password, iv, wallet_id = self.wallets[wallet]
|
password, iv, wallet_id = self.wallets[wallet]
|
||||||
@@ -65,13 +66,17 @@ class LabelsPlugin(BasePlugin):
|
|||||||
|
|
||||||
async def do_get(self, url = "/labels"):
|
async def do_get(self, url = "/labels"):
|
||||||
url = 'https://' + self.target_host + url
|
url = 'https://' + self.target_host + url
|
||||||
async with make_aiohttp_session(self.proxy) as session:
|
network = Network.get_instance()
|
||||||
|
proxy = network.proxy if network else None
|
||||||
|
async with make_aiohttp_session(proxy) as session:
|
||||||
async with session.get(url) as result:
|
async with session.get(url) as result:
|
||||||
return await result.json()
|
return await result.json()
|
||||||
|
|
||||||
async def do_post(self, url = "/labels", data=None):
|
async def do_post(self, url = "/labels", data=None):
|
||||||
url = 'https://' + self.target_host + url
|
url = 'https://' + self.target_host + url
|
||||||
async with make_aiohttp_session(self.proxy) as session:
|
network = Network.get_instance()
|
||||||
|
proxy = network.proxy if network else None
|
||||||
|
async with make_aiohttp_session(proxy) as session:
|
||||||
async with session.post(url, json=data) as result:
|
async with session.post(url, json=data) as result:
|
||||||
try:
|
try:
|
||||||
return await result.json()
|
return await result.json()
|
||||||
@@ -160,14 +165,6 @@ class LabelsPlugin(BasePlugin):
|
|||||||
self.wallets[wallet] = (password, iv, wallet_id)
|
self.wallets[wallet] = (password, iv, wallet_id)
|
||||||
# If there is an auth token we can try to actually start syncing
|
# If there is an auth token we can try to actually start syncing
|
||||||
asyncio.run_coroutine_threadsafe(self.pull_safe_thread(wallet, False), wallet.network.asyncio_loop)
|
asyncio.run_coroutine_threadsafe(self.pull_safe_thread(wallet, False), wallet.network.asyncio_loop)
|
||||||
self.proxy = wallet.network.proxy
|
|
||||||
wallet.network.register_callback(self.set_proxy, ['proxy_set'])
|
|
||||||
|
|
||||||
def stop_wallet(self, wallet):
|
def stop_wallet(self, wallet):
|
||||||
if not wallet.network: return # 'offline' mode
|
|
||||||
wallet.network.unregister_callback('proxy_set')
|
|
||||||
self.wallets.pop(wallet, None)
|
self.wallets.pop(wallet, None)
|
||||||
|
|
||||||
def set_proxy(self, evt_name, new_proxy):
|
|
||||||
self.proxy = new_proxy
|
|
||||||
self.print_error("proxy set")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user