Some mastodon implementations (GoToSocial) will return `version: ""`, in
which case checking for the major version won't work.
This is why an extra check has to be added, and default to 0 as the
"major" version.
Add new [E]dit command to the timeline: opens an existing toot to allow
editing it. Since this is more or less the same operation as posting a
new toot, extend the StatusComposer view to support this rather than
implementing a new view.
Add a new api method, fetch_status_source(), to implement the
/api/v1/statuses/{id}/source endpoint used to fetch the original post
text.
Continue to display 'Marked as sensitive' in the toot view even after
the CW has been opened. This matches the behaviour of other clients,
and is useful to see because it might affect whether you want to boost
the toot or not (for example).
Mastodon allows the user to configure a default visibility which should
apply to all clients. This setting is returned by the
/api/v1/preferences method.
Fetch the user preferences when the TUI starts, and use it to set the
default visibility when composing a new toot. The preference can be
overridden by a new command-line option, toot tui --default-visibility=.
If neither the preference nor the option are set, fall back to
get_default_visibility().
When viewing a toot which has been edited, show the edit date.
While here, fix a bug where the '*' edit marker in the timeline wouldn't
show for retoots because it was checking the retoot status instead of
the original status.
In some fonts, "⤶" (U+2936 ARROW POINTING DOWNWARDS THEN CURVING
LEFTWARDS) may be a double-width character. To avoid a display glitch
where this overlaps with the boosted icon, print a space after it.
HTML tag support is aligned with Mastodon 4.2 supported tags.
This code introduces a soft dependency on the urwidgets library.
If urwidgets is not available, HTML tags are still supported,
but hyperlinks are not underlined using the OCS 8 terminal
feature (on supported terminals).
Monochrome colors should be defined as the third color in each tuple
instead.
In monochrome mode it's not possible to set the background so all
highlights can only be done using bold, italics, underline...