From 545fa265ed8529c60276a4604bdd956eccf68838 Mon Sep 17 00:00:00 2001 From: Marissa Staib Date: Wed, 20 Nov 2019 18:42:34 -0500 Subject: [PATCH] Incremental progress on WaniKani support --- addon/__init__.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/addon/__init__.py b/addon/__init__.py index 7e7076f..dbc37e9 100644 --- a/addon/__init__.py +++ b/addon/__init__.py @@ -211,9 +211,13 @@ def update_unlocked_kanji(config): url = page["pages"]["next_page"] else: url = None - current_ids = set(int(cached_id) for cached_id in config.kanji_list_cache.definitions.keys()) - all_ids = ids | current_ids - # TODO: Get the updated kanji definitions, patch them in to the current dict + previous_ids = set(int(cached_id) for cached_id in config.kanji_list_cache.definitions.keys()) + previous_kanji = set(config.kanji_list_cache.definitions.values()) + all_ids = ids | previous_ids + defs_updated, defs_etag, defs_updates = get_updated_kanji_definitions(config, all_ids) + config.kanji_list_cache.definitions.update(defs_updates) + missing_ids = set(config.kanji_list_cache.definitions.keys()) - previous_ids + # TODO: # Retrieve any items corresponding to ids which are not present in the cache without any cache specifiers # Update the four cache specifiers # Save the configuration @@ -223,7 +227,7 @@ def get_updated_kanji_definitions(config, all_ids): url = ( r"https://api.wanikani.com/v2/subjects" r"?types=kanji" - r"&ids=%s" % (",".join(all_ids)) + r"&ids=%s" % (",".join(all_ids),) ) if config.kanji_list_cache.last_definition_update: url += r"&updated_after=" + config.kanji_list_cache.last_definition_update @@ -253,6 +257,10 @@ def get_updated_kanji_definitions(config, all_ids): return updated, etag, updated_definitions +def get_new_kanji_definitions(config, new_ids): + pass + + def sync_wani_kani(): pass