diff --git a/toot/output.py b/toot/output.py
index a87c1f4..5be6a92 100644
--- a/toot/output.py
+++ b/toot/output.py
@@ -3,7 +3,6 @@ import re
import sys
import textwrap
-from textwrap import wrap
from toot.tui.utils import parse_datetime
from wcwidth import wcswidth
@@ -167,11 +166,9 @@ def print_instance(instance):
def print_account(account):
print_out(f"@{account['acct']} {account['display_name']}")
- note = get_text(account['note'])
-
- if note:
+ if account["note"]:
print_out("")
- print_out("\n".join(wrap(note)))
+ print_html(account["note"])
print_out("")
print_out(f"ID: {account['id']}")
@@ -180,6 +177,15 @@ def print_account(account):
print_out(f"Followers: {account['followers_count']}")
print_out(f"Following: {account['following_count']}")
print_out(f"Statuses: {account['statuses_count']}")
+
+ if account["fields"]:
+ for field in account["fields"]:
+ name = field["name"].title()
+ print_out(f'\n{name}:')
+ print_html(field["value"])
+ if field["verified_at"]:
+ print_out("✓ Verified")
+
print_out("")
print_out(account["url"])
@@ -244,11 +250,8 @@ def print_status(status, width):
f"{time}",
)
- for paragraph in parse_html(content):
- print_out("")
- for line in paragraph:
- for subline in wc_wrap(line, width):
- print_out(highlight_hashtags(subline))
+ print_out("")
+ print_html(content, width)
if media_attachments:
print_out("\nMedia:")
@@ -268,6 +271,17 @@ def print_status(status, width):
)
+def print_html(text, width=80):
+ first = True
+ for paragraph in parse_html(text):
+ if not first:
+ print_out("")
+ for line in paragraph:
+ for subline in wc_wrap(line, width):
+ print_out(highlight_hashtags(subline))
+ first = False
+
+
def print_poll(poll):
print_out()
for idx, option in enumerate(poll["options"]):