From 02368d288873beec85485f46fd19728a39ee0580 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 13 Apr 2022 07:43:49 +0530 Subject: [PATCH] DRYer --- src/calibre/gui2/viewer/config.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/calibre/gui2/viewer/config.py b/src/calibre/gui2/viewer/config.py index 2fc31abfca..2efd96e053 100644 --- a/src/calibre/gui2/viewer/config.py +++ b/src/calibre/gui2/viewer/config.py @@ -36,7 +36,7 @@ def reading_rates_path(): return os.path.join(cache_dir(), 'viewer-reading-rates.json') -def save_reading_rates(key, rates): +def get_existing_reading_rates(): path = reading_rates_path() existing = {} try: @@ -49,12 +49,18 @@ def save_reading_rates(key, rates): existing = json.loads(raw) except Exception: pass + return existing + + +def save_reading_rates(key, rates): + existing = get_existing_reading_rates() existing.pop(key, None) existing[key] = rates while len(existing) > 50: expired = next(iter(existing)) del existing[expired] ddata = json.dumps(existing, indent=2).encode('utf-8') + path = reading_rates_path() try: with tempfile.NamedTemporaryFile(dir=os.path.dirname(path), delete=False) as f: f.write(ddata) @@ -65,15 +71,5 @@ def save_reading_rates(key, rates): def load_reading_rates(key): - path = reading_rates_path() - try: - with open(path, 'rb') as f: - raw = f.read() - except OSError: - existing = {} - else: - try: - existing = json.loads(raw) - except Exception: - existing = {} + existing = get_existing_reading_rates() return existing.get(key)