diff --git a/daemon_post_profile.py b/daemon_post_profile.py index 0a4c5c2ff..08233d6c3 100644 --- a/daemon_post_profile.py +++ b/daemon_post_profile.py @@ -79,6 +79,8 @@ from pgp import get_email_address from pgp import set_email_address from pgp import set_pgp_fingerprint from pgp import get_pgp_fingerprint +from pronouns import get_pronouns +from pronouns import set_pronouns from xmpp import get_xmpp_address from xmpp import set_xmpp_address from matrix import get_matrix_address @@ -1980,6 +1982,23 @@ def _profile_post_xmpp_address(actor_json: {}, fields: {}, return actor_changed +def _profile_post_pronouns(actor_json: {}, fields: {}, + actor_changed: bool) -> bool: + """ HTTP POST change pronouns + """ + current_pronouns = get_pronouns(actor_json) + if fields.get('setPronouns'): + if fields['setPronouns'] != current_pronouns: + set_pronouns(actor_json, + fields['setPronouns']) + actor_changed = True + else: + if current_pronouns: + set_pronouns(actor_json, '') + actor_changed = True + return actor_changed + + def _profile_post_email_address(actor_json: {}, fields: {}, actor_changed: bool) -> bool: """ HTTP POST change email address @@ -2830,6 +2849,10 @@ def profile_edit(self, calling_domain: str, cookie: str, _profile_post_xmpp_address(actor_json, fields, actor_changed) + actor_changed = \ + _profile_post_pronouns(actor_json, fields, + actor_changed) + actor_changed = \ _profile_post_matrix_address(actor_json, fields, actor_changed) diff --git a/daemon_utils.py b/daemon_utils.py index 8541d9c61..e10e76717 100644 --- a/daemon_utils.py +++ b/daemon_utils.py @@ -44,6 +44,7 @@ from cache import get_person_from_cache from donate import get_donation_url from donate import get_website from donate import get_gemini_link +from pronouns import get_pronouns from xmpp import get_xmpp_address from matrix import get_matrix_address from ssb import get_ssb_address @@ -654,6 +655,7 @@ def show_person_options(self, calling_domain: str, path: str, enigma_pub_key = None pgp_pub_key = None pgp_fingerprint = None + pronouns = None xmpp_address = None matrix_address = None blog_address = None @@ -682,6 +684,7 @@ def show_person_options(self, calling_domain: str, path: str, donate_url = get_donation_url(actor_json) website_url = get_website(actor_json, self.server.translate) gemini_link = get_gemini_link(actor_json) + pronouns = get_pronouns(actor_json) xmpp_address = get_xmpp_address(actor_json) matrix_address = get_matrix_address(actor_json) ssb_address = get_ssb_address(actor_json) @@ -735,7 +738,7 @@ def show_person_options(self, calling_domain: str, path: str, options_profile_url, options_link, page_number, donate_url, website_url, - gemini_link, + gemini_link, pronouns, xmpp_address, matrix_address, ssb_address, blog_address, tox_address, briar_address, diff --git a/pgp.py b/pgp.py index 6fec2e8ce..0f7a89319 100644 --- a/pgp.py +++ b/pgp.py @@ -25,6 +25,7 @@ from webfinger import webfinger_handle from posts import get_person_box from auth import create_basic_auth_header from session import post_json +from pronouns import get_pronouns from xmpp import get_xmpp_address from matrix import get_matrix_address from briar import get_briar_address @@ -736,6 +737,9 @@ def actor_to_vcard(actor: {}, domain: str) -> str: vcard_str += 'EMAIL;TYPE=internet:' + email_address + '\n' vcard_str += 'IMPP:fediverse:' + \ actor['preferredUsername'] + '@' + domain + '\n' + pronouns = get_pronouns(actor) + if pronouns: + vcard_str += 'PRONOUNS:' + pronouns + '\n' xmpp_address = get_xmpp_address(actor) if xmpp_address: vcard_str += 'IMPP:xmpp:' + xmpp_address + '\n' @@ -784,6 +788,9 @@ def actor_to_vcard_xml(actor: {}, domain: str) -> str: 'fediverse' + \ '' + actor['preferredUsername'] + '@' + domain + \ '\n' + pronouns = get_pronouns(actor) + if pronouns: + vcard_str += ' ' + pronouns + '\n' xmpp_address = get_xmpp_address(actor) if xmpp_address: vcard_str += ' ' + \ diff --git a/pronouns.py b/pronouns.py new file mode 100644 index 000000000..64b189d7e --- /dev/null +++ b/pronouns.py @@ -0,0 +1,98 @@ +__filename__ = "pronouns.py" +__author__ = "Bob Mottram" +__license__ = "AGPL3+" +__version__ = "1.5.0" +__maintainer__ = "Bob Mottram" +__email__ = "bob@libreserver.org" +__status__ = "Production" +__module_group__ = "Profile Metadata" + + +from utils import get_attachment_property_value +from utils import remove_html + + +def get_pronouns(actor_json: {}) -> str: + """Returns pronouns for the given actor + """ + if not actor_json.get('attachment'): + return '' + if not isinstance(actor_json['attachment'], list): + return '' + for property_value in actor_json['attachment']: + name_value = None + if property_value.get('name'): + name_value = property_value['name'].lower() + elif property_value.get('schema:name'): + name_value = property_value['schema:name'].lower() + if not name_value: + continue + if 'pronouns' not in name_value: + continue + if not property_value.get('type'): + continue + prop_value_name, _ = \ + get_attachment_property_value(property_value) + if not prop_value_name: + continue + if not property_value['type'].endswith('PropertyValue'): + continue + pronouns_text = property_value[prop_value_name] + return remove_html(pronouns_text) + return '' + + +def set_pronouns(actor_json: {}, pronouns: str) -> None: + """Sets pronouns for the given actor + """ + if not actor_json.get('attachment'): + actor_json['attachment'] = [] + + # remove any existing value + property_found = None + for property_value in actor_json['attachment']: + name_value = None + if property_value.get('name'): + name_value = property_value['name'].lower() + elif property_value.get('schema:name'): + name_value = property_value['schema:name'].lower() + if not name_value: + continue + if not property_value.get('type'): + continue + if 'pronouns' not in name_value: + continue + property_found = property_value + break + + if property_found: + actor_json['attachment'].remove(property_found) + + for property_value in actor_json['attachment']: + name_value = None + if property_value.get('name'): + name_value = property_value['name'] + elif property_value.get('schema:name'): + name_value = property_value['schema:name'] + if not name_value: + continue + if not property_value.get('type'): + continue + name_value = name_value.lower() + if 'pronouns' not in name_value: + continue + if not property_value['type'].endswith('PropertyValue'): + continue + prop_value_name, _ = \ + get_attachment_property_value(property_value) + if not prop_value_name: + continue + property_value[prop_value_name] = pronouns + return + + new_pronouns = { + "type": "PropertyValue", + "name": "Pronouns", + "value": pronouns + } + actor_json['attachment'].append(new_pronouns) diff --git a/translations/ar.json b/translations/ar.json index 3e58dcf0f..7ecae810d 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -696,5 +696,6 @@ "PGP Public Key": "مفتاح PGP العام", "Don't show already seen posts": "لا تظهر المشاركات التي تمت مشاهدتها بالفعل", "Watermark image": "صورة العلامة المائية", - "Apply a watermark to uploaded images": "إضافة علامة مائية على الصور التي تم تحميلها" + "Apply a watermark to uploaded images": "إضافة علامة مائية على الصور التي تم تحميلها", + "Pronouns": "الضمائر" } diff --git a/translations/bn.json b/translations/bn.json index 2a9467ca7..6d86d3599 100644 --- a/translations/bn.json +++ b/translations/bn.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP পাবলিক কী", "Don't show already seen posts": "ইতিমধ্যে দেখা পোস্ট দেখাবেন না", "Watermark image": "ওয়াটারমার্ক ইমেজ", - "Apply a watermark to uploaded images": "আপলোড করা ছবিগুলিতে একটি জলছাপ প্রয়োগ করুন" + "Apply a watermark to uploaded images": "আপলোড করা ছবিগুলিতে একটি জলছাপ প্রয়োগ করুন", + "Pronouns": "সর্বনাম" } diff --git a/translations/ca.json b/translations/ca.json index 8d578c341..4b730b398 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -696,5 +696,6 @@ "PGP Public Key": "Clau pública PGP", "Don't show already seen posts": "No mostris les publicacions ja vistes", "Watermark image": "Imatge de filigrana", - "Apply a watermark to uploaded images": "Apliqueu una marca d'aigua a les imatges penjades" + "Apply a watermark to uploaded images": "Apliqueu una marca d'aigua a les imatges penjades", + "Pronouns": "Els pronoms" } diff --git a/translations/cy.json b/translations/cy.json index 9eafd4657..3fcdc8fc8 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -696,5 +696,6 @@ "PGP Public Key": "Allwedd Gyhoeddus PGP", "Don't show already seen posts": "Peidiwch â dangos postiadau a welwyd eisoes", "Watermark image": "Delwedd dyfrnod", - "Apply a watermark to uploaded images": "Cymhwyso dyfrnod i ddelweddau sydd wedi'u llwytho i fyny" + "Apply a watermark to uploaded images": "Cymhwyso dyfrnod i ddelweddau sydd wedi'u llwytho i fyny", + "Pronouns": "Rhagenwau" } diff --git a/translations/de.json b/translations/de.json index 6bda2e6f3..12fe63f2c 100644 --- a/translations/de.json +++ b/translations/de.json @@ -696,5 +696,6 @@ "PGP Public Key": "Öffentlicher PGP-Schlüssel", "Don't show already seen posts": "Bereits gesehene Beiträge nicht anzeigen", "Watermark image": "Wasserzeichenbild", - "Apply a watermark to uploaded images": "Hochgeladenen Bildern ein Wasserzeichen hinzufügen" + "Apply a watermark to uploaded images": "Hochgeladenen Bildern ein Wasserzeichen hinzufügen", + "Pronouns": "Pronomen" } diff --git a/translations/el.json b/translations/el.json index b27dfb2a8..7c8543aee 100644 --- a/translations/el.json +++ b/translations/el.json @@ -696,5 +696,6 @@ "PGP Public Key": "Δημόσιο κλειδί PGP", "Don't show already seen posts": "Να μην εμφανίζονται οι αναρτήσεις που έχετε ήδη δει", "Watermark image": "Εικόνα υδατογραφήματος", - "Apply a watermark to uploaded images": "Εφαρμόστε ένα υδατογράφημα στις μεταφορτωμένες εικόνες" + "Apply a watermark to uploaded images": "Εφαρμόστε ένα υδατογράφημα στις μεταφορτωμένες εικόνες", + "Pronouns": "Αντωνυμίες" } diff --git a/translations/en.json b/translations/en.json index 27ae0d56f..6bc90e5a0 100644 --- a/translations/en.json +++ b/translations/en.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP Public Key", "Don't show already seen posts": "Don't show already seen posts", "Watermark image": "Watermark image", - "Apply a watermark to uploaded images": "Apply a watermark to uploaded images" + "Apply a watermark to uploaded images": "Apply a watermark to uploaded images", + "Pronouns": "Pronouns" } diff --git a/translations/es.json b/translations/es.json index a1ee62495..fb043730f 100644 --- a/translations/es.json +++ b/translations/es.json @@ -696,5 +696,6 @@ "PGP Public Key": "Clave pública PGP", "Don't show already seen posts": "No mostrar publicaciones ya vistas", "Watermark image": "Imagen de marca de agua", - "Apply a watermark to uploaded images": "Aplicar una marca de agua a las imágenes cargadas" + "Apply a watermark to uploaded images": "Aplicar una marca de agua a las imágenes cargadas", + "Pronouns": "Pronombres" } diff --git a/translations/fa.json b/translations/fa.json index e50aacfd3..cc764cc6e 100644 --- a/translations/fa.json +++ b/translations/fa.json @@ -696,5 +696,6 @@ "PGP Public Key": "کلید عمومی PGP", "Don't show already seen posts": "پست های قبلا دیده شده را نشان ندهید", "Watermark image": "تصویر واترمارک", - "Apply a watermark to uploaded images": "اعمال واترمارک روی تصاویر آپلود شده" + "Apply a watermark to uploaded images": "اعمال واترمارک روی تصاویر آپلود شده", + "Pronouns": "ضمایر" } diff --git a/translations/fi.json b/translations/fi.json index b275ffa37..f54fcec57 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP julkinen avain", "Don't show already seen posts": "Älä näytä jo nähtyjä viestejä", "Watermark image": "Vesileiman kuva", - "Apply a watermark to uploaded images": "Lisää ladattuihin kuviin vesileima" + "Apply a watermark to uploaded images": "Lisää ladattuihin kuviin vesileima", + "Pronouns": "Pronominit" } diff --git a/translations/fr.json b/translations/fr.json index e151a3ea6..97b9d0592 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -696,5 +696,6 @@ "PGP Public Key": "Clé publique PGP", "Don't show already seen posts": "Ne pas afficher les messages déjà vus", "Watermark image": "Image en filigrane", - "Apply a watermark to uploaded images": "Appliquer un filigrane aux images téléchargées" + "Apply a watermark to uploaded images": "Appliquer un filigrane aux images téléchargées", + "Pronouns": "Pronoms" } diff --git a/translations/ga.json b/translations/ga.json index 8afe817d0..402cf2be3 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -696,5 +696,6 @@ "PGP Public Key": "Eochair Phoiblí PGP", "Don't show already seen posts": "Ná taispeáin postálacha atá feicthe cheana féin", "Watermark image": "Íomhá comhartha uisce", - "Apply a watermark to uploaded images": "Cuir comhartha uisce i bhfeidhm ar íomhánna uaslódáilte" + "Apply a watermark to uploaded images": "Cuir comhartha uisce i bhfeidhm ar íomhánna uaslódáilte", + "Pronouns": "Forainmneacha" } diff --git a/translations/he.json b/translations/he.json index 957676ca3..fbfd7d239 100644 --- a/translations/he.json +++ b/translations/he.json @@ -696,5 +696,6 @@ "PGP Public Key": "מפתח PGP ציבורי", "Don't show already seen posts": "אל תראה פוסטים שכבר נראו", "Watermark image": "תמונת סימן מים", - "Apply a watermark to uploaded images": "החל סימן מים על תמונות שהועלו" + "Apply a watermark to uploaded images": "החל סימן מים על תמונות שהועלו", + "Pronouns": "כינויים" } diff --git a/translations/hi.json b/translations/hi.json index 165dd963a..a1d44693f 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -696,5 +696,6 @@ "PGP Public Key": "पीजीपी सार्वजनिक कुंजी", "Don't show already seen posts": "पहले से देखी गई पोस्ट न दिखाएं", "Watermark image": "वॉटरमार्क छवि", - "Apply a watermark to uploaded images": "अपलोड की गई छवियों पर वॉटरमार्क लागू करें" + "Apply a watermark to uploaded images": "अपलोड की गई छवियों पर वॉटरमार्क लागू करें", + "Pronouns": "सर्वनाम" } diff --git a/translations/it.json b/translations/it.json index 8d662c087..d253ecb5a 100644 --- a/translations/it.json +++ b/translations/it.json @@ -696,5 +696,6 @@ "PGP Public Key": "Chiave pubblica PGP", "Don't show already seen posts": "Non mostrare i post già visti", "Watermark image": "Immagine filigrana", - "Apply a watermark to uploaded images": "Applicare una filigrana alle immagini caricate" + "Apply a watermark to uploaded images": "Applicare una filigrana alle immagini caricate", + "Pronouns": "Pronomi" } diff --git a/translations/ja.json b/translations/ja.json index a02b001c4..233ac3491 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP公開鍵", "Don't show already seen posts": "すでに閲覧した投稿を表示しない", "Watermark image": "透かし画像", - "Apply a watermark to uploaded images": "アップロードした画像に透かしを適用する" + "Apply a watermark to uploaded images": "アップロードした画像に透かしを適用する", + "Pronouns": "代名詞" } diff --git a/translations/ko.json b/translations/ko.json index 687760ce9..91694e996 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP 공개 키", "Don't show already seen posts": "이미 본 게시물을 표시하지 않음", "Watermark image": "워터마크 이미지", - "Apply a watermark to uploaded images": "업로드한 이미지에 워터마크를 적용합니다" + "Apply a watermark to uploaded images": "업로드한 이미지에 워터마크를 적용합니다", + "Pronouns": "대명사" } diff --git a/translations/ku.json b/translations/ku.json index 85e7884ca..318fd8700 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -696,5 +696,6 @@ "PGP Public Key": "Mifteya Giştî ya PGP", "Don't show already seen posts": "Mesajên ku berê hatine dîtin nîşan nedin", "Watermark image": "Wêneyê Watermark", - "Apply a watermark to uploaded images": "Li ser wêneyên barkirî ava nîşanek bicîh bikin" + "Apply a watermark to uploaded images": "Li ser wêneyên barkirî ava nîşanek bicîh bikin", + "Pronouns": "Cînavk" } diff --git a/translations/nl.json b/translations/nl.json index 4d1074443..58c6cef20 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP publieke sleutel", "Don't show already seen posts": "Toon geen reeds bekeken berichten", "Watermark image": "Watermerk afbeelding", - "Apply a watermark to uploaded images": "Een watermerk toepassen op geüploade afbeeldingen" + "Apply a watermark to uploaded images": "Een watermerk toepassen op geüploade afbeeldingen", + "Pronouns": "Voornaamwoorden" } diff --git a/translations/oc.json b/translations/oc.json index ec316b374..b6a6de6ad 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -692,5 +692,6 @@ "PGP Public Key": "PGP Public Key", "Don't show already seen posts": "Don't show already seen posts", "Watermark image": "Watermark image", - "Apply a watermark to uploaded images": "Apply a watermark to uploaded images" + "Apply a watermark to uploaded images": "Apply a watermark to uploaded images", + "Pronouns": "Pronouns" } diff --git a/translations/pl.json b/translations/pl.json index 60d93eb35..d223700a5 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -696,5 +696,6 @@ "PGP Public Key": "Klucz publiczny PGP", "Don't show already seen posts": "Nie pokazuj już wyświetlonych postów", "Watermark image": "Obraz znaku wodnego", - "Apply a watermark to uploaded images": "Zastosuj znak wodny do przesłanych obrazów" + "Apply a watermark to uploaded images": "Zastosuj znak wodny do przesłanych obrazów", + "Pronouns": "Zaimki" } diff --git a/translations/pt.json b/translations/pt.json index 1ae6b3e58..84d935ec9 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -696,5 +696,6 @@ "PGP Public Key": "Chave pública PGP", "Don't show already seen posts": "Não mostrar posts já vistos", "Watermark image": "Imagem de marca de água", - "Apply a watermark to uploaded images": "Aplicar uma marca de água nas imagens enviadas" + "Apply a watermark to uploaded images": "Aplicar uma marca de água nas imagens enviadas", + "Pronouns": "Pronomes" } diff --git a/translations/ru.json b/translations/ru.json index 439fc7d35..2ea0c6f5e 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -696,5 +696,6 @@ "PGP Public Key": "Открытый ключ PGP", "Don't show already seen posts": "Не показывать уже просмотренные публикации", "Watermark image": "Изображение водяного знака", - "Apply a watermark to uploaded images": "Накладывать водяной знак на загружаемые изображения" + "Apply a watermark to uploaded images": "Накладывать водяной знак на загружаемые изображения", + "Pronouns": "Местоимения" } diff --git a/translations/sw.json b/translations/sw.json index c8a035948..f76b4bd0f 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -696,5 +696,6 @@ "PGP Public Key": "Ufunguo wa Umma wa PGP", "Don't show already seen posts": "Usionyeshe machapisho ambayo tayari yameonekana", "Watermark image": "Picha ya watermark", - "Apply a watermark to uploaded images": "Tumia watermark kwa picha zilizopakiwa" + "Apply a watermark to uploaded images": "Tumia watermark kwa picha zilizopakiwa", + "Pronouns": "Viwakilishi" } diff --git a/translations/tr.json b/translations/tr.json index 45978536c..ea0ec9409 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP Genel Anahtarı", "Don't show already seen posts": "Daha önce görülen gönderileri gösterme", "Watermark image": "Filigran resmi", - "Apply a watermark to uploaded images": "Yüklenen görsellere filigran uygulayın" + "Apply a watermark to uploaded images": "Yüklenen görsellere filigran uygulayın", + "Pronouns": "Zamirler" } diff --git a/translations/uk.json b/translations/uk.json index c1d332991..91ad01a1f 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -696,5 +696,6 @@ "PGP Public Key": "Відкритий ключ PGP", "Don't show already seen posts": "Не показувати вже переглянуті публікації", "Watermark image": "Зображення водяного знака", - "Apply a watermark to uploaded images": "Застосування водяного знака до завантажених зображень" + "Apply a watermark to uploaded images": "Застосування водяного знака до завантажених зображень", + "Pronouns": "Займенники" } diff --git a/translations/yi.json b/translations/yi.json index 0aeabfe40..57e105746 100644 --- a/translations/yi.json +++ b/translations/yi.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP ציבור שליסל", "Don't show already seen posts": "צי ניט ווייַזן שוין געזען אַרטיקלען", "Watermark image": "וואָטערמאַרק בילד", - "Apply a watermark to uploaded images": "צולייגן אַ וואָטערמאַרק צו ופּלאָאַדעד בילדער" + "Apply a watermark to uploaded images": "צולייגן אַ וואָטערמאַרק צו ופּלאָאַדעד בילדער", + "Pronouns": "פּראָנאָונס" } diff --git a/translations/zh.json b/translations/zh.json index 55d38b51d..855925d72 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -696,5 +696,6 @@ "PGP Public Key": "PGP 公钥", "Don't show already seen posts": "不显示已经看过的帖子", "Watermark image": "水印图像", - "Apply a watermark to uploaded images": "将水印应用于上传的图像" + "Apply a watermark to uploaded images": "将水印应用于上传的图像", + "Pronouns": "代词" } diff --git a/webapp_person_options.py b/webapp_person_options.py index c5596b1a5..bd260847a 100644 --- a/webapp_person_options.py +++ b/webapp_person_options.py @@ -145,6 +145,7 @@ def html_person_options(default_timeline: str, donate_url: str, web_address: str, gemini_link: str, + pronouns: str, xmpp_address: str, matrix_address: str, ssb_address: str, @@ -388,6 +389,10 @@ def html_person_options(default_timeline: str, if ctr > 0: options_str += other_accounts_html + if pronouns: + options_str += \ + '

' + translate['Pronouns'] + \ + ': ' + pronouns + '

\n' if email_address: options_str += \ '

' + translate['Email'] + \ diff --git a/webapp_profile.py b/webapp_profile.py index ef40437c1..4d3fd9c2b 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -66,6 +66,7 @@ from posts import get_max_profile_posts from donate import get_donation_url from donate import get_website from donate import get_gemini_link +from pronouns import get_pronouns from xmpp import get_xmpp_address from matrix import get_matrix_address from ssb import get_ssb_address @@ -1082,6 +1083,7 @@ def html_profile(signing_priv_key_pem: str, pgp_pub_key = get_pgp_pub_key(profile_json) pgp_fingerprint = get_pgp_fingerprint(profile_json) email_address = get_email_address(profile_json) + pronouns = get_pronouns(profile_json) xmpp_address = get_xmpp_address(profile_json) matrix_address = get_matrix_address(profile_json) ssb_address = get_ssb_address(profile_json) @@ -1090,7 +1092,7 @@ def html_profile(signing_priv_key_pem: str, cwtch_address = get_cwtch_address(profile_json) verified_site_checkmark = '✔' premium = is_premium_account(base_dir, nickname, domain) - if donate_url or website_url or repo_url or xmpp_address or \ + if donate_url or website_url or repo_url or pronouns or xmpp_address or \ matrix_address or ssb_address or tox_address or briar_address or \ cwtch_address or pgp_pub_key or enigma_pub_key or \ pgp_fingerprint or email_address: @@ -1150,6 +1152,9 @@ def html_profile(signing_priv_key_pem: str, '

Blog: ' + \ blog_address + '

\n' + if pronouns: + donate_section += \ + '

' + translate['Pronouns'] + ': ' + pronouns + '

\n' if xmpp_address: donate_section += \ '

' + translate['XMPP'] + ':