json loading retries may not be needed

merge-requests/30/head
Bob Mottram 2024-06-20 11:47:58 +01:00
parent 4708a8df8c
commit 9dd546b85c
18 changed files with 84 additions and 91 deletions

View File

@ -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()

View File

@ -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'):

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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()

View File

@ -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 {}

View File

@ -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 {}

View File

@ -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,

View File

@ -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'):

View File

@ -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'):

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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,

View File

@ -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