From f62ab70c2b33e5f323d744cf091b5f879bb460ce Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 13 Mar 2024 20:09:03 +0000 Subject: [PATCH] More robust checking for icon url --- posts.py | 10 +++++++--- webapp_profile.py | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/posts.py b/posts.py index 6020ecff2..d7f14d70a 100644 --- a/posts.py +++ b/posts.py @@ -411,9 +411,13 @@ def get_person_box(signing_priv_key_pem: str, origin_domain: str, shared_inbox = person_json['endpoints']['sharedInbox'] avatar_url = None if person_json.get('icon'): - if isinstance(person_json['icon'], dict): - if person_json['icon'].get('url'): - url_str = get_url_from_post(person_json['icon']['url']) + icon_dict = person_json['icon'] + if isinstance(icon_dict, list): + if len(icon_dict) > 0: + icon_dict = icon_dict[0] + if isinstance(icon_dict, dict): + if icon_dict.get('url'): + url_str = get_url_from_post(icon_dict['url']) avatar_url = remove_html(url_str) display_name = None possible_display_name = None diff --git a/webapp_profile.py b/webapp_profile.py index b68a4fb6c..70626ef0b 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -278,9 +278,13 @@ def html_profile_after_search(authorized: bool, avatar_url = '' if profile_json.get('icon'): - if isinstance(profile_json['icon'], dict): - if profile_json['icon'].get('url'): - url_str = get_url_from_post(profile_json['icon']['url']) + icon_dict = profile_json['icon'] + if isinstance(icon_dict, list): + if len(icon_dict) > 0: + icon_dict = icon_dict[0] + if isinstance(icon_dict, dict): + if icon_dict.get('url'): + url_str = get_url_from_post(icon_dict['url']) avatar_url = remove_html(url_str) if not avatar_url: avatar_url = get_person_avatar_url(base_dir, person_url, person_cache)