tfix timestamp of data in get_historical_rates - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 26d09b49151b4eb7a6e486c96e47654b59ef3045 DIR parent 0a1542e2496769a114ab9c1370b4ace4c6505a91 HTML Author: ThomasV <thomasv@electrum.org> Date: Tue, 20 Feb 2018 10:52:11 +0100 fix timestamp of data in get_historical_rates Diffstat: M lib/exchange_rate.py | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) --- DIR diff --git a/lib/exchange_rate.py b/lib/exchange_rate.py t@@ -68,40 +68,41 @@ class ExchangeBase(PrintError): try: with open(filename, 'r') as f: h = json.loads(f.read()) + h['timestamp'] = timestamp except: h = None else: h = None - timestamp = False if h: self.history[ccy] = h self.on_history() - return h, timestamp + return h def get_historical_rates_safe(self, ccy, cache_dir): - h, timestamp = self.read_historical_rates(ccy, cache_dir) - if h is None or time.time() - timestamp < 24*3600: - try: - self.print_error("requesting fx history for", ccy) - h = self.request_history(ccy) - self.print_error("received fx history for", ccy) - self.on_history() - except BaseException as e: - self.print_error("failed fx history:", e) - return - filename = os.path.join(cache_dir, self.name() + '_' + ccy) - with open(filename, 'w') as f: - f.write(json.dumps(h)) + try: + self.print_error("requesting fx history for", ccy) + h = self.request_history(ccy) + self.print_error("received fx history for", ccy) + except BaseException as e: + self.print_error("failed fx history:", e) + return + filename = os.path.join(cache_dir, self.name() + '_' + ccy) + with open(filename, 'w') as f: + f.write(json.dumps(h)) + h['timestamp'] = time.time() self.history[ccy] = h self.on_history() def get_historical_rates(self, ccy, cache_dir): - result = self.history.get(ccy) - if not result and ccy in self.history_ccys(): + if ccy not in self.history_ccys(): + return + h = self.history.get(ccy) + if h is None: + h = self.read_historical_rates(ccy, cache_dir) + if h is None or h['timestamp'] < time.time() - 24*3600: t = Thread(target=self.get_historical_rates_safe, args=(ccy, cache_dir)) t.setDaemon(True) t.start() - return result def history_ccys(self): return []