From 9dd546b85c88c366fd0dd6d2f6d51231eab1452e Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 20 Jun 2024 11:47:58 +0100 Subject: [PATCH] json loading retries may not be needed --- content.py | 4 +-- cwlists.py | 2 +- daemon_get.py | 2 +- daemon_get_buttons.py | 16 ++++++------ daemon_post_receive.py | 2 +- daemon_post_remove.py | 2 +- inbox.py | 26 ++++++++++---------- mastoapiv1.py | 2 +- mastoapiv2.py | 2 +- person.py | 2 +- posts.py | 10 ++++---- relationships.py | 2 +- shares.py | 18 +++++++------- tests.py | 10 ++++---- theme.py | 18 +++++++------- utils.py | 53 +++++++++++++++++----------------------- webapp_post.py | 2 +- webapp_theme_designer.py | 2 +- 18 files changed, 84 insertions(+), 91 deletions(-) diff --git a/content.py b/content.py index 7ffe9d031..b94d040b5 100644 --- a/content.py +++ b/content.py @@ -343,7 +343,7 @@ def _save_custom_emoji(session, base_dir: str, emoji_name: str, url: str, emoji_json_filename = custom_emoji_dir + '/emoji.json' emoji_json = {} if os.path.isfile(emoji_json_filename): - emoji_json = load_json(emoji_json_filename, 0, 1) + emoji_json = load_json(emoji_json_filename) if not emoji_json: emoji_json = {} if not emoji_json.get(emoji_name): @@ -2001,7 +2001,7 @@ def import_emoji(base_dir: str, import_filename: str, session) -> None: """ if not os.path.isfile(import_filename): return - emoji_dict = load_json(base_dir + '/emoji/default_emoji.json', 0, 1) + emoji_dict = load_json(base_dir + '/emoji/default_emoji.json') added = 0 with open(import_filename, "r", encoding='utf-8') as fp_emoji: lines = fp_emoji.readlines() diff --git a/cwlists.py b/cwlists.py index 9e08bea91..ef7f2e6c0 100644 --- a/cwlists.py +++ b/cwlists.py @@ -26,7 +26,7 @@ def load_cw_lists(base_dir: str, verbose: bool) -> {}: continue list_filename = os.path.join(base_dir + '/cwlists', fname) print('list_filename: ' + list_filename) - list_json = load_json(list_filename, 0, 1) + list_json = load_json(list_filename) if not list_json: continue if not list_json.get('name'): diff --git a/daemon_get.py b/daemon_get.py index 44ca6961e..e5ee46285 100644 --- a/daemon_get.py +++ b/daemon_get.py @@ -658,7 +658,7 @@ def daemon_http_get(self) -> None: actor_filename = acct_dir(self.server.base_dir, nickname, self.server.domain) + '.json' if os.path.isfile(actor_filename): - actor_json = load_json(actor_filename, 1, 1) + actor_json = load_json(actor_filename) if not actor_json: print('DEBUG: shareditems 2 ' + actor) http_404(self, 114) diff --git a/daemon_get_buttons.py b/daemon_get_buttons.py index 907e9c759..165ce8f06 100644 --- a/daemon_get_buttons.py +++ b/daemon_get_buttons.py @@ -745,7 +745,7 @@ def like_button(self, calling_domain: str, path: str, liked_post_filename = \ locate_post(base_dir, self.post_to_nickname, domain, like_url) if liked_post_filename: - liked_post_json = load_json(liked_post_filename, 0, 1) + liked_post_json = load_json(liked_post_filename) if orig_filename and orig_post_url: update_likes_collection(recent_posts_cache, base_dir, liked_post_filename, @@ -1000,7 +1000,7 @@ def like_button_undo(self, calling_domain: str, path: str, liked_post_filename = locate_post(base_dir, self.post_to_nickname, domain, like_url) if liked_post_filename: - liked_post_json = load_json(liked_post_filename, 0, 1) + liked_post_json = load_json(liked_post_filename) if orig_filename and orig_post_url: undo_likes_collection_entry(recent_posts_cache, base_dir, liked_post_filename, @@ -1264,7 +1264,7 @@ def reaction_button(self, calling_domain: str, path: str, locate_post(base_dir, self.post_to_nickname, domain, reaction_url) if reaction_post_filename: - reaction_post_json = load_json(reaction_post_filename, 0, 1) + reaction_post_json = load_json(reaction_post_filename) if orig_filename and orig_post_url: update_reaction_collection(recent_posts_cache, base_dir, reaction_post_filename, @@ -1544,7 +1544,7 @@ def reaction_button_undo(self, calling_domain: str, path: str, locate_post(base_dir, self.post_to_nickname, domain, reaction_url) if reaction_post_filename: - reaction_post_json = load_json(reaction_post_filename, 0, 1) + reaction_post_json = load_json(reaction_post_filename) if orig_filename and orig_post_url: undo_reaction_collection_entry(recent_posts_cache, base_dir, @@ -1762,7 +1762,7 @@ def bookmark_button(self, calling_domain: str, path: str, locate_post(base_dir, self.post_to_nickname, domain, bookmark_url) if bookmark_filename: print('Regenerating html post for changed bookmark') - bookmark_post_json = load_json(bookmark_filename, 0, 1) + bookmark_post_json = load_json(bookmark_filename) if bookmark_post_json: cached_post_filename = \ get_cached_post_filename(base_dir, self.post_to_nickname, @@ -1973,7 +1973,7 @@ def bookmark_button_undo(self, calling_domain: str, path: str, locate_post(base_dir, self.post_to_nickname, domain, bookmark_url) if bookmark_filename: print('Regenerating html post for changed unbookmark') - bookmark_post_json = load_json(bookmark_filename, 0, 1) + bookmark_post_json = load_json(bookmark_filename) if bookmark_post_json: cached_post_filename = \ get_cached_post_filename(base_dir, self.post_to_nickname, @@ -2283,7 +2283,7 @@ def mute_button(self, calling_domain: str, path: str, locate_post(base_dir, nickname, domain, mute_url) if mute_filename: print('mute_post: Regenerating html post for changed mute status') - mute_post_json = load_json(mute_filename, 0, 1) + mute_post_json = load_json(mute_filename) if mute_post_json: cached_post_filename = \ get_cached_post_filename(base_dir, nickname, @@ -2456,7 +2456,7 @@ def mute_button_undo(self, calling_domain: str, path: str, if mute_filename: print('unmute_post: ' + 'Regenerating html post for changed unmute status') - mute_post_json = load_json(mute_filename, 0, 1) + mute_post_json = load_json(mute_filename) if mute_post_json: cached_post_filename = \ get_cached_post_filename(base_dir, nickname, diff --git a/daemon_post_receive.py b/daemon_post_receive.py index 123a08de0..e6df55f16 100644 --- a/daemon_post_receive.py +++ b/daemon_post_receive.py @@ -1520,7 +1520,7 @@ def _receive_new_post_process_newshare(self, fields: {}, actor_filename = \ acct_dir(base_dir, nickname, domain) + '.json' if os.path.isfile(actor_filename): - actor_json = load_json(actor_filename, 1, 1) + actor_json = load_json(actor_filename) if actor_json: if add_shares_to_actor(base_dir, nickname, domain, actor_json, diff --git a/daemon_post_remove.py b/daemon_post_remove.py index 0901c6d7a..1dd270921 100644 --- a/daemon_post_remove.py +++ b/daemon_post_remove.py @@ -190,7 +190,7 @@ def remove_share(self, calling_domain: str, cookie: str, acct_dir(base_dir, share_nickname, share_domain) + '.json' if os.path.isfile(actor_filename): - actor_json = load_json(actor_filename, 1, 1) + actor_json = load_json(actor_filename) if actor_json: if add_shares_to_actor(base_dir, share_nickname, share_domain, diff --git a/inbox.py b/inbox.py index fa8878ca2..2faf66b80 100644 --- a/inbox.py +++ b/inbox.py @@ -1388,7 +1388,7 @@ def _receive_update_to_question(recent_posts_cache: {}, message_json: {}, if not post_filename: return False # load the json for the question - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: return False if not post_json_object.get('actor'): @@ -1695,7 +1695,7 @@ def _receive_edit_to_post(recent_posts_cache: {}, message_json: {}, return False # load the json for the original post - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: return False if not post_json_object.get('actor'): @@ -1728,7 +1728,7 @@ def _receive_edit_to_post(recent_posts_cache: {}, message_json: {}, post_history_filename = post_filename.replace('.json', '') + '.edits' post_history_json = {} if os.path.isfile(post_history_filename): - post_history_json = load_json(post_history_filename, 1) + post_history_json = load_json(post_history_filename) # get the updated or published date if post_json_object['object'].get('updated'): published_str = post_json_object['object']['updated'] @@ -2188,7 +2188,7 @@ def _receive_like(recent_posts_cache: {}, post_liked_id, like_actor, handle_name, domain, debug, None) # regenerate the html - liked_post_json = load_json(post_filename, 0, 1) + liked_post_json = load_json(post_filename) if liked_post_json: if liked_post_json.get('type'): if liked_post_json['type'] == 'Announce' and \ @@ -2317,7 +2317,7 @@ def _receive_undo_like(recent_posts_cache: {}, undo_likes_collection_entry(recent_posts_cache, base_dir, post_filename, like_actor, domain, debug, None) # regenerate the html - liked_post_json = load_json(post_filename, 0, 1) + liked_post_json = load_json(post_filename) if liked_post_json: if liked_post_json.get('type'): if liked_post_json['type'] == 'Announce' and \ @@ -2473,7 +2473,7 @@ def _receive_reaction(recent_posts_cache: {}, post_reaction_id, reaction_actor, handle_name, domain, debug, None, emoji_content) # regenerate the html - reaction_post_json = load_json(post_filename, 0, 1) + reaction_post_json = load_json(post_filename) if reaction_post_json: if reaction_post_json.get('type'): if reaction_post_json['type'] == 'Announce' and \ @@ -2659,7 +2659,7 @@ def _receive_zot_reaction(recent_posts_cache: {}, post_reaction_id, reaction_actor, handle_name, domain, debug, None, emoji_content) # regenerate the html - reaction_post_json = load_json(post_filename, 0, 1) + reaction_post_json = load_json(post_filename) if reaction_post_json: if reaction_post_json.get('type'): if reaction_post_json['type'] == 'Announce' and \ @@ -2804,7 +2804,7 @@ def _receive_undo_reaction(recent_posts_cache: {}, reaction_actor, domain, debug, None, emoji_content) # regenerate the html - reaction_post_json = load_json(post_filename, 0, 1) + reaction_post_json = load_json(post_filename) if reaction_post_json: if reaction_post_json.get('type'): if reaction_post_json['type'] == 'Announce' and \ @@ -2950,7 +2950,7 @@ def _receive_bookmark(recent_posts_cache: {}, update_bookmarks_collection(recent_posts_cache, base_dir, post_filename, message_url2, actor_url, domain, debug) # regenerate the html - bookmarked_post_json = load_json(post_filename, 0, 1) + bookmarked_post_json = load_json(post_filename) if bookmarked_post_json: if debug: cached_post_filename = \ @@ -3078,7 +3078,7 @@ def _receive_undo_bookmark(recent_posts_cache: {}, post_filename, actor_url, domain, debug) # regenerate the html - bookmarked_post_json = load_json(post_filename, 0, 1) + bookmarked_post_json = load_json(post_filename) if bookmarked_post_json: if debug: cached_post_filename = \ @@ -3811,7 +3811,7 @@ def _already_liked(base_dir: str, nickname: str, domain: str, locate_post(base_dir, nickname, domain, post_url) if not post_filename: return False - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: return False if not has_object_dict(post_json_object): @@ -3841,7 +3841,7 @@ def _already_reacted(base_dir: str, nickname: str, domain: str, locate_post(base_dir, nickname, domain, post_url) if not post_filename: return False - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: return False if not has_object_dict(post_json_object): @@ -6352,7 +6352,7 @@ def run_inbox_queue(server, print('Loading queue item ' + queue_filename) # Load the queue json - queue_json = load_json(queue_filename, 1) + queue_json = load_json(queue_filename) fitness_performance(inbox_start_time, server.fitness, 'INBOX', 'load_queue_json', debug) inbox_start_time = time.time() diff --git a/mastoapiv1.py b/mastoapiv1.py index 05c30eec7..9f71b8ae5 100644 --- a/mastoapiv1.py +++ b/mastoapiv1.py @@ -36,7 +36,7 @@ def _meta_data_instance_v1(show_accounts: bool, if not os.path.isfile(admin_actor_filename): return {} - admin_actor = load_json(admin_actor_filename, 0) + admin_actor = load_json(admin_actor_filename) if not admin_actor: print('WARN: json load exception _meta_data_instance_v1') return {} diff --git a/mastoapiv2.py b/mastoapiv2.py index b1fe55866..f8ed3809f 100644 --- a/mastoapiv2.py +++ b/mastoapiv2.py @@ -43,7 +43,7 @@ def _meta_data_instance_v2(show_accounts: bool, if not os.path.isfile(admin_actor_filename): return {} - admin_actor = load_json(admin_actor_filename, 0) + admin_actor = load_json(admin_actor_filename) if not admin_actor: print('WARN: json load exception _meta_data_instance_v1') return {} diff --git a/person.py b/person.py index a6789e8d0..14e929e08 100644 --- a/person.py +++ b/person.py @@ -2281,7 +2281,7 @@ def get_account_pub_key(path: str, person_cache: {}, actor_filename = acct_dir(base_dir, nickname, domain) + '.json' if not os.path.isfile(actor_filename): return None - actor_json = load_json(actor_filename, 1, 1) + actor_json = load_json(actor_filename) if not actor_json: return None store_person_in_cache(base_dir, actor, actor_json, diff --git a/posts.py b/posts.py index 48feb0989..815d257cb 100644 --- a/posts.py +++ b/posts.py @@ -4576,7 +4576,7 @@ def _passed_newswire_voting(newswire_votes_threshold: int, if not votes_filename: return True # load the votes file and count the votes - votes_json = load_json(votes_filename, 0, 2) + votes_json = load_json(votes_filename) if not votes_json: return True if not positive_voting: @@ -5070,7 +5070,7 @@ def _novel_fields_for_person(nickname: str, domain: str, full_filename = os.path.join(box_dir, post_filename) if not os.path.isfile(full_filename): continue - post_json_object = load_json(full_filename, 0, 1) + post_json_object = load_json(full_filename) if not post_json_object: continue if not has_object_dict(post_json_object): @@ -6758,7 +6758,7 @@ def edited_post_filename(base_dir: str, nickname: str, domain: str, locate_post(base_dir, nickname, domain, lastpost_id, False) if not lastpost_filename: return '', None - lastpost_json = load_json(lastpost_filename, 0) + lastpost_json = load_json(lastpost_filename) if not lastpost_json: return '', None if not lastpost_json.get('type'): @@ -6815,7 +6815,7 @@ def get_original_post_from_announce_url(announce_url: str, base_dir: str, post_filename = locate_post(base_dir, nickname, domain, announce_url) if not post_filename: return None, None, None - announce_post_json = load_json(post_filename, 0, 1) + announce_post_json = load_json(post_filename) if not announce_post_json: return None, None, post_filename if not announce_post_json.get('type'): @@ -6832,7 +6832,7 @@ def get_original_post_from_announce_url(announce_url: str, base_dir: str, orig_filename = locate_post(base_dir, nickname, domain, orig_post_id) if orig_filename: # we have the original post - orig_post_json = load_json(orig_filename, 0, 1) + orig_post_json = load_json(orig_filename) if orig_post_json: if has_object_dict(orig_post_json): if orig_post_json['object'].get('attributedTo'): diff --git a/relationships.py b/relationships.py index c34672a4d..08c5218b5 100644 --- a/relationships.py +++ b/relationships.py @@ -268,7 +268,7 @@ def update_moved_actors(base_dir: str, debug: bool) -> None: actor_filename = base_dir + '/cache/actors/' + actors_dict[handle] if not os.path.isfile(actor_filename): continue - actor_json = load_json(actor_filename, 1, 1) + actor_json = load_json(actor_filename) if not actor_json: continue if not actor_json.get('movedTo'): diff --git a/shares.py b/shares.py index eab12ba9a..1471c47a2 100644 --- a/shares.py +++ b/shares.py @@ -337,7 +337,7 @@ def add_share(base_dir: str, acct_dir(base_dir, nickname, domain) + '/' + shares_file_type + '.json' shares_json = {} if os.path.isfile(shares_filename): - shares_json = load_json(shares_filename, 1, 2) + shares_json = load_json(shares_filename) duration = duration.lower() published = int(time.time()) @@ -469,7 +469,7 @@ def _expire_shares_for_account(base_dir: str, nickname: str, domain: str, acct_handle_dir(base_dir, handle) + '/' + shares_file_type + '.json' if not os.path.isfile(shares_filename): return 0 - shares_json = load_json(shares_filename, 1, 2) + shares_json = load_json(shares_filename) if not shares_json: return 0 curr_time = int(time.time()) @@ -1323,7 +1323,7 @@ def shares_catalog_account_endpoint(base_dir: str, http_prefix: str, print(shares_file_type + '.json file not found: ' + shares_filename) return endpoint - shares_json = load_json(shares_filename, 1, 2) + shares_json = load_json(shares_filename) if not shares_json: if debug: print('Unable to load json for ' + shares_filename) @@ -1419,7 +1419,7 @@ def shares_catalog_endpoint(base_dir: str, http_prefix: str, if not os.path.isfile(shares_filename): continue print('Test 78363 ' + shares_filename) - shares_json = load_json(shares_filename, 1, 2) + shares_json = load_json(shares_filename) if not shares_json: continue @@ -1511,7 +1511,7 @@ def generate_shared_item_federation_tokens(shared_items_federated_domains: [], tokens_filename = \ data_dir(base_dir) + '/sharedItemsFederationTokens.json' if os.path.isfile(tokens_filename): - tokens_json = load_json(tokens_filename, 1, 2) + tokens_json = load_json(tokens_filename) if tokens_json is None: tokens_json = {} @@ -1544,7 +1544,7 @@ def update_shared_item_federation_token(base_dir: str, if os.path.isfile(tokens_filename): if debug: print('Update loading tokens for ' + token_domain_full) - tokens_json = load_json(tokens_filename, 1, 2) + tokens_json = load_json(tokens_filename) if tokens_json is None: tokens_json = {} update_required = False @@ -1602,7 +1602,7 @@ def create_shared_item_federation_token(base_dir: str, tokens_filename = \ data_dir(base_dir) + '/sharedItemsFederationTokens.json' if os.path.isfile(tokens_filename): - tokens_json = load_json(tokens_filename, 1, 2) + tokens_json = load_json(tokens_filename) if tokens_json is None: tokens_json = {} if force or not tokens_json.get(token_domain_full): @@ -1652,7 +1652,7 @@ def authorize_shared_items(shared_items_federated_domains: [], print('DEBUG: shared item federation tokens file missing ' + tokens_filename) return False - tokens_json = load_json(tokens_filename, 1, 2) + tokens_json = load_json(tokens_filename) if not tokens_json: return False if not tokens_json.get(calling_domain_full): @@ -1878,7 +1878,7 @@ def run_federated_shares_daemon(base_dir: str, httpd, http_prefix: str, if not os.path.isfile(tokens_filename): time.sleep(file_check_interval_sec) continue - tokens_json = load_json(tokens_filename, 1, 2) + tokens_json = load_json(tokens_filename) if not tokens_json: time.sleep(file_check_interval_sec) continue diff --git a/tests.py b/tests.py index a603fc8b8..09c9e1553 100644 --- a/tests.py +++ b/tests.py @@ -1508,7 +1508,7 @@ def test_post_message_between_servers(base_dir: str) -> None: for name in os.listdir(inbox_path): filename = os.path.join(inbox_path, name) assert os.path.isfile(filename) - received_json = load_json(filename, 0) + received_json = load_json(filename) if received_json: pprint(received_json['object']['content']) assert received_json @@ -1577,7 +1577,7 @@ def test_post_message_between_servers(base_dir: str) -> None: break time.sleep(1) - alice_post_json = load_json(outbox_post_filename, 0) + alice_post_json = load_json(outbox_post_filename) if alice_post_json: pprint(alice_post_json) @@ -1602,7 +1602,7 @@ def test_post_message_between_servers(base_dir: str) -> None: break time.sleep(1) - alice_post_json = load_json(outbox_post_filename, 0) + alice_post_json = load_json(outbox_post_filename) if alice_post_json: pprint(alice_post_json) @@ -3391,7 +3391,7 @@ def test_client_to_server(base_dir: str): status_number = name.split('#statuses#')[1].replace('.json', '') status_number = int(status_number.replace('#activity', '')) outbox_post_filename = outbox_path + '/' + name - post_json_object = load_json(outbox_post_filename, 0) + post_json_object = load_json(outbox_post_filename) if post_json_object: outbox_post_id = remove_id_ending(post_json_object['id']) assert outbox_post_id @@ -4039,7 +4039,7 @@ def _test_json_string() -> None: "content": message_str } assert save_json(test_json, filename) - received_json = load_json(filename, 0) + received_json = load_json(filename) assert received_json assert received_json['content'] == message_str encoded_str = json.dumps(test_json, ensure_ascii=False) diff --git a/theme.py b/theme.py index a01ded3b9..bc614a987 100644 --- a/theme.py +++ b/theme.py @@ -176,7 +176,7 @@ def _set_theme_in_config(base_dir: str, name: str) -> bool: config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['theme'] = name @@ -189,7 +189,7 @@ def _set_newswire_publish_as_icon(base_dir: str, use_icon: bool) -> bool: config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['showPublishAsIcon'] = use_icon @@ -203,7 +203,7 @@ def _set_icons_as_buttons(base_dir: str, use_buttons: bool) -> bool: config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['iconsAsButtons'] = use_buttons @@ -216,7 +216,7 @@ def _set_rss_icon_at_top(base_dir: str, at_top: bool) -> bool: config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['rssIconAtTop'] = at_top @@ -230,7 +230,7 @@ def _set_publish_button_at_top(base_dir: str, at_top: bool) -> bool: config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['publishButtonAtTop'] = at_top @@ -245,7 +245,7 @@ def _set_full_width_timeline_button_header(base_dir: str, config_filename = base_dir + '/config.json' if not os.path.isfile(config_filename): return False - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if not config_json: return False config_json['fullWidthTlButtonHeader'] = full_width @@ -257,7 +257,7 @@ def get_theme(base_dir: str) -> str: """ config_filename = base_dir + '/config.json' if os.path.isfile(config_filename): - config_json = load_json(config_filename, 0) + config_json = load_json(config_filename) if config_json: if config_json.get('theme'): return config_json['theme'] @@ -590,14 +590,14 @@ def _read_variables_file(base_dir: str, theme_name: str, system_language: str) -> None: """Reads variables from a file in the theme directory """ - theme_params = load_json(variables_file, 0) + theme_params = load_json(variables_file) if not theme_params: return # set custom theme parameters custom_variables_file = data_dir(base_dir) + '/theme.json' if os.path.isfile(custom_variables_file): - custom_theme_params = load_json(custom_variables_file, 0) + custom_theme_params = load_json(custom_variables_file) if custom_theme_params: for variable_name, value in custom_theme_params.items(): theme_params[variable_name] = value diff --git a/utils.py b/utils.py index e6ac52f16..592b0e26f 100644 --- a/utils.py +++ b/utils.py @@ -1317,40 +1317,33 @@ def save_json(json_object: {}, filename: str) -> bool: return False -def load_json(filename: str, delay_sec: int = 2, max_tries: int = 5) -> {}: +def load_json(filename: str) -> {}: """Makes a few attempts to load a json formatted file """ if '/Actor@' in filename: filename = filename.replace('/Actor@', '/inbox@') + json_object = None - tries = 1 - while tries <= max_tries: - data = None + data = None - # load from file - try: - with open(filename, 'r', encoding='utf-8') as json_file: - data = json_file.read() - except OSError as exc: - print('EX: load_json exception ' + - str(tries) + ' ' + str(filename) + ' ' + str(exc)) - break + # load from file + try: + with open(filename, 'r', encoding='utf-8') as json_file: + data = json_file.read() + except OSError as exc: + print('EX: load_json exception ' + str(filename) + ' ' + str(exc)) + return json_object - # check that something was loaded - if not data: - print('EX: load_json no data ' + str(filename)) - break + # check that something was loaded + if not data: + print('EX: load_json no data ' + str(filename)) + return json_object - # convert to json - try: - json_object = json.loads(data) - break - except BaseException as exc: - print('EX: load_json exception ' + - str(tries) + ' ' + str(filename) + ' ' + str(exc)) - if delay_sec > 0: - time.sleep(delay_sec) - tries += 1 + # convert to json + try: + json_object = json.loads(data) + except BaseException as exc: + print('EX: load_json exception ' + str(filename) + ' ' + str(exc)) return json_object @@ -1729,7 +1722,7 @@ def get_display_name(base_dir: str, actor: str, person_cache: {}) -> str: cached_actor_filename = \ base_dir + '/cache/actors/' + (actor.replace('/', '#')) + '.json' if os.path.isfile(cached_actor_filename): - actor_json = load_json(cached_actor_filename, 1) + actor_json = load_json(cached_actor_filename) if actor_json: if actor_json.get('name'): name_found = actor_json['name'] @@ -1805,7 +1798,7 @@ def get_gender_from_bio(base_dir: str, actor: str, person_cache: {}, cached_actor_filename = \ base_dir + '/cache/actors/' + (actor.replace('/', '#')) + '.json' if os.path.isfile(cached_actor_filename): - actor_json = load_json(cached_actor_filename, 1) + actor_json = load_json(cached_actor_filename) if not actor_json: return default_gender # is gender defined as a profile tag? @@ -2720,7 +2713,7 @@ def delete_post(base_dir: str, http_prefix: str, manual: bool) -> None: """Recursively deletes a post and its replies and attachments """ - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: # remove any replies _delete_post_remove_replies(base_dir, nickname, domain, @@ -2991,7 +2984,7 @@ def is_public_post_from_url(base_dir: str, nickname: str, domain: str, post_filename = locate_post(base_dir, nickname, domain, post_url) if not post_filename: return False - post_json_object = load_json(post_filename, 1) + post_json_object = load_json(post_filename) if not post_json_object: return False return is_public_post(post_json_object) diff --git a/webapp_post.py b/webapp_post.py index 278a256f4..87c510ecd 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -2656,7 +2656,7 @@ def individual_post_as_html(signing_priv_key_pem: str, edits_filename = account_dir + box_name + '/' + edits_post_url edits_str = '' if os.path.isfile(edits_filename): - edits_json = load_json(edits_filename, 0, 1) + edits_json = load_json(edits_filename) if edits_json: edits_str = create_edits_html(edits_json, post_json_object, translate, timezone, system_language, diff --git a/webapp_theme_designer.py b/webapp_theme_designer.py index 717474b46..ada2a879f 100644 --- a/webapp_theme_designer.py +++ b/webapp_theme_designer.py @@ -181,7 +181,7 @@ def html_theme_designer(base_dir: str, # set custom theme parameters custom_variables_file = data_dir(base_dir) + '/theme.json' if os.path.isfile(custom_variables_file): - custom_theme_params = load_json(custom_variables_file, 0) + custom_theme_params = load_json(custom_variables_file) if custom_theme_params: for variable_name, value in custom_theme_params.items(): theme_json[variable_name] = value