URI: 
       tMerge Exchanger class into the Plugin class. - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 3d2ab45b04886c626e747452ae93651cffbcebc3
   DIR parent b036e8597a3ca02c5b90bb544bfbacd3ce7a63a0
  HTML Author: Neil Booth <kyuupichan@gmail.com>
       Date:   Sat,  5 Sep 2015 16:33:06 +0900
       
       Merge Exchanger class into the Plugin class.
       
       Diffstat:
         M plugins/exchange_rate.py            |      45 +++++++++----------------------
       
       1 file changed, 13 insertions(+), 32 deletions(-)
       ---
   DIR diff --git a/plugins/exchange_rate.py b/plugins/exchange_rate.py
       t@@ -185,32 +185,7 @@ class Winkdex(ExchangeBase):
                                            for h in history]))
        
        
       -class Exchanger(ThreadJob):
       -
       -    def __init__(self, parent):
       -        self.parent = parent
       -        self.timeout = 0
       -
       -    def get_json(self, site, get_string):
       -        resp = requests.request('GET', 'https://' + site + get_string,
       -                                headers={"User-Agent":"Electrum"})
       -        return resp.json()
       -
       -    def update_rate(self):
       -        try:
       -            rates = self.parent.exchange.update(self.parent.fiat_unit())
       -        except Exception as e:
       -            traceback.print_exc(file=sys.stderr)
       -            return
       -        self.parent.set_currencies(rates)
       -        self.parent.refresh_fields()
       -
       -    def run(self):
       -        if self.parent.parent.windows and self.timeout <= time.time():
       -            self.update_rate()
       -            self.timeout = time.time() + 150
       -
       -class Plugin(BasePlugin):
       +class Plugin(BasePlugin, ThreadJob):
        
            def __init__(self, parent, config, name):
                BasePlugin.__init__(self, parent, config, name)
       t@@ -221,10 +196,17 @@ class Plugin(BasePlugin):
                self.network = None
                self.set_exchange(self.config_exchange())
                self.currencies = [self.fiat_unit()]
       -        self.exchanger = Exchanger(self)
       -        self.history = {}
                self.btc_rate = Decimal("0.0")
                self.get_historical_rates()
       +        self.timeout = 0
       +
       +    def run(self):
       +        # This runs from the network thread which catches exceptions
       +        if self.parent.windows and self.timeout <= time.time():
       +            self.timeout = time.time() + 150
       +            rates = self.exchange.update(self.fiat_unit())
       +            self.set_currencies(rates)
       +            self.refresh_fields()
        
            def config_exchange(self):
                return self.config.get('use_exchange', 'Blockchain')
       t@@ -244,10 +226,10 @@ class Plugin(BasePlugin):
            def set_network(self, network):
                if network != self.network:
                    if self.network:
       -                self.network.remove_job(self.exchanger)
       +                self.network.remove_job(self)
                    self.network = network
                    if network:
       -                network.add_job(self.exchanger)
       +                network.add_job(self)
        
            def on_new_window(self, window):
                window.connect(window, SIGNAL("refresh_currencies()"),
       t@@ -260,7 +242,6 @@ class Plugin(BasePlugin):
            def close(self):
                BasePlugin.close(self)
                self.set_network(None)
       -        self.exchanger = None
                for window in self.parent.windows:
                    window.send_fiat_e.hide()
                    window.receive_fiat_e.hide()
       t@@ -392,7 +373,7 @@ class Plugin(BasePlugin):
                        self.set_exchange(exchange)
                        self.currencies = []
                        combo.clear()
       -                self.exchanger.timeout = 0
       +                self.timeout = 0
                        hist_checkbox_update()
                        set_currencies(combo)
                        for window in self.parent.windows: