Merge branch 'main' of gitlab.com:bashrc2/epicyon

merge-requests/30/head
Bob Mottram 2022-06-12 23:30:57 +01:00
commit afe133b871
13 changed files with 55 additions and 106 deletions

View File

@ -2165,7 +2165,7 @@ class PubServer(BaseHTTPRequestHandler):
print('EX: Unable to save token for ' + print('EX: Unable to save token for ' +
login_nickname + ' ' + str(ex)) login_nickname + ' ' + str(ex))
person_upgrade_actor(base_dir, None, login_handle, person_upgrade_actor(base_dir, None,
base_dir + '/accounts/' + base_dir + '/accounts/' +
login_handle + '.json') login_handle + '.json')
@ -2408,8 +2408,7 @@ class PubServer(BaseHTTPRequestHandler):
locate_post(base_dir, nickname, domain, locate_post(base_dir, nickname, domain,
moderation_text) moderation_text)
if post_filename: if post_filename:
if can_remove_post(base_dir, if can_remove_post(base_dir, domain, port,
nickname, domain, port,
moderation_text): moderation_text):
delete_post(base_dir, delete_post(base_dir,
http_prefix, http_prefix,
@ -2425,8 +2424,7 @@ class PubServer(BaseHTTPRequestHandler):
locate_post(base_dir, 'news', domain, locate_post(base_dir, 'news', domain,
moderation_text) moderation_text)
if post_filename: if post_filename:
if can_remove_post(base_dir, if can_remove_post(base_dir, domain, port,
'news', domain, port,
moderation_text): moderation_text):
delete_post(base_dir, delete_post(base_dir,
http_prefix, http_prefix,
@ -2575,9 +2573,7 @@ class PubServer(BaseHTTPRequestHandler):
if 'submitThemeDesignerReset=' in theme_params or \ if 'submitThemeDesignerReset=' in theme_params or \
'submitThemeDesigner=' not in theme_params: 'submitThemeDesigner=' not in theme_params:
if 'submitThemeDesignerReset=' in theme_params: if 'submitThemeDesignerReset=' in theme_params:
reset_theme_designer_settings(base_dir, theme_name, domain, reset_theme_designer_settings(base_dir)
allow_local_network_access,
system_language)
set_theme(base_dir, theme_name, domain, set_theme(base_dir, theme_name, domain,
allow_local_network_access, system_language, allow_local_network_access, system_language,
dyslexic_font, True) dyslexic_font, True)
@ -4555,7 +4551,7 @@ class PubServer(BaseHTTPRequestHandler):
get_domain_from_actor(share_actor) get_domain_from_actor(share_actor)
remove_shared_item(base_dir, remove_shared_item(base_dir,
share_nickname, share_domain, item_id, share_nickname, share_domain, item_id,
http_prefix, domain_full, 'shares') 'shares')
if calling_domain.endswith('.onion') and onion_domain: if calling_domain.endswith('.onion') and onion_domain:
origin_path_str = 'http://' + onion_domain + users_path origin_path_str = 'http://' + onion_domain + users_path
@ -4628,7 +4624,7 @@ class PubServer(BaseHTTPRequestHandler):
get_domain_from_actor(share_actor) get_domain_from_actor(share_actor)
remove_shared_item(base_dir, remove_shared_item(base_dir,
share_nickname, share_domain, item_id, share_nickname, share_domain, item_id,
http_prefix, domain_full, 'wanted') 'wanted')
if calling_domain.endswith('.onion') and onion_domain: if calling_domain.endswith('.onion') and onion_domain:
origin_path_str = 'http://' + onion_domain + users_path origin_path_str = 'http://' + onion_domain + users_path
@ -18528,14 +18524,12 @@ class PubServer(BaseHTTPRequestHandler):
response_str = None response_str = None
if endpoint_type == 'propfind': if endpoint_type == 'propfind':
response_str = \ response_str = \
dav_propfind_response(self.server.base_dir, dav_propfind_response(nickname, propfind_xml)
nickname, self.server.domain,
depth, propfind_xml)
elif endpoint_type == 'put': elif endpoint_type == 'put':
response_str = \ response_str = \
dav_put_response(self.server.base_dir, dav_put_response(self.server.base_dir,
nickname, self.server.domain, nickname, self.server.domain,
depth, propfind_xml, propfind_xml,
self.server.http_prefix, self.server.http_prefix,
self.server.system_language, self.server.system_language,
self.server.recent_dav_etags) self.server.recent_dav_etags)
@ -18548,7 +18542,7 @@ class PubServer(BaseHTTPRequestHandler):
response_str = \ response_str = \
dav_report_response(self.server.base_dir, dav_report_response(self.server.base_dir,
nickname, self.server.domain, nickname, self.server.domain,
depth, propfind_xml, propfind_xml,
self.server.person_cache, self.server.person_cache,
self.server.http_prefix, self.server.http_prefix,
curr_etag, curr_etag,

View File

@ -793,8 +793,7 @@ def _dav_decode_token(token: str) -> (int, int, str):
return token_year, token_month_number, token_post_id return token_year, token_month_number, token_post_id
def dav_propfind_response(base_dir: str, nickname: str, domain: str, def dav_propfind_response(nickname: str, xml_str: str) -> str:
depth: int, xml_str: str) -> str:
"""Returns the response to caldav PROPFIND """Returns the response to caldav PROPFIND
""" """
if '<d:propfind' not in xml_str or \ if '<d:propfind' not in xml_str or \
@ -977,7 +976,7 @@ def _dav_update_recent_etags(etag: str, nickname: str,
def dav_put_response(base_dir: str, nickname: str, domain: str, def dav_put_response(base_dir: str, nickname: str, domain: str,
depth: int, xml_str: str, http_prefix: str, xml_str: str, http_prefix: str,
system_language: str, system_language: str,
recent_dav_etags: {}) -> str: recent_dav_etags: {}) -> str:
"""Returns the response to caldav PUT """Returns the response to caldav PUT
@ -1023,7 +1022,7 @@ def dav_put_response(base_dir: str, nickname: str, domain: str,
def dav_report_response(base_dir: str, nickname: str, domain: str, def dav_report_response(base_dir: str, nickname: str, domain: str,
depth: int, xml_str: str, xml_str: str,
person_cache: {}, http_prefix: str, person_cache: {}, http_prefix: str,
curr_etag: str, recent_dav_etags: {}, curr_etag: str, recent_dav_etags: {},
domain_full: str, system_language: str) -> str: domain_full: str, system_language: str) -> str:

View File

@ -66,8 +66,7 @@ def _update_feeds_outbox_index(base_dir: str, domain: str,
print('EX: unable to write ' + index_filename) print('EX: unable to write ' + index_filename)
def _save_arrived_time(base_dir: str, post_filename: str, def _save_arrived_time(post_filename: str, arrived: str) -> None:
arrived: str) -> None:
"""Saves the time when an rss post arrived to a file """Saves the time when an rss post arrived to a file
""" """
try: try:
@ -100,8 +99,7 @@ def _hashtag_logical_not(tree: [], hashtags: [], moderated: bool,
return False return False
def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool, def _hashtag_logical_contains(tree: [], content: str) -> bool:
content: str, url: str) -> bool:
""" Contains """ Contains
""" """
if len(tree) != 2: if len(tree) != 2:
@ -121,8 +119,7 @@ def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool,
return False return False
def _hashtag_logical_from(tree: [], hashtags: [], moderated: bool, def _hashtag_logical_from(tree: [], url: str) -> bool:
content: str, url: str) -> bool:
""" FROM """ FROM
""" """
if len(tree) != 2: if len(tree) != 2:
@ -210,10 +207,9 @@ def hashtag_rule_resolve(tree: [], hashtags: [], moderated: bool,
if tree[0] == 'not': if tree[0] == 'not':
return _hashtag_logical_not(tree, hashtags, moderated, content, url) return _hashtag_logical_not(tree, hashtags, moderated, content, url)
if tree[0] == 'contains': if tree[0] == 'contains':
return _hashtag_logical_contains(tree, hashtags, moderated, return _hashtag_logical_contains(tree, content)
content, url)
if tree[0] == 'from': if tree[0] == 'from':
return _hashtag_logical_from(tree, hashtags, moderated, content, url) return _hashtag_logical_from(tree, url)
if tree[0] == 'and': if tree[0] == 'and':
return _hashtag_logical_and(tree, hashtags, moderated, content, url) return _hashtag_logical_and(tree, hashtags, moderated, content, url)
if tree[0] == 'or': if tree[0] == 'or':
@ -378,13 +374,9 @@ def _hashtag_remove(http_prefix: str, domain_full: str, post_json_object: {},
post_json_object['object']['tag'].remove(rm_tag_object) post_json_object['object']['tag'].remove(rm_tag_object)
def _newswire_hashtag_processing(session, base_dir: str, post_json_object: {}, def _newswire_hashtag_processing(base_dir: str, post_json_object: {},
hashtags: [], http_prefix: str, hashtags: [], http_prefix: str,
domain: str, port: int, domain: str, port: int,
person_cache: {},
cached_webfingers: {},
federation_list: [],
send_threads: [], post_log: [],
moderated: bool, url: str, moderated: bool, url: str,
system_language: str, system_language: str,
translate: {}) -> bool: translate: {}) -> bool:
@ -549,11 +541,6 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
newswire: {}, newswire: {},
translate: {}, translate: {},
recent_posts_cache: {}, recent_posts_cache: {},
max_recent_posts: int,
session, cached_webfingers: {},
person_cache: {},
federation_list: [],
send_threads: [], post_log: [],
max_mirrored_articles: int, max_mirrored_articles: int,
allow_local_network_access: bool, allow_local_network_access: bool,
system_language: str, system_language: str,
@ -697,12 +684,8 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
moderated = item[5] moderated = item[5]
save_post = \ save_post = \
_newswire_hashtag_processing(session, base_dir, _newswire_hashtag_processing(base_dir, blog, hashtags,
blog, hashtags,
http_prefix, domain, port, http_prefix, domain, port,
person_cache, cached_webfingers,
federation_list,
send_threads, post_log,
moderated, url, system_language, moderated, url, system_language,
translate) translate)
@ -755,7 +738,7 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str,
# this can then later be used to construct the news timeline # this can then later be used to construct the news timeline
# excluding items during the voting period # excluding items during the voting period
if moderated: if moderated:
_save_arrived_time(base_dir, filename, _save_arrived_time(filename,
blog['object']['arrived']) blog['object']['arrived'])
else: else:
if os.path.isfile(filename + '.arrived'): if os.path.isfile(filename + '.arrived'):
@ -842,17 +825,9 @@ def run_newswire_daemon(base_dir: str, httpd,
print('No new newswire') print('No new newswire')
print('Converting newswire to activitypub format') print('Converting newswire to activitypub format')
_convert_rss_to_activitypub(base_dir, _convert_rss_to_activitypub(base_dir, http_prefix, domain, port,
http_prefix, domain, port,
new_newswire, translate, new_newswire, translate,
httpd.recent_posts_cache, httpd.recent_posts_cache,
httpd.max_recent_posts,
httpd.session,
httpd.cached_webfingers,
httpd.person_cache,
httpd.federation_list,
httpd.send_threads,
httpd.postLog,
httpd.max_mirrored_articles, httpd.max_mirrored_articles,
httpd.allow_local_network_access, httpd.allow_local_network_access,
httpd.system_language, httpd.system_language,

View File

@ -60,8 +60,7 @@ from webapp_post import individual_post_as_html
from speaker import update_speaker from speaker import update_speaker
def _person_receive_update_outbox(recent_posts_cache: {}, def _person_receive_update_outbox(base_dir: str, http_prefix: str,
base_dir: str, http_prefix: str,
nickname: str, domain: str, port: int, nickname: str, domain: str, port: int,
message_json: {}, debug: bool) -> None: message_json: {}, debug: bool) -> None:
""" Receive an actor update from c2s """ Receive an actor update from c2s
@ -588,14 +587,12 @@ def post_message_to_outbox(session, translate: {},
if debug: if debug:
print('DEBUG: handle any emoji reaction requests') print('DEBUG: handle any emoji reaction requests')
outbox_reaction(recent_posts_cache, outbox_reaction(recent_posts_cache,
base_dir, http_prefix, base_dir, post_to_nickname, domain,
post_to_nickname, domain, port,
message_json, debug) message_json, debug)
if debug: if debug:
print('DEBUG: handle any undo emoji reaction requests') print('DEBUG: handle any undo emoji reaction requests')
outbox_undo_reaction(recent_posts_cache, outbox_undo_reaction(recent_posts_cache,
base_dir, http_prefix, base_dir, post_to_nickname, domain,
post_to_nickname, domain, port,
message_json, debug) message_json, debug)
if debug: if debug:
@ -659,14 +656,12 @@ def post_message_to_outbox(session, translate: {},
if debug: if debug:
print('DEBUG: handle undo share uploads') print('DEBUG: handle undo share uploads')
outbox_undo_share_upload(base_dir, http_prefix, outbox_undo_share_upload(base_dir, post_to_nickname, domain,
post_to_nickname, domain, message_json, debug)
port, message_json, debug)
if debug: if debug:
print('DEBUG: handle actor updates from c2s') print('DEBUG: handle actor updates from c2s')
_person_receive_update_outbox(recent_posts_cache, _person_receive_update_outbox(base_dir, http_prefix,
base_dir, http_prefix,
post_to_nickname, domain, port, post_to_nickname, domain, port,
message_json, debug) message_json, debug)

View File

@ -74,6 +74,8 @@ from follow import is_following_actor
def generate_rsa_key() -> (str, str): def generate_rsa_key() -> (str, str):
"""Creates an RSA key for signing
"""
key = rsa.generate_private_key( key = rsa.generate_private_key(
public_exponent=65537, public_exponent=65537,
key_size=2048, key_size=2048,
@ -755,7 +757,7 @@ def create_news_inbox(base_dir: str, domain: str, port: int,
def person_upgrade_actor(base_dir: str, person_json: {}, def person_upgrade_actor(base_dir: str, person_json: {},
handle: str, filename: str) -> None: filename: str) -> None:
"""Alter the actor to add any new properties """Alter the actor to add any new properties
""" """
update_actor = False update_actor = False
@ -948,7 +950,7 @@ def person_lookup(domain: str, path: str, base_dir: str) -> {}:
return None return None
person_json = load_json(filename) person_json = load_json(filename)
if not is_shared_inbox: if not is_shared_inbox:
person_upgrade_actor(base_dir, person_json, handle, filename) person_upgrade_actor(base_dir, person_json, filename)
# if not person_json: # if not person_json:
# person_json={"user": "unknown"} # person_json={"user": "unknown"}
return person_json return person_json
@ -1053,6 +1055,8 @@ def person_box_json(recent_posts_cache: {},
def set_display_nickname(base_dir: str, nickname: str, domain: str, def set_display_nickname(base_dir: str, nickname: str, domain: str,
display_name: str) -> bool: display_name: str) -> bool:
"""Sets the display name for an account
"""
if len(display_name) > 32: if len(display_name) > 32:
return False return False
handle = nickname + '@' + domain handle = nickname + '@' + domain
@ -1159,7 +1163,7 @@ def suspend_account(base_dir: str, nickname: str, domain: str) -> None:
print('EX: unable to write ' + suspended_filename) print('EX: unable to write ' + suspended_filename)
def can_remove_post(base_dir: str, nickname: str, def can_remove_post(base_dir: str,
domain: str, port: int, post_id: str) -> bool: domain: str, port: int, post_id: str) -> bool:
"""Returns true if the given post can be removed """Returns true if the given post can be removed
""" """
@ -1679,8 +1683,8 @@ def get_actor_json(host_domain: str, handle: str, http: bool, gnunet: bool,
return None, None return None, None
def get_person_avatar_url(base_dir: str, person_url: str, person_cache: {}, def get_person_avatar_url(base_dir: str, person_url: str,
allow_downloads: bool) -> str: person_cache: {}) -> str:
"""Returns the avatar url for the person """Returns the avatar url for the person
""" """
person_json = \ person_json = \

View File

@ -361,8 +361,7 @@ def send_undo_reaction_via_server(base_dir: str, session,
def outbox_reaction(recent_posts_cache: {}, def outbox_reaction(recent_posts_cache: {},
base_dir: str, http_prefix: str, base_dir: str, nickname: str, domain: str,
nickname: str, domain: str, port: int,
message_json: {}, debug: bool) -> None: message_json: {}, debug: bool) -> None:
""" When a reaction request is received by the outbox from c2s """ When a reaction request is received by the outbox from c2s
""" """
@ -405,8 +404,7 @@ def outbox_reaction(recent_posts_cache: {},
def outbox_undo_reaction(recent_posts_cache: {}, def outbox_undo_reaction(recent_posts_cache: {},
base_dir: str, http_prefix: str, base_dir: str, nickname: str, domain: str,
nickname: str, domain: str, port: int,
message_json: {}, debug: bool) -> None: message_json: {}, debug: bool) -> None:
""" When an undo reaction request is received by the outbox from c2s """ When an undo reaction request is received by the outbox from c2s
""" """

View File

@ -119,9 +119,7 @@ def _get_valid_shared_item_id(actor: str, display_name: str) -> str:
def remove_shared_item(base_dir: str, nickname: str, domain: str, def remove_shared_item(base_dir: str, nickname: str, domain: str,
item_id: str, item_id: str, shares_file_type: str) -> None:
http_prefix: str, domain_full: str,
shares_file_type: str) -> None:
"""Removes a share for a person """Removes a share for a person
""" """
shares_filename = \ shares_filename = \
@ -992,8 +990,7 @@ def send_undo_wanted_via_server(base_dir: str, session,
return undo_share_json return undo_share_json
def get_shared_items_catalog_via_server(base_dir, session, def get_shared_items_catalog_via_server(session, nickname: str, password: str,
nickname: str, password: str,
domain: str, port: int, domain: str, port: int,
http_prefix: str, debug: bool, http_prefix: str, debug: bool,
signing_priv_key_pem: str) -> {}: signing_priv_key_pem: str) -> {}:
@ -1100,8 +1097,7 @@ def outbox_share_upload(base_dir: str, http_prefix: str,
print('DEBUG: shared item received via c2s') print('DEBUG: shared item received via c2s')
def outbox_undo_share_upload(base_dir: str, http_prefix: str, def outbox_undo_share_upload(base_dir: str, nickname: str, domain: str,
nickname: str, domain: str, port: int,
message_json: {}, debug: bool) -> None: message_json: {}, debug: bool) -> None:
""" When a shared item is removed via c2s """ When a shared item is removed via c2s
""" """
@ -1119,10 +1115,9 @@ def outbox_undo_share_upload(base_dir: str, http_prefix: str,
if debug: if debug:
print('DEBUG: displayName missing from Offer') print('DEBUG: displayName missing from Offer')
return return
domain_full = get_full_domain(domain, port)
remove_shared_item(base_dir, nickname, domain, remove_shared_item(base_dir, nickname, domain,
message_json['object']['displayName'], message_json['object']['displayName'],
http_prefix, domain_full, 'shares') 'shares')
if debug: if debug:
print('DEBUG: shared item removed via c2s') print('DEBUG: shared item removed via c2s')

View File

@ -1994,7 +1994,7 @@ def test_shared_items_federation(base_dir: str) -> None:
print('Bob can read the shared items catalog on his own instance') print('Bob can read the shared items catalog on his own instance')
signing_priv_key_pem = None signing_priv_key_pem = None
catalog_json = \ catalog_json = \
get_shared_items_catalog_via_server(bob_dir, session_bob, get_shared_items_catalog_via_server(session_bob,
'bob', bob_password, 'bob', bob_password,
bob_domain, bob_port, bob_domain, bob_port,
http_prefix, True, http_prefix, True,

View File

@ -394,10 +394,10 @@ def _set_theme_from_dict(base_dir: str, name: str,
) )
for scr in screen_name: for scr in screen_name:
if bg_params.get(scr): if bg_params.get(scr):
_set_background_format(base_dir, name, scr, bg_params[scr]) _set_background_format(base_dir, scr, bg_params[scr])
def _set_background_format(base_dir: str, name: str, def _set_background_format(base_dir: str,
background_type: str, extension: str) -> None: background_type: str, extension: str) -> None:
"""Sets the background file extension """Sets the background file extension
""" """
@ -533,9 +533,7 @@ def set_theme_from_designer(base_dir: str, theme_name: str, domain: str,
dyslexic_font, False) dyslexic_font, False)
def reset_theme_designer_settings(base_dir: str, theme_name: str, domain: str, def reset_theme_designer_settings(base_dir: str) -> None:
allow_local_network_access: bool,
system_language: str) -> None:
"""Resets the theme designer settings """Resets the theme designer settings
""" """
custom_variables_file = base_dir + '/accounts/theme.json' custom_variables_file = base_dir + '/accounts/theme.json'
@ -864,9 +862,7 @@ def set_theme(base_dir: str, name: str, domain: str,
# if the theme has changed then remove any custom settings # if the theme has changed then remove any custom settings
if prev_theme_name != name or designer_reset: if prev_theme_name != name or designer_reset:
reset_theme_designer_settings(base_dir, name, domain, reset_theme_designer_settings(base_dir)
allow_local_network_access,
system_language)
_remove_theme(base_dir) _remove_theme(base_dir)

View File

@ -149,8 +149,7 @@ def html_likers_of_post(base_dir: str, nickname: str,
if likers_list: if likers_list:
likers_list += ' ' likers_list += ' '
liker_avatar_url = \ liker_avatar_url = \
get_person_avatar_url(base_dir, liker_actor, get_person_avatar_url(base_dir, liker_actor, person_cache)
person_cache, False)
if not liker_avatar_url: if not liker_avatar_url:
liker_avatar_url = '' liker_avatar_url = ''
else: else:

View File

@ -347,8 +347,7 @@ def _get_post_from_recent_cache(session,
# update avatar if needed # update avatar if needed
if not avatar_url: if not avatar_url:
avatar_url = \ avatar_url = \
get_person_avatar_url(base_dir, post_actor, person_cache, get_person_avatar_url(base_dir, post_actor, person_cache)
allow_downloads)
_log_post_timing(enable_timing_log, post_start_time, '2.1') _log_post_timing(enable_timing_log, post_start_time, '2.1')
@ -1145,8 +1144,7 @@ def _get_post_title_announce_html(base_dir: str,
# show avatar of person replied to # show avatar of person replied to
announce_actor = attributed_to announce_actor = attributed_to
announce_avatar_url = \ announce_avatar_url = \
get_person_avatar_url(base_dir, announce_actor, get_person_avatar_url(base_dir, announce_actor, person_cache)
person_cache, allow_downloads)
_log_post_timing(enable_timing_log, post_start_time, '13.4') _log_post_timing(enable_timing_log, post_start_time, '13.4')
@ -1353,8 +1351,7 @@ def _get_post_title_reply_html(base_dir: str,
# show avatar of person replied to # show avatar of person replied to
reply_avatar_url = \ reply_avatar_url = \
get_person_avatar_url(base_dir, reply_actor, person_cache, get_person_avatar_url(base_dir, reply_actor, person_cache)
allow_downloads)
_log_post_timing(enable_timing_log, post_start_time, '13.8') _log_post_timing(enable_timing_log, post_start_time, '13.8')

View File

@ -202,8 +202,7 @@ def html_profile_after_search(recent_posts_cache: {}, max_recent_posts: int,
if profile_json['icon'].get('url'): if profile_json['icon'].get('url'):
avatar_url = profile_json['icon']['url'] avatar_url = profile_json['icon']['url']
if not avatar_url: if not avatar_url:
avatar_url = get_person_avatar_url(base_dir, person_url, avatar_url = get_person_avatar_url(base_dir, person_url, person_cache)
person_cache, True)
display_name = search_nickname display_name = search_nickname
if profile_json.get('name'): if profile_json.get('name'):
display_name = profile_json['name'] display_name = profile_json['name']
@ -2473,7 +2472,7 @@ def _individual_follow_as_html(signing_priv_key_pem: str,
get_full_domain(follow_url_domain, follow_url_port) get_full_domain(follow_url_domain, follow_url_port)
title_str = '@' + follow_url_nickname + '@' + follow_url_domain_full title_str = '@' + follow_url_nickname + '@' + follow_url_domain_full
avatar_url = \ avatar_url = \
get_person_avatar_url(base_dir, follow_url, person_cache, True) get_person_avatar_url(base_dir, follow_url, person_cache)
if not avatar_url: if not avatar_url:
avatar_url = follow_url + '/avatar.png' avatar_url = follow_url + '/avatar.png'

View File

@ -378,8 +378,7 @@ def update_avatar_image_cache(signing_priv_key_pem: str,
return None return None
store_person_in_cache(base_dir, actor, person_json, person_cache, store_person_in_cache(base_dir, actor, person_json, person_cache,
allow_downloads) allow_downloads)
return get_person_avatar_url(base_dir, actor, person_cache, return get_person_avatar_url(base_dir, actor, person_cache)
allow_downloads)
return None return None
return avatar_image_filename.replace(base_dir + '/cache', '') return avatar_image_filename.replace(base_dir + '/cache', '')
@ -1429,8 +1428,7 @@ def get_avatar_image_url(session, base_dir: str, http_prefix: str,
# get the avatar image url for the post actor # get the avatar image url for the post actor
if not avatar_url: if not avatar_url:
avatar_url = \ avatar_url = \
get_person_avatar_url(base_dir, post_actor, person_cache, get_person_avatar_url(base_dir, post_actor, person_cache)
allow_downloads)
avatar_url = \ avatar_url = \
update_avatar_image_cache(signing_priv_key_pem, update_avatar_image_cache(signing_priv_key_pem,
session, base_dir, http_prefix, session, base_dir, http_prefix,