From dadac78ddf05a3250ebc7de8468b950f05c246d8 Mon Sep 17 00:00:00 2001 From: bashrc Date: Tue, 14 Apr 2026 13:55:49 +0100 Subject: [PATCH] Variable types --- webapp_post.py | 95 +++++++++++++++++++++++++------------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/webapp_post.py b/webapp_post.py index 40dd421e5..0a6f4f785 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -2365,16 +2365,16 @@ def individual_post_as_html(signing_priv_key_pem: str, return '' # maximum number of different emoji reactions which can be added to a post - max_reaction_types = 5 + max_reaction_types: int = 5 # if downloads of avatar images aren't enabled then we can do more # accurate timing of different parts of the code - enable_timing_log = not allow_downloads + enable_timing_log: bool = not allow_downloads # benchmark post_start_time = time.time() - post_actor = get_actor_from_post(post_json_object) + post_actor: str = get_actor_from_post(post_json_object) _log_post_timing(enable_timing_log, post_start_time, '0') @@ -2384,8 +2384,8 @@ def individual_post_as_html(signing_priv_key_pem: str, _log_post_timing(enable_timing_log, post_start_time, '1') - avatar_position = '' - message_id = '' + avatar_position: str = '' + message_id: str = '' if post_json_object.get('id'): message_id = remove_hash_from_post_id(post_json_object['id']) message_id = remove_id_ending(message_id) @@ -2393,26 +2393,26 @@ def individual_post_as_html(signing_priv_key_pem: str, _log_post_timing(enable_timing_log, post_start_time, '2') # does this post have edits? - edits_post_url = \ + edits_post_url: str = \ remove_id_ending(message_id.strip()).replace('/', '#') + '.edits' - account_dir = acct_dir(base_dir, nickname, domain) + '/' + account_dir: str = acct_dir(base_dir, nickname, domain) + '/' - message_id_str = '' + message_id_str: str = '' if message_id: message_id_str = ';' + message_id - domain_full = get_full_domain(domain, port) + domain_full: str = get_full_domain(domain, port) - page_number_param = '' + page_number_param: str = '' if page_number: page_number_param = '?page=' + str(page_number) # NOTE at the time when the post is generated we don't know what # browser will be used to access it - ua_str = '' + ua_str: str = '' # get the html post from the recent posts cache if it exists there - post_html = \ + post_html: str = \ _get_post_from_recent_cache(session, base_dir, http_prefix, nickname, domain, post_json_object, @@ -2498,22 +2498,22 @@ def individual_post_as_html(signing_priv_key_pem: str, _log_post_timing(enable_timing_log, post_start_time, '7') - avatar_link = \ + avatar_link: str = \ _get_avatar_image_html(show_avatar_options, nickname, domain_full, avatar_url, post_actor, translate, avatar_position, page_number, message_id_str) - avatar_image_in_post = \ + avatar_image_in_post: str = \ '
' + avatar_link + '
\n' - timeline_post_bookmark = bookmark_from_id(post_json_object['id']) + timeline_post_bookmark: str = bookmark_from_id(post_json_object['id']) # If this is the inbox timeline then don't show the repeat icon on any DMs - show_repeat_icon = show_repeats - is_public_repeat = False - post_is_dm = is_dm(post_json_object) + show_repeat_icon: bool = show_repeats + is_public_repeat: bool = False + post_is_dm: bool = is_dm(post_json_object) if show_repeats: if post_is_dm: show_repeat_icon = False @@ -2521,26 +2521,27 @@ def individual_post_as_html(signing_priv_key_pem: str, if is_public_post(post_json_object): is_public_repeat = True - person_url = local_actor_url(http_prefix, nickname, domain_full) - actor_json = \ + person_url: str = local_actor_url(http_prefix, nickname, domain_full) + actor_json: dict = \ get_person_from_cache(base_dir, person_url, person_cache) languages_understood: list[str] = [] if actor_json: languages_understood = get_actor_languages_list(actor_json) - title_str = '' - gallery_str = '' - is_announced = False - announce_json_object = None + title_str: str = '' + gallery_str: str = '' + is_announced: bool = False + announce_json_object: dict = None if post_json_object['type'] == 'Announce': announce_json_object = post_json_object.copy() - blocked_cache = {} + blocked_cache: dict = {} block_federated: list[str] = [] - show_vote_posts = True - show_vote_file = acct_dir(base_dir, nickname, domain) + '/.noVotes' + show_vote_posts: bool = True + show_vote_file: str = \ + acct_dir(base_dir, nickname, domain) + '/.noVotes' if os.path.isfile(show_vote_file): show_vote_posts = False - post_json_announce = \ + post_json_announce: dict = \ download_announce(session, base_dir, http_prefix, nickname, domain, post_json_object, project_version, @@ -2569,7 +2570,7 @@ def individual_post_as_html(signing_priv_key_pem: str, post_json_object = post_json_announce # is the announced post in the html cache? - post_html = \ + post_html: str = \ _get_post_from_recent_cache(session, base_dir, http_prefix, nickname, domain, post_json_object, @@ -2592,7 +2593,7 @@ def individual_post_as_html(signing_priv_key_pem: str, if post_html: return post_html - announce_filename = \ + announce_filename: str = \ locate_post(base_dir, nickname, domain, post_json_object['id']) if announce_filename: update_announce_collection(recent_posts_cache, @@ -2604,7 +2605,7 @@ def individual_post_as_html(signing_priv_key_pem: str, if is_recent_post(post_json_object, 3): if post_json_object.get('actor'): if not os.path.isfile(announce_filename + '.tts'): - actor_url = get_actor_from_post(post_json_object) + actor_url: str = get_actor_from_post(post_json_object) update_speaker(base_dir, http_prefix, nickname, domain, domain_full, post_json_object, person_cache, @@ -2631,13 +2632,13 @@ def individual_post_as_html(signing_priv_key_pem: str, if not post_contains_public(post_json_object): return '' - is_moderation_post = False + is_moderation_post: bool = False if post_json_object['object'].get('moderationStatus'): is_moderation_post = True - container_class = 'container' - container_class_icons = 'containericons' - time_class = 'time-right' - actor_nickname = get_nickname_from_actor(post_actor) + container_class: str = 'container' + container_class_icons: str = 'containericons' + time_class: str = 'time-right' + actor_nickname: str = get_nickname_from_actor(post_actor) if not actor_nickname: # single user instance actor_nickname = 'dev' @@ -2645,11 +2646,11 @@ def individual_post_as_html(signing_priv_key_pem: str, # indicate if the post has been proxied from a different protocol # (eg. diaspora/nostr) - post_proxied = ap_proxy_type(post_json_object['object']) + post_proxied: str = ap_proxy_type(post_json_object['object']) if post_proxied: post_proxied = remove_html(post_proxied) if resembles_url(post_proxied): - proxy_str = 'Proxy' + proxy_str: str = 'Proxy' if translate.get(proxy_str): proxy_str = translate[proxy_str] post_proxied = '\n' # show the display name or handle - display_name = get_display_name(base_dir, post_actor, person_cache) + display_name: str = get_display_name(base_dir, post_actor, person_cache) if display_name: if len(display_name) < 2 or \ display_name_is_emoji(display_name): display_name = None - actor_handle = actor_nickname + '@' + actor_domain + actor_handle: str = actor_nickname + '@' + actor_domain # MITM warning icon - mitm_str = '' + mitm_str: str = '' if mitm or actor_domain in mitm_servers: mitm_str = ' ' + mitm_warning_html(translate) # add mutual icon to the display name - mutual_prefix = '' + mutual_prefix: str = '' if actor_handle in mutuals_list: mutual_prefix = '⇆ ' - actor_type = get_actor_type(base_dir, post_actor, person_cache) - bot_prefix = get_display_name_prefix(actor_type, actor_nickname, - translate) + actor_type: str = get_actor_type(base_dir, post_actor, person_cache) + bot_prefix: str = get_display_name_prefix(actor_type, actor_nickname, + translate) if display_name: display_name = _enforce_max_display_name_length(display_name) @@ -3254,8 +3255,8 @@ def individual_post_as_html(signing_priv_key_pem: str, _log_post_timing(enable_timing_log, post_start_time, '17') - map_str = '' - buy_links = {} + map_str: str = '' + buy_links: dict = {} if post_json_object['object'].get('tag'): if not is_patch: content_str = \