diff --git a/pgp.py b/pgp.py index cb32e20d7..2a13c2c98 100644 --- a/pgp.py +++ b/pgp.py @@ -238,7 +238,11 @@ def set_pgp_pub_key(actor_json: {}, pgp_pub_key: str) -> None: continue if not property_value['type'].endswith('PropertyValue'): continue - property_value['value'] = pgp_pub_key + prop_value_name, _ = \ + get_attachment_property_value(property_value) + if not prop_value_name: + continue + property_value[prop_value_name] = pgp_pub_key return newpgp_pub_key = { @@ -297,7 +301,11 @@ def set_pgp_fingerprint(actor_json: {}, fingerprint: str) -> None: continue if not property_value['type'].endswith('PropertyValue'): continue - property_value['value'] = fingerprint.strip() + prop_value_name, _ = \ + get_attachment_property_value(property_value) + if not prop_value_name: + continue + property_value[prop_value_name] = fingerprint.strip() return newpgp_fingerprint = { @@ -509,12 +517,13 @@ def _get_pgp_public_key_from_actor(signing_priv_key_pem: str, for tag in actor_json['attachment']: if not isinstance(tag, dict): continue - if not tag.get('value'): + prop_value_name, _ = get_attachment_property_value(tag) + if not prop_value_name: continue - if not isinstance(tag['value'], str): + if not isinstance(tag[prop_value_name], str): continue - if contains_pgp_public_key(tag['value']): - return tag['value'] + if contains_pgp_public_key(tag[prop_value_name]): + return tag[prop_value_name] return None diff --git a/utils.py b/utils.py index 6d852772e..a86d57e33 100644 --- a/utils.py +++ b/utils.py @@ -1106,14 +1106,22 @@ def get_gender_from_bio(base_dir: str, actor: str, person_cache: {}, for tag in tags_list: if not isinstance(tag, dict): continue - if not tag.get('name') or not tag.get('value'): + name_value = None + if tag.get('name'): + name_value = tag['name'] + if tag.get('schema:name'): + name_value = tag['schema:name'] + if not name_value: continue - if tag['name'].lower() == \ + prop_value_name, _ = get_attachment_property_value(tag) + if not prop_value_name: + continue + if name_value.lower() == \ translate['gender'].lower(): - bio_found = tag['value'] + bio_found = name_value break - if tag['name'].lower().startswith(pronoun_str): - bio_found = tag['value'] + if name_value.lower().startswith(pronoun_str): + bio_found = name_value break # the field name could be anything, # just look at the value @@ -1121,9 +1129,13 @@ def get_gender_from_bio(base_dir: str, actor: str, person_cache: {}, for tag in tags_list: if not isinstance(tag, dict): continue - if not tag.get('name') or not tag.get('value'): + if not tag.get('name') and not tag.get('schema:name'): continue - gender = _gender_from_string(translate, tag['value']) + prop_value_name, _ = get_attachment_property_value(tag) + if not prop_value_name: + continue + gender = \ + _gender_from_string(translate, tag[prop_value_name]) if gender: return gender # if not then use the bio diff --git a/webapp_utils.py b/webapp_utils.py index 5cfee26bd..d2141bb46 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -802,11 +802,16 @@ def html_header_with_person_markup(css_filename: str, instance_title: str, ) for attach_json in actor_json['attachment']: if not attach_json.get('name'): + if not attach_json.get('schema:name'): + continue + prop_value_name, _ = get_attachment_property_value(attach_json) + if not prop_value_name: continue - if not attach_json.get('value'): - continue - name = attach_json['name'].lower() - value = attach_json['value'] + if attach_json.get('name'): + name = attach_json['name'].lower() + else: + name = attach_json['schema:name'].lower() + value = attach_json[prop_value_name] for og_tag in og_tags: if name != og_tag: continue