diff --git a/daemon.py b/daemon.py index dc1adc59c..d29c90af0 100644 --- a/daemon.py +++ b/daemon.py @@ -2165,7 +2165,7 @@ class PubServer(BaseHTTPRequestHandler): print('EX: Unable to save token for ' + login_nickname + ' ' + str(ex)) - person_upgrade_actor(base_dir, None, login_handle, + person_upgrade_actor(base_dir, None, base_dir + '/accounts/' + login_handle + '.json') @@ -2408,8 +2408,7 @@ class PubServer(BaseHTTPRequestHandler): locate_post(base_dir, nickname, domain, moderation_text) if post_filename: - if can_remove_post(base_dir, - nickname, domain, port, + if can_remove_post(base_dir, domain, port, moderation_text): delete_post(base_dir, http_prefix, @@ -2425,8 +2424,7 @@ class PubServer(BaseHTTPRequestHandler): locate_post(base_dir, 'news', domain, moderation_text) if post_filename: - if can_remove_post(base_dir, - 'news', domain, port, + if can_remove_post(base_dir, domain, port, moderation_text): delete_post(base_dir, http_prefix, @@ -2575,9 +2573,7 @@ class PubServer(BaseHTTPRequestHandler): if 'submitThemeDesignerReset=' in theme_params or \ 'submitThemeDesigner=' not in theme_params: if 'submitThemeDesignerReset=' in theme_params: - reset_theme_designer_settings(base_dir, theme_name, domain, - allow_local_network_access, - system_language) + reset_theme_designer_settings(base_dir) set_theme(base_dir, theme_name, domain, allow_local_network_access, system_language, dyslexic_font, True) @@ -4555,7 +4551,7 @@ class PubServer(BaseHTTPRequestHandler): get_domain_from_actor(share_actor) remove_shared_item(base_dir, share_nickname, share_domain, item_id, - http_prefix, domain_full, 'shares') + 'shares') if calling_domain.endswith('.onion') and onion_domain: origin_path_str = 'http://' + onion_domain + users_path @@ -4628,7 +4624,7 @@ class PubServer(BaseHTTPRequestHandler): get_domain_from_actor(share_actor) remove_shared_item(base_dir, share_nickname, share_domain, item_id, - http_prefix, domain_full, 'wanted') + 'wanted') if calling_domain.endswith('.onion') and onion_domain: origin_path_str = 'http://' + onion_domain + users_path @@ -18528,14 +18524,12 @@ class PubServer(BaseHTTPRequestHandler): response_str = None if endpoint_type == 'propfind': response_str = \ - dav_propfind_response(self.server.base_dir, - nickname, self.server.domain, - depth, propfind_xml) + dav_propfind_response(nickname, propfind_xml) elif endpoint_type == 'put': response_str = \ dav_put_response(self.server.base_dir, nickname, self.server.domain, - depth, propfind_xml, + propfind_xml, self.server.http_prefix, self.server.system_language, self.server.recent_dav_etags) @@ -18548,7 +18542,7 @@ class PubServer(BaseHTTPRequestHandler): response_str = \ dav_report_response(self.server.base_dir, nickname, self.server.domain, - depth, propfind_xml, + propfind_xml, self.server.person_cache, self.server.http_prefix, curr_etag, diff --git a/happening.py b/happening.py index 5ae099f21..890c100e2 100644 --- a/happening.py +++ b/happening.py @@ -793,8 +793,7 @@ def _dav_decode_token(token: str) -> (int, int, str): return token_year, token_month_number, token_post_id -def dav_propfind_response(base_dir: str, nickname: str, domain: str, - depth: int, xml_str: str) -> str: +def dav_propfind_response(nickname: str, xml_str: str) -> str: """Returns the response to caldav PROPFIND """ if ' str: """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, - depth: int, xml_str: str, + xml_str: str, person_cache: {}, http_prefix: str, curr_etag: str, recent_dav_etags: {}, domain_full: str, system_language: str) -> str: diff --git a/newsdaemon.py b/newsdaemon.py index c8ccba078..78642412f 100644 --- a/newsdaemon.py +++ b/newsdaemon.py @@ -66,8 +66,7 @@ def _update_feeds_outbox_index(base_dir: str, domain: str, print('EX: unable to write ' + index_filename) -def _save_arrived_time(base_dir: str, post_filename: str, - arrived: str) -> None: +def _save_arrived_time(post_filename: str, arrived: str) -> None: """Saves the time when an rss post arrived to a file """ try: @@ -100,8 +99,7 @@ def _hashtag_logical_not(tree: [], hashtags: [], moderated: bool, return False -def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool, - content: str, url: str) -> bool: +def _hashtag_logical_contains(tree: [], content: str) -> bool: """ Contains """ if len(tree) != 2: @@ -121,8 +119,7 @@ def _hashtag_logical_contains(tree: [], hashtags: [], moderated: bool, return False -def _hashtag_logical_from(tree: [], hashtags: [], moderated: bool, - content: str, url: str) -> bool: +def _hashtag_logical_from(tree: [], url: str) -> bool: """ FROM """ if len(tree) != 2: @@ -210,10 +207,9 @@ def hashtag_rule_resolve(tree: [], hashtags: [], moderated: bool, if tree[0] == 'not': return _hashtag_logical_not(tree, hashtags, moderated, content, url) if tree[0] == 'contains': - return _hashtag_logical_contains(tree, hashtags, moderated, - content, url) + return _hashtag_logical_contains(tree, content) if tree[0] == 'from': - return _hashtag_logical_from(tree, hashtags, moderated, content, url) + return _hashtag_logical_from(tree, url) if tree[0] == 'and': return _hashtag_logical_and(tree, hashtags, moderated, content, url) 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) -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, domain: str, port: int, - person_cache: {}, - cached_webfingers: {}, - federation_list: [], - send_threads: [], post_log: [], moderated: bool, url: str, system_language: str, translate: {}) -> bool: @@ -549,11 +541,6 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str, newswire: {}, translate: {}, recent_posts_cache: {}, - max_recent_posts: int, - session, cached_webfingers: {}, - person_cache: {}, - federation_list: [], - send_threads: [], post_log: [], max_mirrored_articles: int, allow_local_network_access: bool, system_language: str, @@ -697,12 +684,8 @@ def _convert_rss_to_activitypub(base_dir: str, http_prefix: str, moderated = item[5] save_post = \ - _newswire_hashtag_processing(session, base_dir, - blog, hashtags, + _newswire_hashtag_processing(base_dir, blog, hashtags, http_prefix, domain, port, - person_cache, cached_webfingers, - federation_list, - send_threads, post_log, moderated, url, system_language, 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 # excluding items during the voting period if moderated: - _save_arrived_time(base_dir, filename, + _save_arrived_time(filename, blog['object']['arrived']) else: if os.path.isfile(filename + '.arrived'): @@ -842,17 +825,9 @@ def run_newswire_daemon(base_dir: str, httpd, print('No new newswire') print('Converting newswire to activitypub format') - _convert_rss_to_activitypub(base_dir, - http_prefix, domain, port, + _convert_rss_to_activitypub(base_dir, http_prefix, domain, port, new_newswire, translate, 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.allow_local_network_access, httpd.system_language, diff --git a/outbox.py b/outbox.py index f1fe3aa68..bcd0a072f 100644 --- a/outbox.py +++ b/outbox.py @@ -60,8 +60,7 @@ from webapp_post import individual_post_as_html from speaker import update_speaker -def _person_receive_update_outbox(recent_posts_cache: {}, - base_dir: str, http_prefix: str, +def _person_receive_update_outbox(base_dir: str, http_prefix: str, nickname: str, domain: str, port: int, message_json: {}, debug: bool) -> None: """ Receive an actor update from c2s @@ -588,14 +587,12 @@ def post_message_to_outbox(session, translate: {}, if debug: print('DEBUG: handle any emoji reaction requests') outbox_reaction(recent_posts_cache, - base_dir, http_prefix, - post_to_nickname, domain, port, + base_dir, post_to_nickname, domain, message_json, debug) if debug: print('DEBUG: handle any undo emoji reaction requests') outbox_undo_reaction(recent_posts_cache, - base_dir, http_prefix, - post_to_nickname, domain, port, + base_dir, post_to_nickname, domain, message_json, debug) if debug: @@ -659,14 +656,12 @@ def post_message_to_outbox(session, translate: {}, if debug: print('DEBUG: handle undo share uploads') - outbox_undo_share_upload(base_dir, http_prefix, - post_to_nickname, domain, - port, message_json, debug) + outbox_undo_share_upload(base_dir, post_to_nickname, domain, + message_json, debug) if debug: print('DEBUG: handle actor updates from c2s') - _person_receive_update_outbox(recent_posts_cache, - base_dir, http_prefix, + _person_receive_update_outbox(base_dir, http_prefix, post_to_nickname, domain, port, message_json, debug) diff --git a/person.py b/person.py index 79899ba7d..a24c85cc3 100644 --- a/person.py +++ b/person.py @@ -74,6 +74,8 @@ from follow import is_following_actor def generate_rsa_key() -> (str, str): + """Creates an RSA key for signing + """ key = rsa.generate_private_key( public_exponent=65537, 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: {}, - handle: str, filename: str) -> None: + filename: str) -> None: """Alter the actor to add any new properties """ update_actor = False @@ -948,7 +950,7 @@ def person_lookup(domain: str, path: str, base_dir: str) -> {}: return None person_json = load_json(filename) 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: # person_json={"user": "unknown"} 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, display_name: str) -> bool: + """Sets the display name for an account + """ if len(display_name) > 32: return False 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) -def can_remove_post(base_dir: str, nickname: str, +def can_remove_post(base_dir: str, domain: str, port: int, post_id: str) -> bool: """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 -def get_person_avatar_url(base_dir: str, person_url: str, person_cache: {}, - allow_downloads: bool) -> str: +def get_person_avatar_url(base_dir: str, person_url: str, + person_cache: {}) -> str: """Returns the avatar url for the person """ person_json = \ diff --git a/reaction.py b/reaction.py index 2c13fe589..74ca6dc9e 100644 --- a/reaction.py +++ b/reaction.py @@ -361,8 +361,7 @@ def send_undo_reaction_via_server(base_dir: str, session, def outbox_reaction(recent_posts_cache: {}, - base_dir: str, http_prefix: str, - nickname: str, domain: str, port: int, + base_dir: str, nickname: str, domain: str, message_json: {}, debug: bool) -> None: """ 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: {}, - base_dir: str, http_prefix: str, - nickname: str, domain: str, port: int, + base_dir: str, nickname: str, domain: str, message_json: {}, debug: bool) -> None: """ When an undo reaction request is received by the outbox from c2s """ diff --git a/shares.py b/shares.py index 548838958..850039c8b 100644 --- a/shares.py +++ b/shares.py @@ -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, - item_id: str, - http_prefix: str, domain_full: str, - shares_file_type: str) -> None: + item_id: str, shares_file_type: str) -> None: """Removes a share for a person """ shares_filename = \ @@ -992,8 +990,7 @@ def send_undo_wanted_via_server(base_dir: str, session, return undo_share_json -def get_shared_items_catalog_via_server(base_dir, session, - nickname: str, password: str, +def get_shared_items_catalog_via_server(session, nickname: str, password: str, domain: str, port: int, http_prefix: str, debug: bool, 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') -def outbox_undo_share_upload(base_dir: str, http_prefix: str, - nickname: str, domain: str, port: int, +def outbox_undo_share_upload(base_dir: str, nickname: str, domain: str, message_json: {}, debug: bool) -> None: """ 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: print('DEBUG: displayName missing from Offer') return - domain_full = get_full_domain(domain, port) remove_shared_item(base_dir, nickname, domain, message_json['object']['displayName'], - http_prefix, domain_full, 'shares') + 'shares') if debug: print('DEBUG: shared item removed via c2s') diff --git a/tests.py b/tests.py index 3ddfea801..b1cb3618e 100644 --- a/tests.py +++ b/tests.py @@ -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') signing_priv_key_pem = None catalog_json = \ - get_shared_items_catalog_via_server(bob_dir, session_bob, + get_shared_items_catalog_via_server(session_bob, 'bob', bob_password, bob_domain, bob_port, http_prefix, True, diff --git a/theme.py b/theme.py index 0e2b7a8c8..a17ca70f1 100644 --- a/theme.py +++ b/theme.py @@ -394,10 +394,10 @@ def _set_theme_from_dict(base_dir: str, name: str, ) for scr in screen_name: 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: """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) -def reset_theme_designer_settings(base_dir: str, theme_name: str, domain: str, - allow_local_network_access: bool, - system_language: str) -> None: +def reset_theme_designer_settings(base_dir: str) -> None: """Resets the theme designer settings """ 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 prev_theme_name != name or designer_reset: - reset_theme_designer_settings(base_dir, name, domain, - allow_local_network_access, - system_language) + reset_theme_designer_settings(base_dir) _remove_theme(base_dir) diff --git a/webapp_likers.py b/webapp_likers.py index 15d024b88..680c78b7d 100644 --- a/webapp_likers.py +++ b/webapp_likers.py @@ -149,8 +149,7 @@ def html_likers_of_post(base_dir: str, nickname: str, if likers_list: likers_list += ' ' liker_avatar_url = \ - get_person_avatar_url(base_dir, liker_actor, - person_cache, False) + get_person_avatar_url(base_dir, liker_actor, person_cache) if not liker_avatar_url: liker_avatar_url = '' else: diff --git a/webapp_post.py b/webapp_post.py index 13bf27d88..3c198622f 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -347,8 +347,7 @@ def _get_post_from_recent_cache(session, # update avatar if needed if not avatar_url: avatar_url = \ - get_person_avatar_url(base_dir, post_actor, person_cache, - allow_downloads) + get_person_avatar_url(base_dir, post_actor, person_cache) _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 announce_actor = attributed_to announce_avatar_url = \ - get_person_avatar_url(base_dir, announce_actor, - person_cache, allow_downloads) + get_person_avatar_url(base_dir, announce_actor, person_cache) _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 reply_avatar_url = \ - get_person_avatar_url(base_dir, reply_actor, person_cache, - allow_downloads) + get_person_avatar_url(base_dir, reply_actor, person_cache) _log_post_timing(enable_timing_log, post_start_time, '13.8') diff --git a/webapp_profile.py b/webapp_profile.py index 9930ca9d2..2d8a0ad95 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -202,8 +202,7 @@ def html_profile_after_search(recent_posts_cache: {}, max_recent_posts: int, if profile_json['icon'].get('url'): avatar_url = profile_json['icon']['url'] if not avatar_url: - avatar_url = get_person_avatar_url(base_dir, person_url, - person_cache, True) + avatar_url = get_person_avatar_url(base_dir, person_url, person_cache) display_name = search_nickname if profile_json.get('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) title_str = '@' + follow_url_nickname + '@' + follow_url_domain_full 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: avatar_url = follow_url + '/avatar.png' diff --git a/webapp_utils.py b/webapp_utils.py index 22f142707..94439f0bf 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -378,8 +378,7 @@ def update_avatar_image_cache(signing_priv_key_pem: str, return None store_person_in_cache(base_dir, actor, person_json, person_cache, allow_downloads) - return get_person_avatar_url(base_dir, actor, person_cache, - allow_downloads) + return get_person_avatar_url(base_dir, actor, person_cache) return None 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 if not avatar_url: avatar_url = \ - get_person_avatar_url(base_dir, post_actor, person_cache, - allow_downloads) + get_person_avatar_url(base_dir, post_actor, person_cache) avatar_url = \ update_avatar_image_cache(signing_priv_key_pem, session, base_dir, http_prefix,